[Plugin] Arc_Offset_True
-
Works a treat, thanks TIG.
-
Thank you, TIG:
I estimate that you did this in about 4 hours judging from your last post in the "Inacurrate" thread until you came out with the first version. This is sorta Herculean -
@wo3dan said:
@tig said:
It now has an optional 'Number' in the dialog [which defaults to 1] to make arrayed offsets.
A context-menu option has been added.Great! I notice that no faces are create from new geometry. Not that it is an issue. But an original face is an obstacle!
From experimenting with/without faces where the original arc is part of the boundary of the face, I notic that whenever a face is involved, the array operation stops at one and splits up the new arc into as many edges as there would be segments. (thus causing the array offset to stop at one, I guess)
At the moment it offsets the arc and continues using the last one, if that's intersected you get a split result... I'll look at a fix. -
Thank you, TIG.
Your attention to 'right' wrongs not right, even if right, if not without a fight, make no one uptight, and we appreciate it, a lot.
-
thanks TIG. I haven't tried it yet but have confidence it will be the answer to one of my SU-wish list items
-
Tig's plug don't give the same result than the Multiple Offests of Sdmitch
Each plug has it's own utility -
Here's v1.3 http://forums.sketchucation.com/viewtopic.php?p=395769#p395769
Multiple offsets will now intersect with other geometry only AFTER they have ALL been formed.
The native Offset tool's offset-arcs that are intersected become Curves, but this tool will make them as Arcs [albeit 'split'].
Offset-arcs made from an Arc that bounds a face will become Curves in the native Offset tool; this tool produces similar results.
I think that now addresses the various issues... -
excellent plugin.
a query.
is possible to make the plugin more interactive? not to use dialog. Use vcv Viewer?thank you very much
-
Here's v1.4 http://forums.sketchucation.com/viewtopic.php?p=395769#p395769
The final pieces of the jigsaw are hopefully in place...Unlike the native Offset tool, all offset-arcs are now always made as 'Arcs' - whether they are faced/not-faced, or intersect with other geometry.
-
Here's v1.5 http://forums.sketchucation.com/viewtopic.php?p=395769#p395769
Includes a needed a minor code tweak... you'd probably not notice, but I will -
ha! awesome.. this one immediately went to a shortcut assignment
the next challenge, if it's even possible, would be to allow us to select a string(?) of lines/curves/arcs then offset them.. say i had a straight line, then a tangent arc, then another straight line.. select all three and you could offset them at once.. only since there's an arc in there, your offset_true will recognize it and deal with it accordingly
(as this is a scenario where vanilla offset will really flounder) -
@tig said:
..Multiple offsets will now intersect with other geometry only AFTER they have ALL been formed....
Thanks TIG, for all the changes you made with the speed of lightning.
I used "isolate the problematic arc in a group" before multiple offsets. Then explode the result again.
Out of curiosity, is this how you work around the intersect problem in the newest version?
Thanks again. -
@wo3dan said:
@tig said:
..Multiple offsets will now intersect with other geometry only AFTER they have ALL been formed....
Thanks TIG, for all the changes you made with the speed of lightning.
I used "isolate the problematic arc in a group" before multiple offsets. Then explode the result again.
Out of curiosity, is this how you work around the intersect problem in the newest version?
Thanks again.
I now group the original arc [as a copy] and then scale it multiple times about its origin, then explode all of them when I'm done; that way, they only 'intersect' with everything else when it's all done...
The way it gets around the issue of offsetting an arc that is bounding a face [that manifests itself as a new curve with the native tool] is to group the original arc AND all of its connected faces, then erase all of the edges in the group that are not part of the original arc. Then we have a grouped arc that can be scaled/exploded etc...
Thus all 'true' offsets of an arc now always result in new arcs [unless of course it's a -ve offset, when some will not get made at all, if the inwards offset is <= arc.radius]
-
Some errors in console when you run tool...
offset_true.rb;130;in `new' C;/Users/Da Beast 2022/AppData/Roaming/SketchUp/SketchUp 2022/SketchUp/Plugins/Arc-offset_true.rb;48;in `block (2 levels) in <module;Arc_Offset_True>' Error; #<TypeError; wrong argument type (expected Sketchup;;Entity or Array of Sketchup;;Entity)> C;/Users/Da Beast 2022/AppData/Roaming/SketchUp/SketchUp 2022/SketchUp/Plugins/Arc-offset_true.rb;130;in `add' C;/Users/Da Beast 2022/AppData/Roaming/SketchUp/SketchUp 2022/SketchUp/Plugins/Arc-offset_true.rb;130;in `new' C;/Users/Da Beast 2022/AppData/Roaming/SketchUp/SketchUp 2022/SketchUp/Plugins/Arc-offset_true.rb;48;in `block (2 levels) in <module;Arc_Offset_True>'
-
https://sketchucation.com/pluginstore?pln=Arc_offset_true
This is v1.6 which avoids that error message.
The tool worked fine before, but the closing code which tried to add the new arc to the selection set was failing at the very end with that error message.
That was because the newer API versions handle exploded groups' entities differently - previously you could get a collection of the groups entities and then explode the group, then process those entities [e.g. the edges to add to the selection set]; but the API changes make such a collection 'invalid' because its references to the entities are reported as deleted; so now you must collect the results of the explosion, and filter out unwanted stuff to keep just the 'new' edges and then process them...
It's much more convoluted but has the same outcome...
Most scripts have been appropriately adjusted over the recent years to accommodate this API change - but this one escaped - because it's ten years old and it did the offset OK, just falling over at the final hurdle of changing the selection set, and therefore printing an error into the Ruby Console, if you had it open ! -
Mucho gracias
Advertisement