[Plugin] TIG-Smart_offset
-
Here's v1.7 http://sketchucation.com/forums/viewtopic.php?p=446462#p446462
Further glitches and convoluted offsets trapped.
I am hopeful this will address most issues reported to date...
Happy New Year !
[arriving shortly... ]
-
TIG
Not to confuse the issue. Just how should and object look after an offset. I have attached two illustrations, showing an object that has two results. The first shows the object with an offset from your plugin, and the other showing the same object after scaling.
I certainly do not have the smarts to determine which is correct. However, I would suggest that the scaling illustration that shows the object retaining the basic shape would be the more correct solution.
Again, TIG thanks for all your work.
Ken
-
The definition of an 'offset' is that all of the edges of the original face's 'outline' are replicated 'offset' perpendicularly by a fixed distance. In your illustration that is 'inwards'.
Clearly in the example made using my tool all of these new 'offset' edges are properly equidistant from the equivalent original perimeter edges.
In your 'scaling' example the new 'outline' is an exact replica of the original outline, it's only smaller is size, not 'offset'.
Therefore only some of these new edges are equidistant from their equivalents, the rest are further away by varying amounts.
Thus, the 'scaled' option gives a copy that's a shrunken version,: although it might be what you want, this is NOT what we are trying to do with an 'offset' - for that we want the 'walls' of the offset shape to be a consistent width; so for us the 'offset' option IS the correct tool to use...
Use can 'scale' to make smaller/larger exact 'copies' of a face's perimeter, BUT you need offset/Smart_offset to make proper 'offsets' of it... -
TIG
I understand that doing an offset, each edge would be offset to a set amount. However, some edges would disappear, and others would distort the shape.
Circular and rectangles shapes would be the only shapes that retained the original shape. With all others shapes the offsetting tool would have to make decision on how to modify the edges to give a close proximity to the original shape.
A real offset would have each edge offset the amount you select, and you would live with the results. Which may not be any where close to the original object's shape.
So my question was, if it OK to distort the shape, wouldn't a distortion of the offsetting parameters that still gives a close approximation to the original shape be better.
Note, I am not trying to change your plugin, I use offset quite a bit during modeling and will download and make a generous cookie offering. Certainly your plugin gives better results than the Sketchup offsetting tool.
It just occurred to me to ask myself, what am I trying to do when I offset and what are the acceptable results?
I generally use offsetting to establishment a edge internal or external to the object's edges for moving or setting another object. Very seldom do I use offsetting to get a larger or smaller version of the object.
I am done, so now everyone back to work.
Thanks TIG for your answer, you may start your break.
Ken
-
Sometimes an offset must result in some edges in the original loop remaining unused.
If they have no viable vertices they aren't made.
Simple symmetrical shapes scale and offset with similar results, simple because the scaling is about a 'center'.
The difference between Scaling general shapes and an Offset are illustrated below.
You will see that my Smart_offset omits some edges in the most weird shape because they are 'cross-threaded' and no longer the requisite distance from the original edges... Incidentally, in making this illustration I discovered a glitch where single welded curve perimeters [like the one around a circle] - these were failing to Smart_offset properly. I've fixed this and will post the update shortly... -
Here's v1.8 http://sketchucation.com/forums/viewtopic.php?p=446462#p446462
I noticed a glitch offsetting the 'outer_loop' of a face that was in the form of a single welded-curve [like a circle, ellipse etc].
This has been fixed.
Now a face with any type of single welded-curve 'outer_loop' should 'smart_offset' correctly.
I also fixed a typo in the offset-curve's 'welding-code', which then failed once the main issue was itself fixed.
-
TIG,
This IS excellent! Something needed since SU began. I'll have to give it a try.
Happy New Year!
Peter
-
@unknownuser said:
TIG
Not to confuse the issue. Just how should and object look after an offset. I have attached two illustrations, showing an object that has two results. The first shows the object with an offset from your plugin, and the other showing the same object after scaling.
I certainly do not have the smarts to determine which is correct. However, I would suggest that the scaling illustration that shows the object retaining the basic shape would be the more correct solution.
-
@unknownuser said:
So my question was, if it OK to distort the shape, wouldn't a distortion of the offsetting parameters that still gives a close approximation to the original shape be better.
the shape isn't distorting in a real offset (though i guess i can see how you're thinking it is)..
imagine you draw the outline of, say, a building.. (and you can use your example image as an example of this as well)... now say you want to make a perimeter wall that is 12" thick.. what will the inside of the wall look like?
you're thinking the inner wall is a distortion of the shape you'd originally drew but when i see your scaled version which you may think looks right, i see a wall that's 12" thick in some spots, 24" thick in others.. and a variety of thicknesses in between.. (i.e.- definitely not an offset )
-
Jeff's point about Arc Offsetting is right AND wrong.
Offset/Smart_offset treat Arcs and Welded-Curves in the same way, their Segments are truly Offset.
If an Arc meets another Edge at a Vertex, then the segment of original arc-curve is properly parallel to the offset-curve itself, it will then appear 'angled' to other edges meeting the curve radially. However, if an Arc meets another Edge at the mid-point of a segment, then the segment of original arc-curve is still properly parallel to the offset-curve itself, it will then appear 'square' to other edges meeting the curve radially.
-
TIG, your point about the arc and the way it meets the straight line is excellent. This angle frequently causes issues in Offset as well as other things like Follow Me. When I need the arc to start and end perpendicular to a line as shown on the right side of your illustration, I start with a circle and rotate it so there'll be perpendicular segments at the intersection. Then I cut the arc out of the circle. It would be nice if there was an Arc tool that could draw the arc that way from the beginning. I suppose it would only really be useful for half and quarter circles.
-
The problem is having a circle intersect a line squarely is that the distance between the two parallel segments [taken across the circle] are not the circle's diameter apart; because a circle is 'inscribed', so then its vertices are on the circumference, only an intersection through two opposite vertices return the diameter. Any intersection s through segments result in the measurable 'diameter' across the intersection is reduced by just a little more than 0 [when the intersect in very near to the circle's vertices] up to ((diameter/2) * Math.cos(360.degrees/numseg/2)), when the segments' mid-points are both intersected [diameter/2==radius].
The more segments [numseg] there are then the nearer the two 'diameters' will get, but the square one will always be somewhat less that the true one, even with hundreds of segments... -
Yes, I realize that the flats aren't at the true radius of the arc. Very often for my use I wind up scaling the circle so when I dimension the arc, I am dimensioning to the midpoint of the edge parallel to the base. It isn't perfect but it gets the right information to the client and the difference isn't really apparent. I've developed a process that seems to work well enough manually so that I don't have to screw around with it for too long to get what I need.
-
fwiw, i'm not trying to say this plugin doesn't work right etc..
what i am trying to say is (and hey, i admit i'm not a very good lobbyist and i don't know the proper channels to use to get my complaints to the right people so i just always spew about this stuff in random threads at scf )
...is..
sketchup itself is messed up.. this type of plugin (smart offset), imo, should never have to be written in the first place.. it's not a plugin that's speeding up the drawing time etc... it's a plugin that's attempting to fix the core app.. but the core should be good from the start then you guys build on top of that solid foundation..i mean, even if you did make a plugin that truly offsets properly then it's but a small small dent in the whole drawing experience.. all the other applicable plugins and native tools are still messed up (joint push pull, shape bender, follow-me, offset, round corner etc.. ).. but if sketchup itself was fixed then all of these tools/plugins would work properly/accurately..
to me, this is the single most important thing the sketchup developers should work on.. and i realize its a whole lot of work for something they couldn't even say 'hey, check out our new feature' to.. and maybe a whole bunch of people wouldn't even notice anything is different (which i'm starting to believe as true.. i feel like a lone soldier in this battle ... but i actually believe there are quite a few design/builders out there that know of this problem as well but they're just not vocal about it at scf.. they just cuss at it but the cussing goes no further than their workstation.. i mean, there has to be others that encounter this flaw..) but it does bum me out that i know the developers also realize this issue and they just keep quiet about it.. there's no way jbacus doesn't know of this problem so it's not like i'd be bringing anything new to his attention if i had the opportunity to discuss this with him..
-
Ditto. Fix the core! Can't even fix the Icon scramble, how hard can that be?
-
@dave r said:
This angle frequently causes issues in Offset as well as other things like Follow Me.
@tig said:
The problem is having a circle intersect a line squarely is that the distance between the two parallel segments ...
regarding that angle.. (which is proper as you guys know.. but in case anyone else is listening..)
what irks me is that the developers have done some things regarding the way arcs work in a polygon modeler which are correct.. for instance..
β’ if you use the arc tangent snap, (draw a straight line, choose the arc tool, click on one end of the line, find the light blue 'tangent at vertex' snap) then the first arc segment will not be inline with the straight line.. the first angle of the arc will be placed in the proper position.. it's accurate.. etc.
β’ entity info gives correct length of arc as opposed to sum of segment length (granted, this is just a little math calculation they're doing but still...)
β’ the arc's centerpoint is given accurately and it's not perpendicular to the end segments of the arc.. again, this is proper and accurate
β’ using the arc tool's half-circle snap... you don't end up with the end segments being parallel.. they're bent inward.. in other words, sketchup is calculating the position of the arc's vertices and not the segments-- as it should... but then you try to offset an arc and it moves the segments instead of the vertices ?tf
β’ when you're positioning an arc or circle (setting the bulge part of the arc), you're moving a vertex around.. not a segment
β’ the cardinal points are on a vertex, not a segment
so, they did do some things which are right and directly deal with the issues i have but why half-arse* it ?? follow through please and tidy up the rest of it.. thank you
*my use of arse instead of ass was meant to be a way to make a more mellow/ less mad sounding statement.. not sure if it works right but that was the intent
-
Here's v1.9 http://sketchucation.com/forums/viewtopic.php?p=446462#p446462
An obscure error in the code when the tool's method called from within another script has been fixed fixed [when the face.parent.entities!=model.active_entities !].
Other users of the toolbar/menu options will find no difference in its operation with this update. -
may be it'd help in bug hunting.
Attachment: inner offset is not correct, no outer offset at all
(values: +-20)
-
looking at your skp and welding part of the segments you'll see different results.
-
@jean-franco said:
looking at your skp and welding part of the segments you'll see different results.
[attachment=0:2t1zi3eq]<!-- ia0 -->TIG-Smart_offset_example.jpg<!-- ia0 -->[/attachment:2t1zi3eq]I exploded those arches and no offset get executed
Advertisement