IN PRAISE OF XOR INK

As soon as one begins to play with AutoCAD's new 3D modeling functions, 
one wonders how one is going to convert finished or partly finished 
drawings into full 3D models.  Yes, the new tutorial gives many tips 
and techniques for adding to the existing geometry of a machine part, 
for example, to generate a surface model alongside it, and it is a 
very impressive demonstration.  But in my wonderings, the problems 
of using those techniques in another realm of engineering persisted 
in my thoughts.

In site-planning, in my case roadway intersection sites but anywhere 
survey point data is used, it seems that entering the data for the 
third dimension must be a cumbersome task.  Every time a point is 
entered, either the x,y,z coordinate must be typed in, or first 
the current elevation z.zzz is entered with the ELEV command 
and then the x,y point is digitized.  Either way, it seems like 
that would be slow and grueling!  Methinks there must be a better 
way!  And in my tinkering with that project, I have discovered the 
wondrous XOR ink.

I thought, wouldn't it be nice if one could first 
digitize all the survey points for the x,y dimensions, a simple 
"tracing" operation, and then select a bunch of them by windowing,  assigning 
them z values one at a time.  One could keep the right hand 
on the ten-key, punching in z-values only, referring to the 
survey map.  Yes!  Well, then, how to tell the user exactly which 
point he is about to assign the z-value for?  Sure, the point 
will be "highlighted", but only if the system variable is 
set.  And if PDMODEand PDSIZE are set for  un-visible values, even 
that won't be much help.  I decided to try the functions

	(grdraw)

and

	(grtext)

(continued on page six...)

(continued from page five...)

Now, the first thing you must do when using these functions is bravely 
ignore the dire warnings printed in the AutoLisp Programmer's Reference, 
telling you "these functions are for experienced applications 
developers only."  Forget it.  As soon as you need a function 
like this you are an "experienced applications developer".  Anyway, 
what I needed was a big X to hop from one point to the next, leading 
the eye to the next point, just like when editing vertices with PEDIT.  Also, 
how to get the first X to disappear after its value has been typed 
and the next point's X was shown?  This is where XOR ink comes in.  If, 
when assigning the "color" argument to the (grdraw) function, 
you use -1 then the line will be drawn in XOR ink.  This has the property 
that when it is overdrawn by any other line, including more XOR ink, 
it will disappear!

Therefore, one has only to include another (grdraw) function call 
at the end of the point-assigning loop which is exactly the same as 
the first (grdraw) call.  The second line will exactly over-draw the 
first, and both will disappear.

The other function illustrated here is (grtext), which allows the 
text areas of the graphics screen to be written to.  I have written 
the words: "Node: (Xcoord, Ycoord)" to the coordinate status 
line as a reminder of the point currently being assigned.  Play around 
with this routine using Rel. 9 first; it won't always show the X's 
in Rel. 10.  My next step will be to get the XOR ink X's to show up 
on screen no matter what the UCS view angle is current... It must 
be the new, incredibly complicated (trans) function...

