def sub_canvas_graphics(ai_rotation_direction, ai_angle_position): r_canvas_graphics = [] r_canvas_graphics.append(("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc, "tkinter"), "red", 1)) r_canvas_graphics.append( ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_x_shifted, "tkinter"), "red", 1) ) r_canvas_graphics.append( ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_y_shifted, "tkinter"), "red", 1) ) turning_outline = cnc25d_api.outline_rotate( my_outline_for_cnc_xy_shifted, big_length * 4, big_length * 4, ai_angle_position ) r_canvas_graphics.append(("graphic_lines", cnc25d_api.outline_arc_line(turning_outline, "tkinter"), "red", 1)) r_canvas_graphics.append( ("overlay_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_rotated, "tkinter"), "green", 2) ) r_canvas_graphics.append( ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_closed, "tkinter"), "blue", 1) ) r_canvas_graphics.append( ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_reverse, "tkinter"), "blue", 1) ) # r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_circle((100,100), 40, 'tkinter'), 'orange', 1)) # create a circle (obsolete) r_canvas_graphics.append( ("overlay_lines", cnc25d_api.outline_arc_line((100, 100, 40), "tkinter"), "orange", 1) ) # create a circle r_canvas_graphics.append(("overlay_lines", cnc25d_api.outline_arc_line(my_curve, "tkinter"), "green", 2)) r_canvas_graphics.append(("graphic_lines", cnc25d_api.outline_arc_line(my_curve_for_cnc, "tkinter"), "blue", 1)) return r_canvas_graphics
def sub_canvas_graphics(ai_rotation_direction, ai_angle_position): r_canvas_graphics = [] r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc, 'tkinter'), 'red', 1)) r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_x_shifted, 'tkinter'), 'red', 1)) r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_y_shifted, 'tkinter'), 'red', 1)) turning_outline = cnc25d_api.outline_rotate(my_outline_for_cnc_xy_shifted, big_length*4, big_length*4, ai_angle_position) r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(turning_outline, 'tkinter'), 'red', 1)) r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_rotated, 'tkinter'), 'green', 2)) r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_closed, 'tkinter'), 'blue', 1)) r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_reverse, 'tkinter'), 'blue', 1)) #r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_circle((100,100), 40, 'tkinter'), 'orange', 1)) # create a circle (obsolete) r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_arc_line((100, 100, 40), 'tkinter'), 'orange', 1)) # create a circle r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_arc_line(my_curve, 'tkinter'), 'green', 2)) r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_curve_for_cnc, 'tkinter'), 'blue', 1)) return(r_canvas_graphics)
################################################################ # Write the outline in a DXF file ################################################################ ## write my_outline_for_cnc in a DXF file print("Write the outlines in a DXF file with dxfwrite") output_dxf_file_name = "{:s}/outlines_with_dxfwrite.dxf".format(l_output_dir) dxf_figures = [my_outline_for_cnc, my_outline_for_cnc_rotated, my_circle] # figure = list of (format B) outlines cnc25d_api.write_figure_in_dxf(dxf_figures, output_dxf_file_name) ################################################################ # Extrude the outline to make it 3D ################################################################ ## extrude the outline to make a 3D part with FreeCAD my_freecad_part_outline = cnc25d_api.outline_arc_line(my_outline_for_cnc, "freecad") my_part_edges = my_freecad_part_outline.Edges my_part_wire = Part.Wire(my_part_edges) my_part_face = Part.Face(my_part_wire) my_part_solid = my_part_face.extrude(Base.Vector(0, 0, big_length)) # straight linear extrusion # short version: # my_part_face2 = Part.Face(Part.Wire(cnc25d_api.cnc_cut_outline_fc(cnc25d_api.outline_shift_y(my_outline, 4*big_length,0.5), 'freecad_short_version').Edges)) # my_part_solid2 = my_part_face2.extrude(Base.Vector(0,0,big_length)) # straight linear extrusion my_part2_B = cnc25d_api.cnc_cut_outline( cnc25d_api.outline_shift_y(my_outline, 4 * big_length, 0.5), "freecad_short_version" ) my_part_solid2 = cnc25d_api.figure_to_freecad_25d_part([my_part2_B], big_length) # creation of a circle with the cnc25d workflow # my_part_face3 = Part.Face(Part.Wire(cnc25d_api.outline_circle((100,100),40, 'freecad').Edges)) my_part_face3 = Part.Face(Part.Wire(cnc25d_api.outline_arc_line((100, 100, 40), "freecad").Edges)) my_part_solid3 = my_part_face3.extrude(Base.Vector(0, 0, big_length / 2)) # straight linear extrusion
################################################################ # Write the outline in a DXF file ################################################################ ## write my_outline_for_cnc in a DXF file print("Write the outlines in a DXF file with dxfwrite") output_dxf_file_name = "{:s}/outlines_with_dxfwrite.dxf".format(l_output_dir) dxf_figures = [my_outline_for_cnc, my_outline_for_cnc_rotated, my_circle] # figure = list of (format B) outlines cnc25d_api.write_figure_in_dxf(dxf_figures, output_dxf_file_name) ################################################################ # Extrude the outline to make it 3D ################################################################ ## extrude the outline to make a 3D part with FreeCAD my_freecad_part_outline = cnc25d_api.outline_arc_line(my_outline_for_cnc, 'freecad') my_part_edges = my_freecad_part_outline.Edges my_part_wire = Part.Wire(my_part_edges) my_part_face = Part.Face(my_part_wire) my_part_solid = my_part_face.extrude(Base.Vector(0,0,big_length)) # straight linear extrusion # short version: #my_part_face2 = Part.Face(Part.Wire(cnc25d_api.cnc_cut_outline_fc(cnc25d_api.outline_shift_y(my_outline, 4*big_length,0.5), 'freecad_short_version').Edges)) #my_part_solid2 = my_part_face2.extrude(Base.Vector(0,0,big_length)) # straight linear extrusion my_part2_B = cnc25d_api.cnc_cut_outline(cnc25d_api.outline_shift_y(my_outline, 4*big_length,0.5), 'freecad_short_version') my_part_solid2 = cnc25d_api.figure_to_freecad_25d_part([my_part2_B], big_length) # creation of a circle with the cnc25d workflow #my_part_face3 = Part.Face(Part.Wire(cnc25d_api.outline_circle((100,100),40, 'freecad').Edges)) my_part_face3 = Part.Face(Part.Wire(cnc25d_api.outline_arc_line((100, 100, 40), 'freecad').Edges)) my_part_solid3 = my_part_face3.extrude(Base.Vector(0,0,big_length/2)) # straight linear extrusion