YMG,
I am late to your project, but I have installed your program and tried to use it. I am very impressed with what you have been able to do. I can't believe you have done it with Lisp, and that it is a small code.
There are a few features, however, that I think could be improved. Building a TIN captures the point nodes and moves them to its own layer, "Point Natural Ground." That means that the nodes that the user has created (usually on a special layer of his own) are gone. It would be better if you simply copied them... or require that we "Import Points" by your own routine. That way the user would still have his own data that are separate from your own.
On account of some points being bogus by elevation (such as being at 0.0 or 99999.0), it would be useful to have maximum and minimum settings where your code would ignore them when building a TIN. Points like that always slip in when gathering them by actual field work.
Flipping a TIN is usually done after you look at the contours. I think there should be a way to regenerate the contours (ie. by the routine erasing the existing ones first).
Points are usually selected by Windowing them, and many are caught that aren't valid. The result is that bogus TIN's get built. As is, I have to snoop around and delete them before doing the Contours. Usually they aren't so easy to notice, and I end up with bad contours. Perhaps there could be a setting to not create a TIN that has a side that exceeds a certain distance.
Another way, which I expect is more difficult, is to have Boundary lines as a perimeter (which are similar to Break lines for the TIN) but function as an irregular window where TIN's cannot be built outside of it. I expect that this is too much to ask for.
Something more I want to suggest... All of your private functions should be named uniquely. Such as instead of "rtd", make it "ymg-rtd", because others may have their own "rtd" and it could function differently from yours. The same, if you have any globals, they should have prefixed names as well for the same reason.
I have to say again... This is a hot code! I think I am going to be using it for my survey work (and I hope you don't mind). Your code is far more than a simple academic exorcise. It is worthy of being applied to work. As for myself, generating a TIN system has always been beyond my programming capabilities. Integrating the TIN's with breaklines is what has always snagged me. That you have done so with such elegance is simply fantastic.
Rick