Maybe I’m missing something but I’ve been searching for a while -
What’s the best way to convert a straight line segment to an arc?*
Is there a convenient way to edit the radius of an arc segment without moving the end points?
I fairly regularly come across situations where this functionality would be very useful. I suspect this functionality would be appreciated by those switching from AutoCad to Rhino for 2D drafting.
*My current workflow is to Rebuild with Point Count 3 and Degree 2, then select the middle control point and drag it out using Osnap>Perp. This works but isn’t fantastically efficient and editing the arc created is not straightforward.
Just so you know, that does not make an arc - it makes a non-rational degree 2 NURBS curve. Real 3 point arcs will be rational curves with the middle point having a weight not equal to 1.
Ok thanks I’m no expert wrt the mathematical/geometry side of things!
My interest in this is much more rudimentary. Arcs are very practical curves in the type of plans I draw. They offset to arcs when setting out paths/roads etc which keeps linework nice and easy to edit. And they are very practical curves to set out on site using a centre point and string line.
This is one of the (rare!) AutoCad functionalities that I miss in Rhino!
Why don’t you just make a new Arc>3Pt using the end points of the line and some other point you pick - or Arc>Start,End,Radius and then delete the original line ?
many thanks @Helvetosaur one of those occasions where I couldn’t see the blindingly obvious! And if adjusting it’s easiest just to draw a new arc with the same end points rather than trying to edit the existing arc.
@hughecchapman here’s some stuff that might, or might not, be helpful… there are a few in there that still need some work, like CurveSymmetry does not work in enough cases, but others might be handy.
Unblock the rhp file in Windows and then drag and drop onto Rhino.
3PtArcFromPoints
3PtArcFromPolyline
ArcFitToCurve
ArcFitToPoints
ArcFitToPolyline
CurveSymmetry
DimCurveAngle
ExtendFromMid
MatchOnCurve
RadiusFrom3Pts
SelArc
SelArcByRadius
SelArcRange
SelCircle
SelCircleByRadius
SetArcDegrees
SetArcRadians
SetCurveLength
SubCrvFromMid
Apologies I don’t think I’ve been very clear about the workflow I’m hoping to optimise here.
When setting out curved path layouts in AutoCad I might draw a polyline, then use the ‘convert line segment to arc’, ‘add vertex’ and ‘remove vertex’ functions to turn this polyline into a curved path made of a series of arcs:
This isn’t ideal as a workflow. There’s a fair bit of fiddling about involved and matching the curvature of the arcs is a case of ‘eyeballing it’ (as far as I’m aware there’s no native curve matching function in AutoCad). But it is possible to create complex curved paths this way that are made up exclusively of arcs, which is desirable for the reasons I’ve described above.
What I am wondering is if anyone knows of a better way to do this in Rhino or perhaps with a Grasshopper script?
Part of the challenge is that it’s very unusual to get the vertices of the polyline in the right place first time. Being able to move/drag these vertices whilst the arcs on either side of the vertex I’m moving adjust as arcs is very useful.