Skip to content

Commit

Permalink
export_step and export_stl merged into a single function
Browse files Browse the repository at this point in the history
  • Loading branch information
David Sosa sanchez authored and davidsosa committed Nov 15, 2024
1 parent e88f2d1 commit 0e8e0fa
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 43 deletions.
28 changes: 9 additions & 19 deletions parastell/invessel_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ def merge_layer_surfaces(self):
)
prev_outer_surface_id = outer_surface_id

<<<<<<< HEAD
def import_step_cubit(self):
"""Imports STEP files from in-vessel build into Coreform Cubit."""
for name, data in self.radial_build.radial_build.items():
Expand All @@ -301,35 +302,24 @@ def import_step_cubit(self):

def export_step(self, export_dir=""):
"""Export CAD solids as STEP files via CadQuery.
=======
def export_components(self, filetype ="step", export_dir=""):
"""Export CAD solids as STEP or STL files via CadQuery.
>>>>>>> 666c81c (export_step and export_stl merged into a single function)

Arguments:
filetype (str): file extension to which solids are exported
(defaults to STEP).
export_dir (str): directory to which to export the STEP output files
(optional, defaults to empty string).
"""
self._logger.info("Exporting STEP files for in-vessel components...")
self._logger.info(f"Exporting {filetype.upper()} files for in-vessel components...")
self.export_dir = export_dir
for name, component in self.Components.items():
export_path = Path(self.export_dir) / Path(name).with_suffix(
".step"
)
cq.exporters.export(component, str(export_path))

def export_stl(self, export_dir=""):
"""Export CAD solids as STL files via CadQuery.
Arguments:
export_dir (str): directory to which to export the STL output files
(optional, defaults to empty string).
"""
self._logger.info("Exporting STL files for in-vessel components...")

self.export_dir = export_dir

for name, component in self.Components.items():
export_path = Path(self.export_dir) / Path(name).with_suffix(
".stl"
f".{filetype}"
)
cq.exporters.export(component, str(export_path))
Expand Down
14 changes: 12 additions & 2 deletions parastell/magnet_coils.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ def build_magnet_coils(self):

self._cut_magnets()

<<<<<<< HEAD
def import_step_cubit(self):
"""Import STEP file for magnet set into Coreform Cubit."""
first_vol_id = 1
Expand All @@ -252,19 +253,24 @@ def import_step_cubit(self):

def export_step(self, step_filename="magnet_set", export_dir=""):
"""Export CAD solids as a STEP file via CadQuery.
=======
def export_components(self, filetype="step", filename="magnet_set", export_dir=""):
"""Export CAD solids as a STEP or STL file via CadQuery.
>>>>>>> 666c81c (export_step and export_stl merged into a single function)

Arguments:
step_filename (str): name of STEP output file, excluding '.step'
extension (optional, defaults to 'magnet_set').
export_dir (str): directory to which to export the STEP output file
(optional, defaults to empty string).
"""
self._logger.info("Exporting STEP file for magnet coils...")
self._logger.info(f"Exporting {filetype.upper()} file for magnet coils...")
self.export_dir = export_dir
self.step_filename = step_filename
self.filename = filename
export_path = Path(self.export_dir) / Path(
<<<<<<< HEAD
self.step_filename
).with_suffix(".step")
Expand Down Expand Up @@ -294,6 +300,10 @@ def export_stl(self, stl_filename="magnet_set", export_dir=""):
export_path = Path(self.export_dir) / Path(
self.stl_filename
).with_suffix(".stl")
=======
self.filename
).with_suffix(f".{filetype}")
>>>>>>> 666c81c (export_step and export_stl merged into a single function)

coil_set = cq.Compound.makeCompound(
[coil.solid for coil in self.magnet_coils]
Expand Down
36 changes: 14 additions & 22 deletions parastell/parastell.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,15 @@ def construct_invessel_build(
self.invessel_build.generate_components()

def export_invessel_build(
self, export_to_stl=False, export_cad_to_dagmc=False, dagmc_filename="dagmc", export_dir=""
self, filetype="step", export_cad_to_dagmc=False, dagmc_filename="dagmc",
export_dir=""
):
"""Exports InVesselBuild component STEP files and, optionally, to STL files and a DAGMC
"""Exports InVesselBuild component STEP or STL files and, optionally, a DAGMC
neutronics H5M file of in-vessel components via CAD-to-DAGMC.
Arguments:
export_to_stl (bool): export in-vessel components to STL format
(optional, defaults to False)
filetype (str): file extension to which solids are exported
(defaults to STEP).
export_cad_to_dagmc (bool): export DAGMC neutronics H5M file of
in-vessel components via CAD-to-DAGMC (optional, defaults to
False).
Expand All @@ -186,10 +187,7 @@ def export_invessel_build(
export_dir (str): directory to which to export the output files
(optional, defaults to empty string).
"""
self.invessel_build.export_step(export_dir=export_dir)

if export_to_stl:
self.invessel_build.export_stl(export_dir=export_dir)
self.invessel_build.export_components(filetype=filetype, export_dir=export_dir)

if export_cad_to_dagmc:
self.invessel_build.export_cad_to_dagmc(
Expand Down Expand Up @@ -233,8 +231,8 @@ def construct_magnets(

def export_magnets(
self,
step_filename="magnet_set",
export_stl=False,
filetype="step",
filename="magnet_set",
export_mesh=False,
mesh_filename="magnet_mesh",
export_dir="",
Expand All @@ -243,11 +241,10 @@ def export_magnets(
"""Export magnet components.
Arguments:
step_filename (str): name of STEP export output file, excluding
'.step' extension (optional, optional, defaults to
'magnet_set').
export_stl (bool): export magnet components in STL format. File name
is the same as step_filename (optional, defaults to False)
filetype (str): filetype (str): file extension to which solids are
exported (defaults to STEP).
filename (str): name of export output file, excluding extension
(optional, defaults to 'magnet_set').
export_mesh (bool): flag to indicate tetrahedral mesh generation
for magnet volumes (optional, defaults to False).
mesh_filename (str): name of tetrahedral mesh H5M file, excluding
Expand All @@ -263,15 +260,10 @@ def export_magnets(
max_gradient (float): maximum transition in magnet mesh element
size (defaults to 1.5).
"""
self.magnet_set.export_step(
step_filename=step_filename, export_dir=export_dir
self.magnet_set.export_components(
filetype=filetype, filename=filename, export_dir=export_dir
)

if export_stl:
self.magnet_set.export_stl(
stl_filename=step_filename, export_dir=export_dir
)

if export_mesh:
self.magnet_set.mesh_magnets(**kwargs)
self.magnet_set.export_mesh(
Expand Down

0 comments on commit 0e8e0fa

Please sign in to comment.