Offset non coplanar curve
-
@cotty said:
@cotty said:
Not the direct way, but a kind of workaround:
- select edges
- extrude lines in blue direction (TIG extrude tools or Didiers Projections)
- Scale with shift pressed
- move up the scaled edges
Example:
[attachment=0:1yudu5tp]<!-- ia0 -->offset_noncoplanar.jpg<!-- ia0 -->[/attachment:1yudu5tp]
yes this is the offset im talking about. your workarounds are all fine but i want to know whether is possible to project out a face with equal distance ( as in normal coplanar offset)
I tried doing the scale from center by pressing ctrl but this will not give me uniform offset distance
if my object is not circular as your example.. -
You want to hit Ctrl and shift to scale uniformly about the center.
-
@sdmitch said:
This code will create a horizontal offset curve.
Thanks Sdmitch this might just be what im looking for but i need faces generated upon offset.
and to be honest, i dont know how to work with codes
-
Another version. Offset by Curviloft.
Copy, paste in place, scale, curviloft.
-
@cuttingedge said:
hi guys I want to offset a non coplanar loop but I don't know which tool to use.
If there was a face, I could use Tools on surface. But there is none.
Thomthom's vertex tools could project faces along a direction but is it possible to say project outwards, from the center or say a distance from the edge. please see below.
This code will create a horizontal offset curve and faces.
mod = Sketchup.active_model ent = mod.active_entities sel = mod.selection unless sel.empty? crv = sel.first.curve if crv @osd ||= '1'.to_l inp=UI.inputbox(["Offset;"],[@osd],"Horizontal curve offset") if inp @osd = inp[0] edg=crv.edges;op=[];cp=[] pv=edg[-1].line[1] pvx=pv.axes[0] for e in edg p,v=e.line; vx,vy,vz=v.axes ang=pvx.angle_between(vx); vx.reverse! if ang > 90.degrees bv = v + pv.reverse; bv.z=0 ang=v.angle_between(pv.reverse)/2 bv.length = -@osd/Math.sin(ang) op<<p.offset(bv);cp<<p edge=ent.add_line(p,op.last) pvx=vx; pv=v end op<<op.first ent.add_curve(op) for i in 0...cp.length e=ent.add_line(cp[i-1],op[i]) e.find_faces end end else UI.messagebox "Select Curve" end else UI.messagebox "Select Curve" end
-
@box said:
Another version. Offset by Curviloft.
Copy, paste in place, scale, curviloft.Oh yeah why not, that's the way to go. Hehe, maybe I was just thinking this functionality
is available vertex tools... maybe in the next versionThanks Box for taking time to demo your tips box. How do you do this quick movies?
-
I should put it in my signature I get asked so often.
It's a little screen grab program called gifcam. -
.
what if the shape is something like this?
(just meaning to point out that scaling and offsetting aren't the same thing.. it only looks like the same thing on circles)
[add- and squares and equilateral triangles]
-
@jeff hammond said:
.
(just meaning to point out that scaling and offsetting aren't the same thing.. it only looks like the same thing on circles)
[add- and squares and equilateral triangles]
Good point Jeff, I know, everyone's suggestions are workaround as theres no available plugin I believe that does this directly. My issue with scaling is not having equal distance of projections. Another approach I thought is below using joint push pull.
-
ancient 'extrudelinetool'+JPP is the way do do it effectively.
@box: thanks for Gifcam.
Advertisement