Assemblies
Build and interrogate an assembly by chat — insert and position components, create mates and constraints, swap parts, produce a BOM, check interference, drive configurations, and clone a whole product structure. Positions are millimetres, rotations degrees.
A worked assembly, start to finish
A pin joint: a fork, a pin through it, and a collar on each end. This is the shape of an assembly session that goes well — place first, mate second, verify at each stage.
-
Create a new assembly and save it as C:\projects\knuckle.sldasm
-
Insert C:\parts\fork.sldprt at the origin and ground it
Ground the first component. Everything else positions relative to it.
-
Insert C:\parts\pin.sldprt at (0, 0, 18)
Roughly where it belongs is good enough — the mate does the precision.
-
Make the pin concentric with the fork, and report the solver status and both bound faces' radii
Check the radius is the bore you meant, not a counterbore next to it.
-
Insert C:\parts\collar.sldprt twice, at (0, 0, -6) and (0, 0, 42), and make each one concentric with the pin
-
List the components and give me the assembly bounding box
Four components, and a bounding box that matches the design. Now it is worth saving.
Creating an assembly and inserting components
Components can be inserted at an X/Y/Z position, rotated about the world Z, Y and X axes in degrees, and optionally grounded (fixed) on the spot. Rotating on insert is often the difference between one mate and four.
C:\parts\bracket.sldprt rather than a bare file name, unless the part is already in the working folder.A component can also be inserted into a sub-assembly rather than the top level, by naming the target:
Components can also be removed, grounded later, or suppressed:
Mates and constraints — name the components, not the faces
This is the most important habit on the page. Ask for the mate by component name and mate type, and let CoPilot find the geometry. Do not supply face or edge IDs, and do not try to describe faces in words.
For a concentric or coaxial mate, CoPilot enumerates the cylindrical faces of both components in assembly space, keeps the pairs whose axes actually line up in the world, and prefers the smallest radial gap — so a Ø28 shaft binds to the Ø28 bore rather than to the Ø40 counterbore next to it.
Two consequences worth knowing
- Position the components roughly right first, then mate. The pairing is done by world coaxiality, so parts that are already approximately where they belong mate reliably. Insert with a position and rotation, then mate.
- Component names are forgiving. Case does not matter, and instance suffixes are optional —
fork-1andforkboth work. Nested components can be named by their path (subassembly|part) or matched on the last part of the name.
Available mate types
Coincident, Concentric, Coaxial, Parallel, Perpendicular, Tangent, Distance, Angle, Flush, plus an insert constraint (mate and axial alignment combined). Distance and angle mates take a value.
Read the solver status — existence is not health
A mate can exist in the tree and still be broken. Every mate CoPilot creates is checked against the assembly solver, and a mate that does not come back healthy is deleted and reported as a failure rather than left in your model looking finished. The reply carries the evidence:
- the two bound faces' axis points, directions and radii — check the radius is the one you meant;
- the solver status. Solved is what you want. Between fixed is also healthy — it just means both components are grounded, so the solver has nothing to solve.
Then confirm nothing moved that should not have:
Replacing and swapping components
Position and mates are preserved where the new part allows it. For a batch of substitutions, a mapping file with one old|new pair per line can be used instead of naming each one.
Bills of materials
Four BOM shapes are available, and the difference matters:
- All levels (the default) — every level, with quantities rolled up by file.
- Parts only — leaf parts with quantities rolled up; the shape a purchasing department usually wants.
- Top level — the first level only.
- Indented — one row per occurrence, quantity always 1; the shape you want when you need to see each instance separately.
A BOM can also be read back in, which is how you build an assembly from a purchased or planned parts list:
Header naming is tolerant — Part Number, PartNumber and part_number are all understood, likewise File Path/Path and Quantity/Qty.
For a BOM table on a drawing sheet rather than a spreadsheet, see Drawings & Dimensions. For the BOM your PDM system holds, see SOLIDWORKS PDM or Autodesk Vault.
Querying an assembly
Hiding components to see inside
To study one component, hide the others rather than suppressing them — a hidden component stays loaded and still counts towards mass and interference, it is just not drawn.
Full details, including which entity kinds each CAD supports, are on Showing & Hiding. (Suppressing, which does change mass and mates, is covered under Variants below.)
Exploded views
Each explode step names the components and the distance and direction they move.
Variants: configurations, model states, arrangements, family members
Each of the four 3D CAD systems has this idea and every one names it differently. CoPilot handles all four, using each system's native mechanism — SOLIDWORKS configurations and display states, Inventor model states and positional / design-view representations, NX arrangements and part-family members, Solid Edge family members.
Ask what exists before you name one, so you use the system's own wording:
Note the distinction between the last two ideas: activating a variant changes the document, while pointing a component at a variant changes only that occurrence inside the assembly. A drawing view can also be retargeted at a variant — see Drawings.
Cloning a product structure
Copying an assembly and renaming its children — the job normally done with Pack-and-Go — can be driven from chat, including multi-level.
Rename strategies include prefix, suffix, regular-expression replacement, a per-component map, and auto-numbering. The CAD system's own Pack-and-Go machinery does the copying, so references stay intact.
Assemblies from a template
If your organization has stored assembly templates, an assembly can be instantiated from one with your input values, rather than built by hand.
CoPilot can also draft a new template from a description for review — it will not save it until someone with the right permission approves it.
Verifying an assembly
Assembly verification is different from part verification: mass and volume are far less trustworthy indicators than component count and bounding box, and in some CAD systems an assembly-level volume query returns nothing useful at all.
After a run of mates, the bounding box is the quickest way to notice that something was dragged across the model by a bad constraint.
See also
- Part Modeling
- Drawings & Dimensions
- Feature Tree Translation — moving an assembly between CAD systems.
- Verifying results