# display the figure cnc25d_api.figure_simple_display(simple_figure, overlay_figure, simple_figure_info) simple_extrude_height = 20.0 # create a FreeCAD part simple_part = cnc25d_api.figure_to_freecad_25d_part(simple_figure, simple_extrude_height) # create the test_output_dir test_output_dir = "test_output" cnc25d_api.mkdir_p(test_output_dir) # write the SVG file with mozman svgwrite cnc25d_api.write_figure_in_svg(simple_figure, "{:s}/simple_part_mozman.svg".format(test_output_dir)) # write the DXF file with mozman dxfwrite cnc25d_api.write_figure_in_dxf(simple_figure, "{:s}/simple_part_mozman.dxf".format(test_output_dir)) # simple_part in 3D BRep print("Generate {:s}/simple_part.brep".format(test_output_dir)) simple_part.exportBrep("{:s}/simple_part.brep".format(test_output_dir)) # simple_part in 2D DXF print("Generate {:s}/simple_part.dxf".format(test_output_dir)) # slice simple_part in the XY plan at a height of simple_extrude_height/2 cnc25d_api.export_to_dxf(simple_part, Base.Vector(0,0,1), simple_extrude_height/2, "{:s}/simple_part.dxf".format(test_output_dir)) # view the simple_part Part.show(simple_part) ################################################################ # End of the script ################################################################
simple_extrude_height = 20.0 # create a FreeCAD part simple_part = cnc25d_api.figure_to_freecad_25d_part(simple_figure, simple_extrude_height) # create the test_output_dir test_output_dir = "test_output" cnc25d_api.mkdir_p(test_output_dir) # write the SVG file with mozman svgwrite cnc25d_api.write_figure_in_svg( simple_figure, "{:s}/simple_part_mozman.svg".format(test_output_dir)) # write the DXF file with mozman dxfwrite cnc25d_api.write_figure_in_dxf( simple_figure, "{:s}/simple_part_mozman.dxf".format(test_output_dir)) # simple_part in 3D BRep six.print_(("Generate {:s}/simple_part.brep".format(test_output_dir))) simple_part.exportBrep("{:s}/simple_part.brep".format(test_output_dir)) # simple_part in 2D DXF six.print_(("Generate {:s}/simple_part.dxf".format(test_output_dir))) # slice simple_part in the XY plan at a height of simple_extrude_height/2 cnc25d_api.export_to_dxf(simple_part, Base.Vector(0, 0, 1), simple_extrude_height / 2, "{:s}/simple_part.dxf".format(test_output_dir)) # view the simple_part Part.show(simple_part) ################################################################
## write my_outline_for_cnc in a SVG file print("Write the outlines in a SVG file with svgwrite") output_svg_file_name = "{:s}/outlines_with_svgwrite.svg".format(l_output_dir) my_circle = (100, 100, 40) svg_figures = [my_outline_for_cnc, my_outline_for_cnc_rotated, my_circle] # figure = list of (format B) outlines cnc25d_api.write_figure_in_svg(svg_figures, output_svg_file_name) ################################################################ # 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(
## write my_outline_for_cnc in a SVG file print("Write the outlines in a SVG file with svgwrite") output_svg_file_name = "{:s}/outlines_with_svgwrite.svg".format(l_output_dir) my_circle = (100, 100, 40) svg_figures = [my_outline_for_cnc, my_outline_for_cnc_rotated, my_circle] # figure = list of (format B) outlines cnc25d_api.write_figure_in_svg(svg_figures, output_svg_file_name) ################################################################ # 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')