Hi Carl!!

Well....here's my baby.

I had a riot working on this one!! It's too bad you didn't join in!

I didn't have the time available to put into this, that I would have liked.
I was rushed, (and I HATE being rushed!!) and I was debugging literally up
until the last minute. There was another feature I would've liked to add, but
I just didn't have the time.

I hope you don't find any bugs in this baby. I tried to test it as well as I
could, given the big rush, but it wasn't exactly exhaustive.

I've included my test drawing. As you'll see, my routine is able to trim
*every* type of entity, except minserts, unequally scaled blocks, and text
or shapes.

I've come up with an excellent algorithm for trimming solids, traces and
3d-faces. My first attempt at this problem used tests to determine which
'case' a solid belonged to, and then branched to modify each case with
seperate code. I had 8 or 9 different cases which I had to cope with, and I
suspected there were a couple I hadn't handled yet. Then it hit me...and I
came up with the algorithm I now use. It will handle any solid, in one pass,
with no branching for different cases, and trim it as efficiently as possible
(a solid may need to be broken into several pieces), and, to top it off, this
algorithm is less than half the size of my first one. The code is much
prettier, I'm really happy with it!! It's often true that you need to really
dig into a messy problem before you see the underlying simplicity. Well, it
turned out that way this time!

My routine is also able to trim wide plines to the circle. It does this by
converting them into solids, and then processing the solids later. OK, I know.
I cheated, right?? <grin> This is the best (only) solution I could come up
with. And it ain't as easy as pie to turn wide plines into solids, anyway.

My routine runs quickly (except when loading....) and follows all the Lisp War
rules. I'm still shocked that the rules specified dealing with solids and wide
plines. (I think it's a little too hard for Joe Average <no relation to our
Joe>) I'll be very interested if anyone else comes up with a method for
trimming them!!

You have fun testing all the entries out now, you here??

Len.
