I know this is an older thread, but I realized I never posted my PolarSnap Routine. My routine will snap to the polar snap settings or you can specify a specific angle to match or if you want to allow mirrored angles of that angle, please see comments in LISP file. You can also adjust the sensitivity of the snapping.
There is a fair amount of code by others in here as well, I tried to give credit where credit is due, but if you see some of your work uncredited, please let me know so I can fix it.
You would call it something like this:
(while (not *StopLoop*)
(setq Input (grread T 4 4)
Code (car Input)
Data (cadr Input)
)
(redraw)
(cond
((= Code 5)
(setq Pt1 (trans InsPt 1 0)
Pt2 (trans Data 1 0)
FxPt (PolarSnap Pt1 Pt2 nil nil)
;Alternative: FxPt (PolarSnap Pt1 Pt2 Match_Angle Last_Angle)
)
(grdraw Pt1 FxPt 3 1)
)
)
)
Of course you would adjust the code above as needed.
Hopefully some find this useful, it has been part of other code I have posted, but I came back across this thread and figured this should be hear for people who want to use it.