MCPcopy
hub / github.com/CadQuery/cadquery / _process_assembly

Function _process_assembly

cadquery/occ_impl/exporters/assembly.py:293–320  ·  view source on GitHub ↗

Recursively process the assembly and its children. :param assy: Assembly to process :param parent_label: The parent label for the assembly :return: None

(
        assy: AssemblyProtocol, parent_label: Optional[TDF_Label] = None
    )

Source from the content-addressed store, hash-verified

291 layer_tool.SetLayer(face_label, layer_label)
292
293 def _process_assembly(
294 assy: AssemblyProtocol, parent_label: Optional[TDF_Label] = None
295 ):
296 """
297 Recursively process the assembly and its children.
298 :param assy: Assembly to process
299 :param parent_label: The parent label for the assembly
300 :return: None
301 """
302 # Use the assembly name if the user set it
303 assembly_name = assy.name if assy.name else str(uuid.uuid1())
304
305 # Create the top level object that will hold all the subassemblies and parts
306 assy_label = shape_tool.NewShape()
307 TDataStd_Name.Set_s(assy_label, TCollection_ExtendedString(assembly_name))
308
309 # Handle subassemblies
310 if parent_label:
311 shape_tool.AddComponent(parent_label, assy_label, assy.loc.wrapped)
312
313 # The children may be parts or assemblies
314 for child in assy.children:
315 # Child is a part
316 if len(list(child.children)) == 0:
317 _process_child(child, assy_label)
318 # Child is a subassembly
319 else:
320 _process_assembly(child, assy_label)
321
322 _process_assembly(assy)
323

Callers 1

exportStepMetaFunction · 0.85

Calls 1

_process_childFunction · 0.85

Tested by

no test coverage detected