(REQ) Precise arc offset
-
Not sure but maybe this can Help
True Tangent by Tig -
@greatoe said:
I often offset round corner rectangles.
i don't do that too much but i do offset curves a lot.. well, i don't actually offset them because of the error you're showing in your post.. i have to redraw the offset arcs manually in order to ensure precision..
i'd like a precise offset as wellsketchup does similar things with other tools as well.. here's a similar error with the follow-me tool...
it's bisecting the end angles and only drawing half of it.. as if there's another arc segment that should be attached to the end instead of finishing out the arc..
-
to make matters worse, this happens as well.. (note length of profile's bottom edge)
same for follow-me and offset..
[fwiw, i draw all my corners with tig's extrude_edge_by_lathe which works well as long as the angle is recognizable by SU (ie.. no ~ ) ..if i have multiple bends then i have to draw them individually but it still beats having the sketchup induced errors.. in the case of me needing to extrude to an approximate ( ~ ) angle then i'll draw the whole thing manually ]
-
-
The fact is, the result of offseting an arc is not an arc anymore.
-
Hey susy, thanks
I experimented on a few things with Curviloft when fredo first released it and this was one of them. I'm not at a computer right now but I'm pretty sure that only works (accurately) on 90 degree angles. I'll check it again later to make sure.
I'm not sure if it's possible or even practical but it might be neat if Curviloft had a loft by radius method.
-
@greatoe said:
The fact is, the result of offseting an arc is not an arc anymore.
[attachment=0:124yyst8]<!-- ia0 -->arc offset.jpg<!-- ia0 -->[/attachment:124yyst8]
I think I'm confused with what you're saying. Are you talking about SU or real world?
You can definitely offset an arc in real world. SU messes it up (but it can draw offset circles properly unless you try to enter an offset value in the VCB in which case it goes back to screwing things up)[edit] Oh, wait. Just noticed you are the thread starter. Really though, I wish google would fix this instead of a ruby workaround. Surely they must be aware of it right?
-
Experiment. I took two sets of lines separated by 48" meeting at 90 degs ( lke a side walk corner), calculated what the two radii have to be to maintain the 48" separation throughout the arc, drew the two corresponding arcs, measured the distance at each seg and all checked at 48" and all met at the same center point. I then connected lines to the outside arc to form a rectangle with three 90 deg corners and the one corner arc, welded that and used the offset tool for the 48 " and get the same correct result again compared to the inside arc previously made. I also measured the separation through out the arcs and the center point again.
The only conclusion I can infer from this a possible error in using the arc tool and making sure you get the tangent inference ( magenta)at the tangent points
FYI the math
Form inside corner to tangent point is 2.41421 *d where d is the separation ( for 90 degs) and of course form the outside corner it is that value +48.When you draw the arcs you should get the magenta cord inference and the cyan for the arc. -
@mac1 said:
Experiment. I took two sets of lines separated by 48" meeting at 90 degs ( lke a side walk corner), calculated what the two radii have to be to maintain the 48" separation throughout the arc, drew the two corresponding arcs, measured the distance at each seg and all checked at 48" and all met at the same center point. I then connected lines to the outside arc to form a rectangle with three 90 deg corners and the one corner arc, welded that and used the offset tool for the 48 " and get the same correct result again compared to the inside arc previously made. I also measured the separation through out the arcs and the center point again.
The only conclusion I can infer from this a possible error in using the arc tool and making sure you get the tangent inference ( magenta)at the tangent points
FYI the math
Form inside corner to tangent point is 2.41421 *d where d is the separation ( for 90 degs) and of course form the outside corner it is that value +48.When you draw the arcs you should get the magenta cord inference and the cyan for the arc.Yes I can draw the arcs manually (I wish I understand you clearly), but it is really time and labor consuming when I have to do this say 30 times modeling a single piece of round-corner cabinet.
-
@greatoe said:
@mac1 said:
Experiment. I took two sets of lines separated by 48" meeting at 90 degs ( lke a side walk corner), calculated what the two radii have to be to maintain the 48" separation throughout the arc, drew the two corresponding arcs, measured the distance at each seg and all checked at 48" and all met at the same center point. I then connected lines to the outside arc to form a rectangle with three 90 deg corners and the one corner arc, welded that and used the offset tool for the 48 " and get the same correct result again compared to the inside arc previously made. I also measured the separation through out the arcs and the center point again.
The only conclusion I can infer from this a possible error in using the arc tool and making sure you get the tangent inference ( magenta)at the tangent points
FYI the math
Form inside corner to tangent point is 2.41421 *d where d is the separation ( for 90 degs) and of course form the outside corner it is that value +48.When you draw the arcs you should get the magenta cord inference and the cyan for the arc.Yes I can draw the arcs manually (I wish I understand you clearly), but it is really time and labor consuming when I have to do this say 30 times modeling a single piece of round-corner cabinet.
Agree with you. I was concerned my approach on verification was flawed because I was using the an arc I already drew( And it was) so stared over. If I draw a rectangle, offset and then draw the arcs making sure the correct magenta inference is used the results is correct. If one draws the arcs first the results is not correct. If you look closely at the rubber band with the offset tool it does not follow a radial line of the arc and I could not find a way to force that. Wo3dan did some test( back in the SU 5 or 6 time frame) and found if one wants to draw an accurate arc you have to use the rotate tool vs the protractor since the protractor did allow sufficient angular accuracy VCB input then .Don't know if that is germane now. Any way if you want the corners on the cabinets more accurate then going with the rect. first is a possibility ( more arc drawing unless you can reduce that by use of rotate and copy or mirroring ) If you need to ref the center then note the first arc still maintains that attribute ( the offset one is a curve)so you can use the point at center to find that ref.
-
if the conversation is getting more into how to best accomplish this manually then two rubies come to mind..
the first is fillet.rb:
http://www.ohyeahcad.com/download/index.php
(2Dfillet)the second is BezierSpline.rb:
http://forums.sketchucation.com/viewtopic.php?t=13563fillet.rb is ok except you can't set the amount of segments.. it defaults at 6 segments per corner and changing each corner is a pita.. that said, it's good in that you can select the entire perimeter then enter a radius and all corners will round at once.
personally, i like BezierSpline.rb's Polyline Arc Corners better.. you select all the edges then right click->BZ - Convert to-> Polyline Arc Corners.. enter the amount of segments if you wish in the VCB.. furthermore, since it's now a polyline, the entire perimeter is welded together as one..
[and this isn't even touching on using Polyline Arc Corners to draw lines which are already filleted.. or the other wonderful things the script provides][flash=716,431:2zjmkzxk]http://www.youtube.com/v/f_sfSqmQL0k?fs=1&hl=en_US&rel=0&color1=0x2b405b&color2=0x6b8ab6&border=1[/flash:2zjmkzxk]
-
An offset Arc is a Curve, it is not an Arc.
If you want to offset an Arc as another Arc you must construct if using the same center, normal and start/end angles etc, just changing the radius. If the segment count is the same the vertices should line up.
As it's possible for an Arc to have trimmed start/end segments so then weirdness will result as the offset Arc will have equal segments.
You can trap for this by comparing the arc's edges lengths, but then finding the comparable start/end points if they were equal lengths, getting the Arc's updated start/end angles and applying those to the new Arc and then trimming bits off the start/end segments to match, is doable, but a pain...PS: The Fillet tool in my '2D Tools' does allow the radius and segment count to be changed...
-
still, i think SU should be able to do this properly.. i can understand how it might be confusing for SU if corners were curves instead of arcs but when they are arcs, i think it should recognize this and offset the straight lines parallel while maintaining length then filling the corners with another arc.. as it is now, SU increases (or decreases if you're offsetting inward) the length of the straight lines..
[flash=660,405:23ooqgl2]http://www.youtube.com/v/uvZyqL-mSXs?fs=1&hl=en_US&rel=0&color1=0x2b405b&color2=0x6b8ab6&border=1[/flash:23ooqgl2]
@unknownuser said:
PS: The Fillet tool in my '2D Tools' does allow the radius and segment count to be changed...
can 2d tools fillet do multiple fillets at once? i can't remember exactly why i chose fillet.rb over yours (well, it might be that fillet.rb was one of my first rubies ever and i was just used to it)..
i'll re-check out 2d tools version in a bit. -
-
It does one fillet at a time. You set a radius and segmentation as you go... every pair of coplanar edges you pick 1+2, are filleted with a cpoint added at the arc's center.
-
Can I draw a conclusion that to make two parallel arcs, I can only do it manually, either draw the two arcs one by one with the build-in arc command or use the scripts with fillet tool to form the arcs one by one?
-
@greatoe said:
Can I draw a conclusion that to make two parallel arcs, I can only do it manually, either draw the two arcs one by one with the build-in arc command or use the scripts with fillet tool to form the arcs one by one?
Yes.
Advertisement