from build123d import * from ocp_vscode import * set_port(3939) orange = import_step("./OrangePi-Box.step") orange = orange.rotate(Axis.X, -90).move(Location((0, 0, 37))) dlugosc = 112.80 szerokosc = 87.80 wysokosc = 54 scianka = 3 # 1 otworek dl1o = 17.84 sz1o = 11.68 offset_x1 = 8.931 offset_y1 = 18.295 # 2 otworek dl2o = 24.103 sz2o = 22.007 offset_x2 = 27.894 offset_y2 = 19.047 # 3 otworek dl3o = 6.20 sz3o = 8.40 # 4 otworek dl4o = 26.577 sz5o = 19.737 # with Locations((front_left_edge_vertex.X + 0, 0)) with BuildPart() as box: with BuildSketch() as s1: Rectangle(dlugosc, szerokosc) extrude(amount=wysokosc) offset(amount=-scianka, openings=box.faces().sort_by(Axis.Z)[-1]) front = box.faces().sort_by(Axis.Y)[0] front_left_edge_vertex = box.faces().sort_by(Axis.Y)[0].edges().filter_by(Axis.Z).sort_by(Axis.X)[0].vertices()[0] with BuildSketch(front) as s2: with Locations((front_left_edge_vertex.X + offset_x1, -offset_y1)): Rectangle(dl1o, sz1o, align=(Align.MIN, Align.MIN, Align.CENTER)) extrude(amount=-scianka, mode=Mode.SUBTRACT) with BuildSketch(front) as s3: with Locations((front_left_edge_vertex.X + offset_x2, -offset_y2)): Rectangle(dl2o, sz2o, align=(Align.MIN, Align.MIN, Align.CENTER)) extrude(amount=-scianka, mode=Mode.SUBTRACT) with BuildSketch(front) as s4: with Locations((front_left_edge_vertex.X + 0, 0)): Rectangle(dl3o, sz3o, align=(Align.MIN, Align.MIN, Align.CENTER)) extrude(amount=-scianka, mode=Mode.SUBTRACT) # show_all() show(box, orange, s4)