@TrippyLighting wrote:
@info7JY2S wrote:... I moved the part with a reason and want it to stay there after GTP-ing it again.
Use a joint for that.
That is indeed functionally correct.
However, it requires extra work (defining a joint) and it does not answer the OP's question, which is rather "What is the rationale that 'ground to parent' would revert the child component to its original position?".
I don't see the rationale either, and even less so when working in direct mode (i.e. without model history). When editing without history, the notion of 'initial position' does not make sense. Yet you still get the same dialog window requesting to 'revert or capture the position'. And worse: in some cases you don't get the 'capture' option, and you can only 'revert position'. In those cases 'ground to parent' is useless and even a waste of time (as you have to click cancel and then define a joint or a rigid group instead).
While the 'ground to parent' functionality is clearly 'better than what existed before', I feel it still not realizes the ideal work flow.
I think the functionality people are typically expecting/requiring is:
- Create a new component (or insert an existing component),
- Select an initial position for that component (or simply acknowledge the default position),
- The component is 'fixed' by default, i.e. you cannot drag it,
- However, you can still use the move command to position it wrt other parts, after which it is 'fixed' again on its new position,
- And if you rather want to allow motion of that component wrt another (in one or more degrees of freedom), then you define a joint between those components, which overrules the 'fixed' state.
The benefits would be:
- One clear interface: either something is fixed, or it has a well-defined kinematic chain defined by joints,
- One consistent interface: no more need for pin / rigid group / ground to parent / etc., which are semantically identical to fixed joints. The sole reason that they exist is to avoid work, which above proposal avoids anyway.
- No longer possible to forget to define the 'ground to parent' and then accidentally drag a component without noticing (this is an issue when direct modeling, as there is no history, and hence no request to 'capture the position').
- Less work, as it is no longer needed to define the 'ground to parent' for each new or inserted component (unless you actually want it to move, in which case you have to define a joint anyway).
I don't see any real drawbacks. Maybe that it can sometimes be easy to drag away a component temporarily and then revert its position. But there are alternatives for that. And also: this only works for unconstrained components anyway. Imo. it is bad practice to have unconstrained components in an assembly (certainly in direct modeling mode).