Here’s a little vid of the bug/unexpected behavior I mentioned above.
I’m guessing that while your client may not have stated this already, they may also be looking for constraints based (AKA parametric) drawing.
If that’s the case, then unfortunately they can’t use Rhino as a replacement for obvious reasons.
Hi @sgreenawalt
Thank you for your contribution.
What I see here is that if you type a negative value instead of defining the end location to shorten the arc, it’s working as expected.
Bug or not, there’s indeed something not clear regarding the mouse click VS number input.
Regards
Rodolfo Santos
Hi
Those AutoCAD pictures make me think that this is an arc defined by 3 points, and that the arc is edited moving around one of those points.
Obviously I may be wrong …
Anyway I tried to write down a little test script.
The script always moves the mid point and does not care about colors and layers.
It’s just a test to find out is this kind of behaviour is what the user needs.
( Also, now I have not the time to make up a better script that also be able to move end points, sorry … )
import rhinoscriptsyntax as rs
import Rhino
import scriptcontext
import System
class movemid( Rhino.Input.Custom.GetPoint ):
def __init__( self, stap, midp, endp ):
self.stap = stap
self.midp = midp
self.endp = endp
self.colr = System.Drawing.Color.Green
def OnDynamicDraw( self, eventargs ):
cp = eventargs.CurrentPoint
if cp:
arc = Rhino.Geometry.Arc( self.stap, cp, self.endp )
if arc.IsValid:
eventargs.Display.DrawArc( arc, self.colr )
eventargs.Display.DrawPoint( cp, self.colr )
def main():
gid = rs.GetObject( 'Arc ?', preselect = True )
if not gid:
return
stap = rs.CurveStartPoint( gid )
midp = rs.CurveMidPoint( gid )
endp = rs.CurveEndPoint( gid )
gep = movemid( stap, midp, endp )
gep.Get()
res = gep.Result()
if res == Rhino.Input.GetResult.Point:
midp = gep.Point()
rs.AddArc3Pt( stap, endp, midp )
rs.DeleteObject( gid )
main()
(Tested on Rhino 6)
HTH, Cheers
Extend command has the same bug.