Drive Joints says where and why a drive stopped short (#1169)

Drive Joints says where and why a drive stopped short.
This commit is contained in:
Mateusz Sych authored and GitHub committed 2026-10-14 17:56:21 -04:00
1 parent 5744b1f327
commit 01b1b70586
12 files changed
+165 -9

No files matched your search

+4 -1
View File
@@ -34,7 +34,10 @@ mechanism stays in the assembly mode it started in (an open four-bar does not fl
crossed one). If the motion would take a loop past the point where it can still close, for
example driving a rocker beyond its swing, the motion stops at the last position where the loop
closes, and the drive reports `stopped_by_loop`. A loop that cannot close at all is listed
under `conflicts` and nothing in it moves.
under `conflicts` and nothing in it moves. The Drive Joints dialog says when a drive stops short and
why. While it previews, a row under the values gives the value the joint reached and the reason
(the loop that can't close further, or the two parts a contact set keeps apart), and after OK the
status line repeats it. The value box keeps what you typed.
**Insert Design** (`component.insert_design {path, translate?}`) adds a component linked to
another saved design, so each part can live in its own document. The part's solid bodies come
+6
View File
@@ -16,6 +16,12 @@ to leave the bodies just short of penetration, within the tessellated contact to
Motion links and limits participate in the trajectory checks. Moving a body between
components preserves its placement for contact checks through its body offset.
A drive can also stop where a closed loop of joints (a four-bar, a slider-crank) can no longer
close; it then returns `stopped_by_loop` instead, with the joint whose loop opens and the
fraction reached. When both apply, the motion stops at whichever comes first, and only that
one is reported. The Drive Joints dialog shows the reached value and the reason while it
previews, and the status line repeats it after OK.
The trajectory uses bounded samples of cached tessellated geometry. Spacing accounts for
effective joint travel, angular motion, distance from joint pivots and whole-body widths
along sampled face directions. This handles tilted thin plates while keeping curved bodies