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
)
| 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 |
no test coverage detected