| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import cadquery as cq
- from ocp_vscode import show, show_object
- from cadquery.occ_impl.exporters import ExportTypes
- rows = 19
- cols = 6
- row_dist = 90
- col_dist = 176
- thickness = 10
- default_dist_x = 550.75
- default_dist_y = 208.75
- result_dist_x = 4.88
- result_dist_y = 52.85
- ps_diam = 3
- duct_diam = 11
- num_per_powersupply = 3
- mountingplate = cq.importers.importStep("/home/sgruen/Dokumente/mountingplate.step")
- holes_dxf = cq.importers.importDXF("/home/sgruen/Dokumente/Strom_TestLader_V1.1_edit_2.dxf")
- power_supply = (
- cq.Workplane()
- .center(-384.62, 65.85)
- .circle(ps_diam/2)
- .center(-152.5, 85)
- .circle(ps_diam/2)
- .extrude(-thickness)
- )
- duct = (
- cq.Workplane()
- .center(-464.62, 94.85)
- .circle(duct_diam/2)
- .extrude(-thickness)
- )
- holes_dxf = holes_dxf.translate((result_dist_x-default_dist_x, result_dist_y-default_dist_y, 0))
- mountingplate_holes = mountingplate
- for row in range(rows):
- for col in range(cols):
- y_offset = row * row_dist
- x_offset = col * col_dist
- holes_moved = holes_dxf.translate((x_offset, y_offset, 0))
- hole_negative = holes_moved.extrude(-thickness)
- mountingplate_holes = mountingplate_holes.cut(hole_negative)
- duct_negative = duct.translate((x_offset, y_offset, 0))
- mountingplate_holes = mountingplate_holes.cut(duct_negative)
- if (col * rows + row) % num_per_powersupply is num_per_powersupply-1:
- ps_negative = power_supply.translate((x_offset, y_offset, 0))
- mountingplate_holes = mountingplate_holes.cut(ps_negative)
- # show_object(mountingplate_holes, name="mountingplate")
- with open(f"mountingplate_holes.step", "w") as fp:
- cq.exporters.exportShape(mountingplate_holes, ExportTypes.STEP, fp)
|