forked from openscad/openscad
/
example007.py
50 lines (42 loc) · 914 Bytes
/
example007.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from openscad import *
def clip():
return difference(
[dxf_rotate_extrude(
file="example007.dxf",
layer="dorn",
convexity=3)]
+ map(lambda r: rotate(r, [0,0,1], child=cutout()), [0, 90])
)
def cutout():
ext = map(lambda lay: translate([0, 0, -50],
dxf_linear_extrude(
file="example007.dxf",
layer=lay,
h=100,
convexity=2)), ["cutout1", "cutout2"])
return intersection([
rotate(90, [1, 0, 0], child=ext[0]),
rotate(90, [0, 0, 1],
rotate(90, [1, 0, 0], child=ext[1])
)
])
def cutview():
combo = [
translate([0, 0, -10],
clip()),
rotate(20, [0, 0, 1], child=
rotate(-20, [0, 1, 0], child=
translate([18, 0, 0],
cube(30, True)
)
)
)
]
r = render(intersection(combo))
r.highlight = True
return difference([
difference(combo),r
])
assemble( translate([0, 0, -10],
clip()) )
#openscad.result = cutview()