Assembly Constraint Conflict in a Linkage Subassembly
A packaging machine assembly contains a four-bar linkage subassembly with a crank, coupler, rocker and ground link. Each part is modeled at its own origin. The assembler places all four parts, grounds the frame, and applies mate constraints between pin holes, plus one angle constraint to drive the crank from 0 to 90 degrees. Dragging the crank produces a jerky motion and Inventor reports that the assembly is over-constrained; the angle constraint turns red when the crank passes about 40 degrees. A second symptom: the coupler flips to the wrong side of the rocker at that same position. The subassembly is later placed twice in the top-level machine, once mirrored, and the mirrored instance will not move at all.
1. Diagnose the over-constraint and the flip, and describe how to rebuild the subassembly so it drives cleanly through the full 0-90 degree range.
Read the worked answer
Two separate faults are present.
Over-constraint: each pin joint needs exactly the rotational and translational freedoms the real joint has. If the assembler mated both the cylindrical pin surface and the flat washer face at the same joint, the joint is correct (axis mate plus face mate). But if a second redundant mate was added elsewhere - for example mating two parallel faces that are already positioned by the linkage - the loop becomes over-constrained. Inventor reports this when the angle constraint cannot satisfy all mates simultaneously. The red constraint at 40 degrees is the solver telling you the loop has no valid solution there.
Flip: a four-bar linkage has two assembly branches (open and crossed). Mate constraints do not encode which branch you want. As the crank rotates, the solver can jump branches at a singular position, which is what happens near 40 degrees.
Rebuild approach:
- Remove redundant mates so each joint has the minimum set: one axis/insert per pin plus one face-to-face to remove axial float. Do not double up.
- Drive the mechanism by dragging first, with no angle constraint, to confirm it moves smoothly through the range.
- Add the angle constraint only after the loop is clean, and use it as a driver, not as an additional positional lock.
- To pin the branch, add a mate that is only satisfied on the intended side - for example a work-plane offset or an angle limit that keeps the coupler on the correct side.
- Test by driving the angle in small steps across 0-90 and confirm no red constraints.
Set the subassembly to Flexible if it must move at the top level.
2. Explain why the mirrored top-level instance is frozen, and give the correct procedure to get a working mirrored copy.
Read the worked answer
A mirrored component in an assembly is a derived, non-independent copy. Its geometry is generated by the mirror operation, so it has no editable constraints of its own and cannot be driven like the source. If the subassembly was placed as a rigid (non-flexible) component, the mirrored instance inherits that rigidity, and because it is a mirror it also cannot be re-constrained to move. The result is a copy that looks right in the static position but refuses to articulate.
Correct procedure depends on intent:
If the mirrored linkage must move independently:
- Do not use Mirror Component for the moving subassembly.
- Instead, place a second instance of the subassembly and use constraints to position it in the mirrored orientation, or create a separate mirrored part/subassembly model and constrain that.
- Set the subassembly occurrence to Flexible so its internal constraints solve at the top level.
If the mirrored copy only needs to be static:
- Mirror Component is acceptable, but document that it is a static representation.
- Suppress or remove any angle constraint inside the source that assumed motion, since the mirror cannot honor it.
Verification: after placing the second instance, drive the source crank and confirm the second instance moves as intended; if it does not, check the Flexible flag and whether the occurrence is a mirror.