Skip to main content

Module stepbom

Module stepbom 

Source
Expand description

Product structure of STEP assemblies (ISO 10303-21 files of AP203, AP214 and AP242) as a BOM table for the import (see crate::services::imports).

The reader looks at the product structure only, never at the geometry:

  • PRODUCT('id', 'name', 'description', …) – a part or an assembly; the id is its part number,
  • PRODUCT_DEFINITION_FORMATION(_WITH_SPECIFIED_SOURCE) and PRODUCT_DEFINITION – the version and the definition the structure links,
  • NEXT_ASSEMBLY_USAGE_OCCURRENCE(…, #parent, #child, …) – one placed occurrence of a component; the quantity is the number of occurrences below the same parent.

The assembly is the product that no other product uses; with several of them, each becomes a component of the new assembly. A sub-assembly lists its components at its first occurrence only (the import reads the BOM of a component once). Complex instances (#1 = (A() B());) and the quantities of QUANTIFIED_ASSEMBLY_COMPONENT_USAGE are not read.

An own minimal Part 21 reader: ruststep was rejected as a direct dependency (see docs/OPEN_WORK.md), and only five entity types are needed.

Functions§

external_instance_counts
How often a STEP assembly with external references places each referenced file (#247): the parts live in their own files ('bolt.stp'), the assembly file holds the structure. Which file a product definition stands for is read from
is_step
Whether the file name is a STEP file (.step, .stp, .p21).
read
Reads the product structure of a STEP file.