|
|
@ -11,6 +11,8 @@ from svgpathtools import svg2paths |
|
|
|
import cadquery as cq |
|
|
|
import cqmore |
|
|
|
|
|
|
|
RENDER_TREES = True |
|
|
|
|
|
|
|
Workplane = cqmore.extend(Workplane) |
|
|
|
Workplane.addSvgPath = addSvgPath |
|
|
|
|
|
|
@ -28,7 +30,7 @@ outer_poly = Polyhedron(outer_points, outer_faces) |
|
|
|
|
|
|
|
result = Workplane().polyhedron(*outer_poly) |
|
|
|
|
|
|
|
holder_angle_offset = 20 |
|
|
|
holder_angle_offset = 67 |
|
|
|
|
|
|
|
|
|
|
|
planter_polygon = result.workplane(offset=-36).makePolygon( |
|
|
@ -45,26 +47,26 @@ result = planter_polygon.vertices().sphere(8, combine="cut") |
|
|
|
|
|
|
|
paths, attributes = svg2paths("/home/deck/cad_files/tree_of_gondor_small.svg") |
|
|
|
|
|
|
|
# print(dir(result.addSvgPath(paths[0]))) |
|
|
|
|
|
|
|
tree = ( |
|
|
|
Workplane("YZ") |
|
|
|
.center(0, 75) |
|
|
|
.addSvgPath(paths[0]) |
|
|
|
.extrude(-2.0) |
|
|
|
.translate((95.03, -100, 0)) |
|
|
|
) |
|
|
|
if RENDER_TREES: |
|
|
|
tree = ( |
|
|
|
Workplane("YZ") |
|
|
|
.center(0, 75) |
|
|
|
.addSvgPath(paths[0]) |
|
|
|
.extrude(-2.0) |
|
|
|
.translate((95.03, -100, 0)) |
|
|
|
) |
|
|
|
|
|
|
|
tree2 = ( |
|
|
|
Workplane("YZ") |
|
|
|
.center(0, 75) |
|
|
|
.addSvgPath(paths[0]) |
|
|
|
.extrude(-2.0) |
|
|
|
.translate((-95, -100, 0)) |
|
|
|
) |
|
|
|
tree2 = ( |
|
|
|
Workplane("YZ") |
|
|
|
.center(0, 75) |
|
|
|
.addSvgPath(paths[0]) |
|
|
|
.extrude(2.0) |
|
|
|
.translate((-95.03, -100, 0)) |
|
|
|
) |
|
|
|
|
|
|
|
result = result.cut(tree, clean=False) |
|
|
|
result = result.cut(tree2, clean=False) |
|
|
|
result = result.cut(tree, clean=False) |
|
|
|
result = result.cut(tree2, clean=False) |
|
|
|
|
|
|
|
cone = cq.Solid.makeCone(planter_radius, 33, planter_height + 95) |
|
|
|
|
|
|
|