There used to be a very useful reference object snap, an exact midpoint between two picked points. It is described in the documentation for Rhino 5, but I can’t find it in the newest Rhino. Is that functionality not available in Rhino 6, or am I just looking for it in a wrong place, where it used to be?
try this out, drag and drop this into rhino, it will add an alias called OneShots. put the alias in your MMB,
you have to have this toggled as well for it to show up.
now when you middle click you will have access to all those obscure snaps ready during a command. OneShotsPopUp.rvb (1.6 KB)
'Option Explicit
'Script written by Pascal
'Script version Wednesday, June 04, 2008
'Hi Ryan- I guess the problem is going to be that the rmb context menu is not
'available inside a command, which is when one-shots are available. But it is
'easy enough to make a script that will pop up a menu of them, if you are
'willing to activate the menu some other way, like with an alias or even a
'button.
'
'The attached script will register 'OneShots' as an alias for the
'pop-up; I would change this (in Options > Aliases) to something quick and dumb
'like 'mm' or something so you can get it with alias + spacebar really quickly.
'Drag and drop over a V4 window if you want to try it out. You could even put
'the alias on the middle mouse button macro, maybe, in Options > Mouse.
'Script version Wednesday, June 04, 2008
'Near, Midpoint, Center, Intersection, perpendicular, Tangent, Quad, Knot'
Rhino.AddStartupScript Rhino.LastLoadedScriptFile
Rhino.AddAlias "OneShots", "_NoEcho _-Runscript OneShotsPopup"
Sub OneShotsPopup()
Dim aSnaps(14)
aSnaps(0) = "Near"
aSnaps(1) = "Center"
aSnaps(2) = "Perpendicular"
aSnaps(3) = "From"
aSnaps(4) = "PerpendicularFrom"
aSnaps(5) = "TangentFrom"
aSnaps(6) = "AlongLine"
aSnaps(7) = "Alongparallel"
aSnaps(8) = "Between"
aSnaps(9) = "OnCurve"
aSnaps(10) = "OnSurface"
aSnaps(11) = "OnPolysurface"
aSnaps(12) = "PercentageSnap"
aSnaps(13) = "testAddSmartPoint"
aSnaps(14) = "testAddSmartPoint"
Dim intSnap: intSnap = Rhino.PopupMenu(aSnaps)
If isnull(intSnap) Or intSnap = -1 Then Exit Sub
Dim sSnap: sSnap = aSnaps(intSnap)
Rhino.SendKeystrokes sSnap
End Sub