Skip to content

Commit 537f224

Browse files
committed
Initial upload
1 parent 541c8c3 commit 537f224

9 files changed

+6367
-0
lines changed

.gitignore

+104
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
*.egg-info/
24+
.installed.cfg
25+
*.egg
26+
MANIFEST
27+
28+
# PyInstaller
29+
# Usually these files are written by a python script from a template
30+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
31+
*.manifest
32+
*.spec
33+
34+
# Installer logs
35+
pip-log.txt
36+
pip-delete-this-directory.txt
37+
38+
# Unit test / coverage reports
39+
htmlcov/
40+
.tox/
41+
.coverage
42+
.coverage.*
43+
.cache
44+
nosetests.xml
45+
coverage.xml
46+
*.cover
47+
.hypothesis/
48+
.pytest_cache/
49+
50+
# Translations
51+
*.mo
52+
*.pot
53+
54+
# Django stuff:
55+
*.log
56+
local_settings.py
57+
db.sqlite3
58+
59+
# Flask stuff:
60+
instance/
61+
.webassets-cache
62+
63+
# Scrapy stuff:
64+
.scrapy
65+
66+
# Sphinx documentation
67+
docs/_build/
68+
69+
# PyBuilder
70+
target/
71+
72+
# Jupyter Notebook
73+
.ipynb_checkpoints
74+
75+
# pyenv
76+
.python-version
77+
78+
# celery beat schedule file
79+
celerybeat-schedule
80+
81+
# SageMath parsed files
82+
*.sage.py
83+
84+
# Environments
85+
.env
86+
.venv
87+
env/
88+
venv/
89+
ENV/
90+
env.bak/
91+
venv.bak/
92+
93+
# Spyder project settings
94+
.spyderproject
95+
.spyproject
96+
97+
# Rope project settings
98+
.ropeproject
99+
100+
# mkdocs documentation
101+
/site
102+
103+
# mypy
104+
.mypy_cache/

README.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# phone-holder
2+
3+
Cell phone holder design using OpenSCAD.
4+
5+
SCAD code design for a cell phone holder (phone width ~8mm).
6+
7+
![Design render](/src/phone-holder.jpg)
8+
9+
![Design printed](images/IMG_20190219_203500.jpg)
10+
11+
OpenSCAD: http://www.openscad.org/
12+

images/IMG_20190219_203500.jpg

49 KB
Loading

images/IMG_20190219_203528.jpg

47.4 KB
Loading

images/IMG_20190219_203551.jpg

46.9 KB
Loading

images/IMG_20190219_203615.jpg

45.6 KB
Loading

src/phone-holder.jpg

9.11 KB
Loading

src/phone-holder.scad

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
$fn=90;
2+
3+
module holder_positive(h, w, l) {
4+
// base
5+
translate([0, 0, 0])
6+
cube([w, l, 2]);
7+
translate([0, 0, 0])
8+
cube([2, l, 8]);
9+
translate([w - 2, 0, 0])
10+
cube([2, l, 8]);
11+
12+
// wall R/
13+
translate([0, l, 0])
14+
cube([w, 2, h]);
15+
translate([0, l + 2/2, h])
16+
rotate([90, 0, 90])
17+
cylinder(d=2, h=w);
18+
19+
// wall L
20+
translate([0, 0, 0])
21+
cube([w, 2, h]);
22+
translate([0, -2, h])
23+
rotate([90, 0, 90])
24+
cylinder(d = 19, w);
25+
}
26+
27+
module holder_negative(h, w, l) {
28+
// base
29+
translate([w / 2, (l+2) / 2, 0])
30+
cylinder(d=8, h=8);
31+
32+
// wall L
33+
translate([0, -20, 0])
34+
cube([w, 20, h + 19/2]);
35+
translate([0, -2, h])
36+
rotate([90, 0, 90])
37+
cylinder(d = 16, w);
38+
}
39+
40+
module holder(h, w, l) {
41+
difference() {
42+
holder_positive(h, w, l);
43+
holder_negative(h, w, l);
44+
}
45+
}
46+
47+
holder(40, 35, 15);

0 commit comments

Comments
 (0)