def test_iges_exporter_happy_path(box_shape): r"""Happy path""" filename = path_from_file(__file__, "./models_out/box.IgS") exporter = IgesExporter(filename) exporter.add_shape(box_shape) exporter.write_file() assert os.path.isfile(filename)
def test_iges_exporter_adding_not_a_shape(box_shape): r"""Adding something to the exporter that is not a TopoDS_Shape or a subclass""" filename = path_from_file(__file__, "./models_out/box.igs") exporter = IgesExporter(filename) with pytest.raises(ValueError): exporter.add_shape(gp_Pnt(1, 1, 1))
def test_iges_exporter_happy_path_shape_subclass(box_shape): r"""Happy path with a subclass of TopoDS_Shape""" filename = path_from_file(__file__, "./models_out/box.igs") exporter = IgesExporter(filename) solid = shape_to_topology(box_shape) assert isinstance(solid, TopoDS_Solid) exporter.add_shape(solid) exporter.write_file() assert os.path.isfile(filename)
def test_iges_exporter_overwrite(box_shape): r"""Happy path with a subclass of TopoDS_Shape""" filename = path_from_file(__file__, "./models_out/box.igs") exporter = IgesExporter(filename) solid = shape_to_topology(box_shape) assert isinstance(solid, TopoDS_Solid) exporter.add_shape(solid) exporter.write_file() assert os.path.isfile(filename) # read the written box.igs importer = IgesImporter(filename) topo_compound = Topo(importer.compound) assert topo_compound.number_of_faces == 6 assert topo_compound.number_of_edges == 24 # add a sphere and write again with same exporter sphere = BRepPrimAPI_MakeSphere(10) exporter.add_shape(sphere.Shape()) exporter.write_file() # this creates a file with a box and a sphere # check that the file contains the box and the sphere importer = IgesImporter(filename) topo_compound = Topo(importer.compound) assert topo_compound.number_of_faces == 7 # 6 from box + 1 from sphere # create a new exporter and overwrite with a box only filename = path_from_file(__file__, "./models_out/box.igs") exporter = IgesExporter(filename) solid = shape_to_topology(box_shape) exporter.add_shape(solid) exporter.write_file() assert os.path.isfile(filename) # check the file only contains a box importer = IgesImporter(filename) topo_compound = Topo(importer.compound) assert topo_compound.number_of_faces == 6 # 6 from box
#!/usr/bin/env python # coding: utf-8 r"""Exporting multiple shapes to IGES""" import logging import OCC.Core.BRepPrimAPI from aocxchange.iges import IgesExporter from corelib.core.files import path_from_file logging.basicConfig(level=logging.DEBUG, format='%(asctime)s :: %(levelname)6s :: %(module)20s :: ' '%(lineno)3d :: %(message)s') # First create a simple shape to export box_shape = OCC.BRepPrimAPI.BRepPrimAPI_MakeBox(50, 50, 50).Shape() sphere_shape = OCC.BRepPrimAPI.BRepPrimAPI_MakeSphere(20).Shape() # Export to IGES filename = path_from_file(__file__, "./models_out/result_export_multi.iges") my_iges_exporter = IgesExporter(filename, format_="5.3") my_iges_exporter.add_shape(box_shape) my_iges_exporter.add_shape(sphere_shape) my_iges_exporter.write_file()