I don’t see on your gif (it’s too small) if there is enough accuracy shown, because in DC attributes I get only integers like 56, 24, 7, etc.
it displays the integers, but it works with floats internally. The trick is to have the Axis correct. When you suspect an inaccuracy, type in a divergent number, and then back the correct.
eg. you can typ 44,998, zoom in to see the change, then type 45
as a variant but I’ve got more than 30 components and if some of them have an inaccuracy so I have to watch with scaling for each of them and find if there is it exist or not. agree that it would be much easier if you simply select components and see on some tab exact orientation.
Here is my “quick and dirty” extension. I hope you can use this.
Dezmo Align Axes
The extension is not signed you must enable “Unrestricted” in Extension manager…
You will get a new menu and toolbar icon.
(Should work if SU version>= 2017 )
The tool is experimental, you may or may not get the desired result. Use your own risk.
Description (See also in Instructor)
(See also in Instructor window during using the extension)
The extension will determine the angles between model axes and instance axes pairs, then align the axes by rotating the instance.
By hovering the mouse over the component/group instance in question angles will be shown.
Left mouse click on instance will align the instance axes to the direction of the model axes. The instance will not move, but rotate. The rotation origin is the origin (sometimes called insertion point) of instance - In other words it’s axes intersection.
Right mouse click will bring a context menu to exit. You can also exit by selecting another tool except the Orbit, Pan, Zoom… Etc.
E.g.: press Space to select the Selection tool and exit but use the mouse wheel zooming and orbiting as usual.
The angle in question is calculated simply. It means, just on the plane determined by corresponding model axis and instance axis. E.g. the instance X axis will not be projected to model Z plane to measure angle.
The alignment operations are not wrapped as one “undo”. You will find “Undo Move” or “Redo Move” for every and each rotation if you check for undo-redo stack.
The tool will not work in nested components. E.g. if you are editing a component and you start the tool, the editing context will jump back to root of the model. (If SU version < 2020 the tool warns you and will not start . Go out from editing to model root manually… and you can start after…)
The precision of the lengths and angle in degrees will be same as the Model Info>>Units>>Angle/ Length units: Precision. However, the radians are not rounded.
The green “Aligned” text means the angle difference is less than 0.000001 radians. However, you can still click on instance to align….
Note: new bug fixed version in post below
Thanks a lot!) I’ll check it some time later and say you results here.
Will the instance’s axes and the model’s axes eventually be “equal” 100% ?
My layman approach (if it’s just for a few groups or components!) is to temporarily borrow the instance’s axes to a new scene > copy instance to clipboard > place instance from clipboard into current drawing axes system (whatever they may be, so not only the system’s axes).
It’s all native so I do have to rely on SketchUp to do it right.
As far as I know SketchUp’s built-in tolerance for length is 1/1000". But I’m not sure about the tolerance of angles.
I’m also not sure about copy-paste accuracy.
In my extension I’m using the Ruby API
angle_between method bw. vectors of model/instance axes and I displaying the “pure” radians. The degrees are formatted according to “Precision” in Settings
But In my extension I’m using the instance transformation inverse to align the axis pairs…(combined some translation to keep in place.).
The instance transformation is meaning "how far and how the instance rotated " relative to model origin and axes. The inverse transformation therefore should do the trick…
So answering to you question:
Yes after using my method, the instance’s axes and the model’s axes are eventually 100% “equal” . At least within SketchUp’s built-in tolerance.
(Even if the calculated angle difference numerically show zeros you can still apply alignment, therefore you can be sure about the “equality”.)
Will the extention work with SketchUp 2018? I see it seems to be for 2020.
I would like to test/try it.
b.t.w. I don’t know anything (or hardly) about Ruby so I always try to find a native answer. I admire how you guys come up with coded solutions.
Yes. I have been tested for 10 minutes in 2017 Make so 2018 should be ok.
The only difference is that if you are inside the Edit component you will be warned to go out first… but you can start after.
in SU 2020 I can " kick you out " via Ruby …
No measurable linear (zero) difference between both directions (local x axis v.s. system’s X axis direction) at 20km distance from that local origin. What can I say other than that it seems to be safe to use.
You are welcome!
BTW: Happy Anniversary!
Thank you again!
Bug fix for Dezmo Align Axes:
I forgot about if the instance is scaled. The scale of the instance will not be reset back to 1 with this fix…
Note: Again some fine tune…
Just tested the previous version again.
It aligns top level locked instances. Maybe it would be better to prevent that from happening, to be more consistent with SketchUp.
Nested locked instances are not protected from manipulating the parent but locked parents (current top level) are.
Yes Sir! There was already a red highlight. I thought it is enough… but partly agree!
Fix by Request for Dezmo Align Axes :
The align needs to be confirmed, if the instance in question is locked.
Sketchup has the ability to show the component axes of all components (not just in component editing mode). Does that help you?
Menu: window> Model info> Component tab> tick the “Show Component Axes” tickbox.
yes, I know but this is not helpfull in such case