Zolko wrote: ↑Fri Jan 17, 2020 11:50 am
What about a button called "Release" that would insert the LCS into the assembly but without any mapping or attachment, and still retain the latest position where the LCS was ?
Maybe you are talking about two different things
a) a new workbench icon for a "Release" command. A selected LCS would be "released" of its current attachment, e.g. it would be set to the Model origin + AttachmentOffset. As it would not forget that coordinates, it could be re-attached by pressing "Release" again. Since the mapping placement it in the "Placement" property and it is locked to the user.
b) A modified "Create New LCS" dialog, for example like this
"Cancel" "OK" "OK/Map..."
The "OK/Map" should mean that beside the naming a new dialog will open where the mapping of the LCS to other LCS can be done. Default selected button would be the "OK/Map.."
Do you have a specific use case in mind where the "Relase" toggle would be useful?
Zolko wrote: ↑Fri Jan 17, 2020 11:50 am
yes, I know, but there is nothing I can do about it. The explanation is the following: The "Transform" function applies to the Placement property of an object, but Assembly4 alreadu uses that Placement property (with its ExpressionEngine) to position the linked part in the assembly. [...]
I am sorry, I have to correct my question (in bold). I am not sure if that changes your answer..
catman wrote: ↑Thu Jan 16, 2020 3:54 pm
I also find myself modyfying the mapped
Geometry (not LCS) rather often. But I seem to take more time to struggle with the "Attachment Offset" properties. Initially I had hoped I could mofiy those settings with the "Transform" function interactively. But I did not get this to work, somehow. Currently I am typing numbers interatively all the time. Mouse wheel does not help a lot when scrolling mm-wise for distances of 1000mm or more.
Maybe there is a better way and I just do not see it?
Indeed I got the behaviour you described. After the transform tool was working interactively it snapped back to the old position after closing the tool. Very helpful to learn why that was.
I am not sure I fully understood your answer. I got that currently (V0.19 (Dec12)) it works like this
Code: Select all
ThePartPosition = Property/Placement + AttachmentOffset.
ThePartRotation = Property/Placement_Rot * AttachmentOffset_Rot
/\ /\
| |___ manually editing only
|____ Transform Tool input And Assembly4LinkMapping input
In a future solution the new situation for App:Link would be like this
Code: Select all
//App:Link special handling
ThePartPosition = Property/Placement( Attachment + AttachmentOffset).
ThePartRotation = Property/Placement_Rot ( Attachment_Rot * AttachmentOffset_Rot)
/\ /\ /\
| | |___ TransformTool input ends up here
| |____ Assembly4LinkMapping input
|____ Transform Tool input
Now App:link could you give Assembly4 access to the new Attachment variable. When App:Link get called with updates from the Transform tool it could redirect them to the AttachmentOffset variable (thus change in code required).
Maybe your answer only applied to LCS, because handling of LCS and Linked Geometry is different in Assembly4. After a new LCS you are in the standard FreeCAD MapMode dialog. After new a new Geometry link you have your own Assembly4 dialog. I can see that you store the rotations in the Placement property. The same dialog is invoked by the "Move a Part in the Assembly" Button.
Did you think about adding Transform buttons to the Mapping Dialog? Maybe that could be not only a workaround but a good long term solution to get rough positioning done in one go. (neither need of manual editing not a transform tool) It would be a bit more complex that rotary, because it would not cyle but I could see several useful ways to solve it.
With push buttons. One press gives one increment. Precise and repeatable positioning is possible, but the GUI is a bit cluttered and you click for longer distances quite a bit.
Code: Select all
Step | Increment
"Reset" "+X" "+Y" "+Z" | "1k" "100" " 1" " 0.1"
" -X" " -Y" " -Z" |
With Toggle Buttons and the mouse. Enabling "X"(left click) would move the part with the mouse in X until left click. Keys like Shift, Ctrl, Alt could be utilized to change speed or a "snap to even increments" mode. "Reset" and "X0" etc are pushbuttons to reset a single axis or all. By enabling X and Y at once, the same could work for moving on the XY plane.
Code: Select all
"Reset" "X" "Y" "Z"
"X0" "Y0" "Z0"
A very powerful usecase of this feature would be in architecture. Suppose you have constructed a house and want to put in furniture from a libray. You only would need one LCS per room in your model. Then for each furniture model you select the room and place it on the floow (xy plane) in the same dialog. Using the "Move a Part in the Assembly" you can re-arrange with the same GUI.