Cool!
I may expand what you've done, when I get a chance. One thing that I want is the ability to automatically set the radius point of smaller-radius curves, and give the radius points a description like "4.5 RP" for 4.5-foot radius, or "3 RP" for 3-foot, etc. If the radius is bigger than a user-specified value, then no radius point should be set.
If you're interested, you can try and do it yourself. I'm attaching my VLutil.LSP library. It has the routines I posted earlier, plus more. They can be pretty useful. For example, there's a MarkPoint routine which draws a temporary X on the screen at the specified point (the X goes away when the user PANs or ZOOMs the screen). This is useful in lots of routines, for indicating a spot to the user without adding any elements to the drawing.
The key routine for setting a Radius Point of a polyline is the VLUtil:rpOfSegment routine, near the end. It uses the Second Derivative and the Bulge to set the radius point.
Once I looked at it, I remembered that I steered you a bit wrong. You can't determine which side of the polyline by using Second Derivative, but the magnitude of the Second Derivative is the same as the radius point of the curve. (This gets a bit funky with splines, and may not work as expected, since Splines do not have a consistent radius point). Instead, use the Buldge to determine which side the radius point is on. Then (ABS Second Deriv) is the same as the length of the radius. In other words, I use 2nd deriv to get the radius, 1st deriv to get the tangent bearing, and Buldge to figure out which side of the polyline I want to be on. That lets me calculate the Radius Point.
(I also have a similar library of utility commands for Land Desktop. It's available in that SincPac thing I posted in another thread.)