Release packages
A released part is handed over as a package: the model, the drawings, the PMI and inspection plan, the analyses, and a list that says which release it is. NX does this with File › Export › Publish Technical Data Package. NX-Style’s Publish Release Package is on the PLM tab and the PMI tab.
From a release, not from the working copy
With Strata, the dialog lists the part’s releases and picks the newest Released one. The package is made from the document exactly as it was released: Strata writes that version out, NX-Style opens it, exports it and closes it. Changes made since in the working copy are not in it. Tutorial V publishes revision A again after an engineering change, and its package still documents the old bore.
Without a release (or without Strata) the package is made from the open document and marked Not released.
Contents
BUSH-100_B/
model/BUSH-100_B.step the solids as STEP AP242, with the semantic PMI when the part has PMI
(the manifest records the schema and the PMI the file holds)
model/BUSH-100_B.FCStd the released FreeCAD document
drawings/Page.pdf every drawing sheet
pmi/pmi.json the PMI, semantic: standard, general tolerances, every annotation
pmi/inspection_plan.csv numbered characteristics, limits, where the tolerance comes from, method
pmi/functional_gauge.csv gauge elements at virtual condition (when there are frames at MMC)
pmi/checks.txt the ISO GPS or ASME checks
analysis/<stack-up>.txt|.csv every tolerance stack-up
analysis/mass_properties.csv volume, area, material, mass, centre of mass
manifest.json the release (part number, revision, state, approver, version, commit) and
every file with its size and SHA-256
README.txt the same, readable
BUSH-100_B.zip the folder as a reproducible zip (same files, same bytes)
PLM › Publish to Manufacturing sends a release’s package on to Carbon, the manufacturing system.
Checking a package
The recipient checks that nothing was changed or lost:
python -m nxstyle.package verify BUSH-100_B
It recomputes every checksum and lists changed, missing and unlisted files (exit code 1), or says that all files match.
Run it from the NXStyle folder, or with that folder on PYTHONPATH; it needs no FreeCAD.
Matching checksums prove only that the files are the ones listed, so verify also checks that the package is a release at all.
It needs:
-
a manifest of the right format that names the part number and revision and lists at least one file;
-
the files its profile needs. A
releasepackage needs the model as STEP and as the native file. Ageometrypackage needs the STEP only and does not claim complete PMI. Apartialpackage holds whatever parts of the package were chosen. -
no critical loss.
The manifest lists the losses met while making the package.
Some are things STEP AP242 cannot carry through OpenCASCADE, such as the envelope Ⓔ, a 4X count, ISO 2768 or the link between a composite frame’s rows. These are listed, and pmi_complete says false; pmi.json keeps them.
Others are critical, and fail a release:
-
a PMI that is not valid;
-
a stack-up without a valid result;
-
an inherited drawing annotation that no longer shows its PMI;
-
PMI the STEP lost for another reason.
Values that are not current must not be released.
A package is made in a staging folder and verified before it replaces an earlier package of the same revision.
A package that does not verify, or one whose making fails half way, leaves the earlier package and its zip as they were.
Before 2026-10-26 the earlier package was deleted first, and an empty manifest passed verify.
What differs from NX
-
NX publishes PMI in 3D PDF or JT and in STEP AP242 with semantic PMI. NX-Style’s package has the semantic PMI in its STEP file (see STEP AP242 with semantic PMI) and everything else in
pmi.jsonand the inspection plan; there is no 3D PDF or JT. -
The checksummed manifest and the verify command are NX-Style’s.