Chapter 4 -- Variables
The variables listed in this chapter access DataCAD's internal variables. These variables can only be passed as mode IN parameters; they cannot be used as mode OUT or mode IN OUT parameters. They can be read from and written to like regular variables. All these variables can be accessed from DataCAD.
When your macro performs a function similar to a DataCAD function (adding special door types, for instance), use the DataCAD variable for that function (door height, thickness, etc.).
I/O Variables
Plotter Variables
The variables in this section contain various user settings. These variables do not effect plotting as done through DCAL, but instead effect plotting done through DataCAD. They are available in DCAL so that a macro can be consistent with the DataCAD Plotting menu.
pltcentx
pltcentx : real;
The x value of the center of the current plot, as defined in world coordinates.
pltcenty
pltcenty : real;
The y value of the center of the current plot, as defined in world coordinates.
pltcolor
pltcolor : boolean;
The current user setting for producing a color plot.
pltpcustx
pltpcustx : real;
The custom x paper size in inches. Notice that the units are inches, not 1/32s of an inch which is the base unit in world coordinates.
pltpcusty
pltpcusty : real;
The custom y paper size in inches. The following code determines the world coordinate sizes of the currently selected paper size:
IF pltpsize = 1 THEN
x := 10.5;
y := 8.0;
ELSIF pltpsize = 2 THEN
x := 16.0;
y := 10.0;
ELSIF pltpsize = 3 THEN
x := 21.0;
y := 16.0;
ELSIF pltpsize = 4 THEN
x := 33.0;
y := 21.0;
ELSIF pltpsize = 5 THEN
x := 43.0;
y := 33.0;
ELSE
x := pltpcustx;
y := pltpcusty;
END;
{ convert from inches to world coordinates }
x := x * 32.0;
y := y * 32.0;
pltpensort
pltpensort : boolean;
The current user setting for pen sorting.
pltpenspeed
pltpenspeed : integer;
The setting of the plotter pen speed. Not all plotters support pen speeds set within the program.
pltpenwidth
pltpenwidth : integer;
The setting of the plotter pen width.
pltpsize
pltpsize : integer;
The paper size used by the plotter. The following values are valid:
1 8 x 10.5
2 10 x 16
3 16 x 21
4 12 x 32
5 33 x 43
6 Custom (see pltpcustx and pltpcusty)
pltrot
pltrot : boolean;
true when DataCAD rotates the plots.
pltrotang
pltrotang : real;
When pltrot is true, pltrotang is the angle of rotation for the plot.
pltrotcentx
pltrotcentx : real;
The x value of the center of rotation when DataCAD is doing a rotated plot.
pltrotcenty
pltrotcenty : real;
The y value of the center of rotation when DataCAD is doing a rotated plot.
pltscalenum
pltscalenum : integer;
The current plotter scale index setting. See the procedure scale_get for more information on scale indices.
Data Variables
Doors, Walls , and Windows
These variables access information about doors, walls, and windows. Most of these variables are accessible from the Architect menu.
centwall
centwall : boolean;
true if you are currently specifying walls by their center lines. When centwall is false, walls are drawn by one side and DataCAD asks you to point to the other side.
cut_lyr
cut_lyr : layer;
The layer that DataCAD searches for wall lines when cut_srch is true.
cut_srch
cut_srch : boolean;
Controls whether the DataCAD cutout function searches for lines on the current layer (cut_srch = false) or on the layer determined by cut_lyr (cut_srch = true).
docut
docut : boolean;
true when the procedure that places a door or window in a wall cuts the wall opening, otherwise the wall is not cut. This is the same variable as is toggled on the Architect menu.
dojamb
dojamb : boolean;
true when jambs are drawn when an opening is cut. This is the same variable as is toggled on the Architect menu.
doorang
doorang : real;
The angle that determines the opening of a door. This is the same variable that is accessed from the Doors menu under Architect.
doorhgt
doorhgt : real;
The height of a door.
doorthk
doorthk : real;
The door thickness.
doortype
doortype : integer;
The type of door being drawn at the DataCAD Door menu. Its values are:
0 Single
1 Double
2 Bi-fold
3 Sliding
glassthk
glassthk : real;
The thickness of the pane of glass that is drawn in the window routines. A thickness of zero means only one line is drawn, rather than two.
headhgt
headhgt : real;
The header height for windows.
jambwth
jambwth : real;
The jamb width for doors and windows.
sidedoor
sidedoor : boolean;
true when doors and windows are drawn by their sides (jambs). false when they are drawn by their center and one side. This variable is used for both doors and windows.
sillhgt
sillhgt : real;
The window sill height.
sillin
sillin : real;
The window sill width on the inside of the wall.
sillout
sillout : real;
The window sill width on the outside of the wall.
wallend
wallend : integer;
The wall end condition; valid values are:
wall_none Nothing is done at the ends.
wall_clip T-intersect with nearest wall.
wall_cap Wall is capped.
wallhilite
wallhilite : boolean;
Controls wall highlighting when getesc is called.
wallhiliteout
wallhiliteout : boolean;
Controls whether wall highlighting highlights the inside or outside wall. true means the outside wall is highlighted when wallhilite is also true.
wallhilitecolor
wallhilitecolor : integer;
wallhilitecolor is the color used for highlighting wall lines.
wallhilitewidth
wallhilitewidth : integer;
The line width (weight) used for highlighting wall lines.
wallson
wallson : integer;
Determines when walls are drawn. The valid values for wallson are:
wall_on Draw walls.
wall_off Don't draw walls.
wall_on and wall_off are described in the "Constants" chapter.
wallwidth
wallwidth : real;
The current wall width being drawn.
Entity Property Variables
The variables in this section are associated with entities that are added to the drawing database.
lineattr
lineattr : integer;
Contains the attribute that is assigned to added entities. This value is put into the attr field of a variable of type entity. This is used for such purposes as distinguishing hatching lines from wall boundary lines.
linecolor
linecolor : integer;
The color assigned to the entities that are added to the database. This variable is assigned by layer, and changing its value changes the value for the current layer only. Changing this variable does not change the color of the layer name on the screen. You must call wrtlyr to force the layer name to change.
lineosht
lineosht : real;
The current line overshoot factor. Each line is drawn this distance past its actual end point.
linespcg
linespcg : real;
The current line spacing distance. It is the distance of each line pattern repeat (dot to dot, dash to dash, etc).
linetype
linetype : integer;
The line type used for entities added to the database. It may take any of the values: ltype_solid, ltype_dotted, ltype_dashed, or ltype_dotdash. In addition, any of the user- defined line types may be specified. These line types are assigned numbers begining at 4; the first user line type is given the number 4, the next 5, etc.
linewidth
linewidth : integer;
linewidth is the line width (also called line weight) given to entities added to the database. This value is assigned to the field width of a variable of type entity.
Polygon Variables
The variables in this section are used in DataCAD's 2D Polygon menu.
plyrect
plyrect : boolean;
Controls whether the 2D Polygon menu enters regular polygons or rectangles. When it is true the menu starts off in the polygon entry state.
polycntr
polycntr : boolean;
Controls whether DataCAD adds a center point to the regular polygons it enters on the Polygons menu. The center point is added when polycntr is true.
polydiam
polydiam : boolean;
true creates polygons by the diameter of the inscribing or circumscribing circle. When false, polygons are created by the center and one point on a radius.
polyinsd
polyinsd : boolean;
true inscribes polygons inside their defining circle. When false, polygons are circumscribed about the defining circle.
polysides
polysides : integer;
The number of sides used in the regular polygons.
polyvert
polyvert : boolean;
true when the second point entered to define a
polygon is at a vertex. When it is false, the second point defines a point on a face of the polygon.
Symbol Variables
The variables in this section are used when entering symbols from the template window.
symang
symang : real;
symang is the current symbol rotation around the z axis.
symenlx
symenlx : real;
symenlx is the current symbol enlargement factor in the x direction.
symenly
symenly : real;
symenly is the current symbol enlargement factor in the y direction.
symenlz
symenlz : real;
symenlz is the current symbol enlargement
factor in the z direction.
symexplode
symexplode : boolean;
true when instances of symbols entered at DataCAD's Template menu are exploded into their constituent entities.
symzoffset
symzoffset : real;
The z offset of instances of symbols entered in DataCAD.
Processing Variables
Grid Variables
These variables control the grid on the current layer. Unless noted, every layer has its own copy of these variables; therefore, changing layers may cause the value of these variables to change. Changing these variables does not cause the grid to redraw.
grid1sz
grid1sz : integer;
The size of the secondary display grid (the grid of crosses) measured in pixels. This is a global variable, that is, there is not a unique copy of this variable for every layer.
gridang
gridang : real;
The angle of the grid and cursor on the current layer.
gridclr
gridclr : integer;
The color of the primary display grid (the grid of dots). This is a global variable, that is, there is not a unique copy of this variable for every layer.
gridclr1
gridclr1 : integer;
The color of the secondary display grid (the grid of crosses). This is a global variable, that is, there is not a unique copy of this variable for every layer.
gridorgx
gridorgx : real;
The x coordinate of the grid origin on the current layer. Changing this variable does not cause the grid to redraw. Each layer has its own grid origin.
gridorgy
gridorgy : real;
The y coordinate of the grid origin on the current layer. Changing this variable does not cause the grid to redraw. Each layer has its own grid origin.
gridshow
gridshow : boolean;
Determines when the main grid on the current layer (the grid of dots) is drawn.
gridshowx
gridshowx : real;
The x spacing of the grid of dots on the current layer.
gridshowy
gridshowy : real;
The y spacing of the grid of dots on the current layer.
gridshw1
gridshw1 : boolean;
true when the secondary grid (the grid of crosses ) is drawn.
gridshw1x
gridshw1x : real;
The x spacing for the secondary displayed grid.
gridshw1y
gridshw1y : real;
The y spacing for the secondary displayed grid.
gridsnap
gridsnap : boolean;
true when the cursor snaps to the snap grid.
gridsnapx
gridsnapx : real;
The x distance of the snap grid.
gridsnapy
gridsnapy : real;
The y distance of the snap grid.
numdivs
numdivs : integer;
The number of divisions that orthographic mode is using. When numdivs = 8, orthmode snaps every 45 degrees.
orthmode
orthmode : boolean;
true when orthographic snapping mode is on. When orthmode is false, orthographic snapping is off.
Object Snap Variables
The variables in this section control the current object snap modes.
osnap_mode
osnap_mode : integer;
For a description of the values that this variable can have, see the "Constants" chapter.
osnap_num
osnap_num : integer;
This variable is used when one of the object snap modes currently in use is osnap_npoint. The line or arc is divided into osnap_num divisions before snapping occurs.
Text Variables
The variables in this section control text entry and display.
txtaline
txtaline : integer;
txtaline determines the type of text alignment
currently used when text is entered.
The allowed values are:
0 Left justified
1 Center justified
2 Right justified
txtang
txtang : real;
The angle at which text is entered.
txtaspect
txtaspect : real;
The aspect ratio of text that is entered.
txtboxclr
txtboxclr : integer;
The color of text boxes when text is too small to draw or when txton is false. If txtboxclr is 0, then text boxes are drawn as the color of the text entity currently being drawn.
txtboxmin
txtboxmin : integer;
When text entities are less than txtboxmin pixels tall, text boxes are drawn instead of the text itself.
txton
txton : boolean;
When txton is true, text is drawn when text entities are drawn, subject to txtboxmin. When txton is false, text is drawn as boxes when text entities are drawn.
txtsize
txtsize : real;
The size (in world coordinates) of entered text.
txtslant
txtslant : real;
The slant (in radians) of entered text.
txtweight
txtweight : integer;
The line weight of entered text.
Hidden Line Removal
The variables in this section control the operation of the DataCAD hidden line removal system.
hidecolor
hidecolor : integer;
Controls the line color used when DataCAD adds hidden lines.
hideltype
hideltype : integer;
Controls the line type used when DataCAD adds hidden lines.
hidepierce
hidepierce : boolean;
Controls the state of the pierce algorithm used in the hidden line removal system. When hidepierce is true, pierce calculations are performed.
hidespcg
hidespcg : real;
Controls the hidden line removal line spacing factor.
hidewidth
hidewidth : integer;
Controls the line width used for hidden lines.
Miscellaneous Variables
The variables in this section control several DataCAD functions. Some of them control how DataCAD looks, while others control what DataCAD does.
anglestyle
anglestyle : Integer;
Controls DataCAD's current angle style:
0 Degrees, Minutes, Seconds
1 Bearings
2 Not used
3 Decimal Degrees
4 Radians
5 Gradians
aperture
aperture : boolean;
Controls the display of the "miss distance" box around the DataCAD cursor.
arrowratio
arrowratio : Real;
Controls arrow aspect ratio: Length/Width.
arrowsize
arrowsize : Real;
Controls the size of arrows drawn in the text menu. Size is relative to current text size.
arrowstyl
arrowstyl : Integer;
Controls the current style of arrow being drawn:
0 Open
1 Closed
2 Bridge
atrdraw
atrdraw : boolean;
When atrdraw is true visible attributes that belong to entities are drawn along with the entity. You can't control this variable from the standard DataCAD interface.
autopath
autopath : Boolean;
Automatic creation and setting of path for symbol files.
bigcurs
bigcurs : boolean;
Controls the drawing of the full screen cursor. When bigcurs is true, the full screen cursor is drawn. When it is false, the small cursor is drawn. This variable is toggled by the plus (+) key.
boxsym
boxsym : Integer;
Minimum size, in pixels, of symbols before boxes are drawn.
chamfera
chamfera : real;
The length of the chamfer for the first line entered in the Chamfer menu.
chamferb
chamferb : real;
The length of the chamfer for the second line entered in the Chamfer menu.
circlefact
circlefact : Real;
Factor for 2D curve drawing precision.
clockwise
clockwise : Boolean;
When true, angles increase in a clockwise direction.
constref
constref : boolean;
true when the distance read out at the bottom of the screen is the distance from the constant reference point (usually the origin). When constref is false, the distance is measured from the last point entered (see refpnt).
copyflag
copyflag : Boolean;
The AndCopy toggle in Move, Rotate, and Enlarge.
crcdiv1
crcdiv1 : integer;
The default primary circle divisions used with three-dimensional circular entities such as arcs and domes.
crcdiv2
crcdiv2 : integer;
The default secondary circle divisions used with three-dimensional circular entities such as domes and tori.
curssz
curssz : integer;
The size, in pixels, of each arm of the small cursor.
curvecenters
curvecenters : Boolean;
Controls center point display for 2D curves.
dimcontrolpts
dimcontrolpts : boolean;
Controls the display of associative dimension control points.
dimlimits
dimlimits : boolean;
When true, limits are added to dimensions.
dimminustol
DimMinusTol : Real;
Minus tolerance amount used with DimTolerance and DimLimits.
dimminustolang
DimMinusTolAng : Real;
Minus tolerance amount used with DimTolerance and DimLimits for angular dimensions.
dimmon
dimmon Boolean;
Controls the display of associative dimensions.
dimorient
dimorient : integer;
The current default dimensioning orientation.
0 Horizontal
1 Vertical
2 Aligned
3 Rotated
dimplustol
dimplustol : real;
Plus tolerance amount used with dimtolerance and dimlimits.
dimplustolang
dimplustolang : Real;
Plus tolerance amount used with DimTolerance and DimLimits for angular dimensions.
dimticcolor
dimticcolor : integer;
The color of arrows to add to all dimensions.
dimtolerance
dimtolerance : boolean;
When true, tolerances are added to dimensions.
dimtxtcolor
dimtxtcolor : integer
The color of text to add to all dimensions.
distancesync
distancesync : Boolean;
The dissync toggle in the Settings menu.
distdelay
distdelay : Integer;
Delay time for distance readout.
drawlines
drawlines : boolean;
When drawlines are true, entities are drawn with their appropriate line type. When drawlines are false, entities, even those with a user-defined line type, are drawn with solid lines. This can speed up redrawing the display. This variable is toggled in the Display menu under Userline.
drawmarks
drawmarks : boolean;
Controls the drawing of markers every time a point is entered. These marks are drawn to the screen only and are not remembered. They disappear during the next screen refresh.
dynamic
dynamic : Boolean;
The Dynamic toggle in 2D Curve Creation menus.
dynamictxt
dynamictxt : boolean;
Controls the Dynamic toggle on the Text menu.
enlcopy
enlcopy : boolean;
Controls the state of the AndCopy flag in the Enlarge menu.
filcut
filcut : boolean;
When true, the lines that are pointed to during a fillet are cut back to join the resulting arc. When filcut is false, the lines are not modified.
filrad
filrad : real;
The radius of the arc used for a fillet.
findhatch
findhatch : Boolean;
When false, hatch lines are ignored for entity searches in object snapping.
hatchon
hatchon : Boolean;
Controls hatch line displays.
hither
hither : real;
The distance from the viewer to the hither clipping plane when DataCAD is in a perspective projection.
inpstyl
inpstyl : integer;
The current style of entering points when you press (Spacebar). inpstyl can have the following values:
0 Relative polar coordinates
1 Absolute polar coordinates
2 Relative Cartesian coordinates
3 Absolute Cartesian coordinates
lastdist
lastdist : Point;
Last distance used in Copy, Move, or Stretch.
lastenlpt
lastenlpt : Point;
Last point used for center of 2D enlargement.
lastrotpt
lastrotpt : Point;
Last point used for center of 2D rotation.
layerswitch
layerswitch : Boolean;
layerswitch is the LyrSet toggle in the Views menus.
layoutextents
layoutextents ; Boolean;
When true, only the extents of the drawing display in Plot Layout.
lyrsearch
lyrsearch : boolean;
lyrsearch controls whether DataCAD searches for entities on the current layer or on every layer that is turned on. When this variable is true, the search occurs on all of the layers that are on. When it is false, the search occurs on the current layer only. This variable is toggled at the Line, Shape, Area menus.
See also the discussion of mode_init.
maxdrag
maxdrag : Integer;
maxdrag is the maximum number of entities to consider for Move/Drag and Rotate/Drag before using the extents box.
mrkdraw
mrkdraw : boolean;
When mrkdraw is true, markers are drawn every time a point is entered.
mircopy
mircopy : boolean;
mircopy controls the state of the AndCopy flag at the Mirror menu.
mirfixtext
mirfixtext : boolean;
mirfixtext controls the state of the FixText flag at the Mirror menu.
missdis
missdis : integer;
The size, in pixels, of the miss distance applied to searches of the database. It is also the size of the aperture around the cursor when aperture is true.
See also ent_near.
movcopy
movcopy : boolean;
movcopy controls the state of the AndCopy flag at the Move menu.
multipen
multipen : Integer;
multipen controls sending pen change commands to plotter.
1 Send pen change commands.
2 Do NOT send pen change commands.
nofloat
nofloat : Boolean;
When true, DataCAD's distance output uses a fixed number of digits to the right of the decimal point as specified by the variable sigdigits.
noisy
noisy : boolean;
When noisy is set to true, DataCAD can beep. When it is false, DataCAD does not make noises.
nounits
nounits : Boolean;
When nounits is true, DataCAD's distance output does not append the currently-set scale units.
ovrdraw
ovrdraw : boolean;
When ovrdraw is false, line overshoots are not drawn.
ratiobox
ratiobox : boolean;
When ratiobox is true, a rubberband box is drawn from the last entered point. The rubberband box is forced to be of a specific aspect ratio given by ratioRatio. This rubberbanding occurs during the next call to getpoint. Turn ratiobox on before calls to getpoint:
ratioratio
ratioratio : real;
ratioratio is the ratio of the rubberband box drawn when ratiobox is true.
regenorder
regenorder : Integer;
regenorder controls the order in which the database is re-drawn:
0 Active layer first.
1 Active layer last.
2 In order.
rotcopy
rotcopy : boolean;
rotcopy controls the state of the AndCopy flag at the Rotate menu.
rubbx
rubbx : boolean;
When rubbx is true, a rubberband rectangle is drawn from the last entered point. This rubberbanding occurs during the next call to getpoint. Turn rubbx on before calls to getpoint:
rubbx := true;
result := getpoint (pt, key);
IF result = res_escape THEN
...
rubbx does not have to be turned off; the call to getpoint automatically turns it off.
rubln
rubln : boolean;
rubln controls the rubberband line being drawn. Use it in the same way as rubbx.
savedelay
savedelay : Integer;
savedelay is the delay time for automatic file save.
scaletype
scaletype : Integer;
Controls DataCAD's current scale type:
0 Architectural
1 Engineering
2 Decimal
3 Meters
4 Inches Fraction
5 Inches Decimal
6 Centimeters
7 Millimeters
8 Metric
scrolldis
scrolldis : real;
scrolldis represents the fraction of the screen that moves during screen scrolling. scrolldis should be between 0.0 and 1.0, but DataCAD does not check this range.
selecttype
selecttype : integer;
selecttype controls the current Entity, Group, Area, Fence state when getmode is called.
1 Entity
0 Group
2 Area
3 Fence
showinspt
showinspt : Boolean;
Controls symbol insertion point displays.
showneg
showneg : Boolean;
When showneg is true, negative numbers show in the distance display.
showwgt
showwgt : Boolean;
Controls line weight displays.
showz
showz : Boolean;
Shows the current z-base and z-height values on the status line.
sigdigits
sigdigits ; Integer;
See nofloat. Must be in the range 0-3.
smallgrid
smallgrid : integer;
The size, in pixels, of the smallest grid that can be drawn.
snaplyrsearch
snaplyrsearch : boolean;
Controls whether DataCAD uses layer searching when snapping to entities with object snapping.
snapquick
snapquick : boolean;
Controls the quick snapping state in DataCAD. This controls the snapping to selected 3D entities to their control points.
snapsymfast
snapsymfast : boolean;
Controls whether DataCAD searches through the description of symbols when snapping. When true, DataCAD considers the insertion points of symbols when calculating snap points.
srchquick
srchquick : boolean;
Controls the quick searching state in DataCAD. This controls the searching of selected 3D entities by their control points.
srfgrid
srfgrid : boolean;
When srfgrid is true the grid associated with Bezier surface entities (entSrf) is drawn when the entities are drawn.
srfpnts
srfpnts : boolean;
When srfpnts is true, the control points associated with Bezier surface entities (entSrf) are drawn when the entities are drawn.
txtcurs
txtcurs : boolean;
When txtcurs is set to true before calling getpoint the text cursor is drawn instead of the normal cross hair cursor. This is the cursor that is used when DataCAD asks you to position some text on the drawing. The shape and orientation of the text cursor is subject to txtang, txtsize, txtslant, and txtaspect.
txtuseplt
txtuseplt : boolean;
Controls text scaling. When true, text is scaled relative to the current plot scale.
zbase
zbase : real;
The current value of Z-base as set when (z) is pressed.
zeroangle
zeroangle : Real;
The angle specifying zero for all of DataCAD's angle conventions.
zhite
zhite : real;
The current value of Z-height as set when (z) is pressed.
zuser1
zuser1 : real;
The Z-height that appears on the DataCAD menus as Z-User1.
zuser2
zuser2 : real;
The Z-height that appears on the DataCAD menus as Z-User2.
Thank you for printing this page. Please feel free to contact us for further assistance. You can call our sales department at +1 (800) 394-2231, Monday through Friday from 8:00 a.m. to 5:00 p.m. Eastern time or send an e-mail message to info@datacad.com.