| Chapter 2 -- Constants |
|---|
|
This chapter describes the
constants that are built into DCAL. They are pre-declared and can be
used by your programs.
NOTE: The values of these constants may change in future releases of DCAL and DataCAD; therefore, your programs should never depend on the actual value that these constants represent. I/O Constants File Operation These operation constants are used and returned by file handling procedures: fl_access_denied This error is returned when an attempt is made to access a file which cannot be accessed, such as attempting to write to a read only file. fl_invalid_access_code If this error occurs, please notify Technical Support. fl_invalid_function If this error occurs, please notify Technical Support. fl_invalid_handle An attempt was made to access a file using an improper file variable. Usually, this indicates an uninitialized file variable. fl_no_handles_left An attempt was made to open too many files at once. Some operating systems restrict the number of files that can be opened at one time. For MS-DOS, you can set this number in the config.sys file with the files= statement. fl_not_found An attempt was made to open a file that could not be found. fl_ok The file routines return this constant when they are successful. fl_path_not_found A pathname was specified which does not exist. fmode_read This constant specifies that a file is open for reading only. fmode_read_write This constant specifies a file that is open for both reading and writing. fmode_write This constant specifies a file that is open for writing only. Pathnames DataCAD defines a number of built-in pathnames, which you can access with the routines getpath and setpath. These routines take an integer constant which has one of the following values: pathchr The path where DataCAD looks when loading a character set. Changing this has no affect on any previously-loaded character sets. pathdef This is the path from which DataCAD loads default files, such as the default angles, scales, and distances. pathdrv This path indicates where driver files are loaded from. This path is not used once DataCAD is running. pathdwg The path where DataCAD looks for drawing files. pathdxf This is the index of the path where DataCAD reads and writes dxf files. pathfrm reports;This is the path where DataCAD looks for form files when executing the reports command. pathlyr pathlyr is the index of the path where DataCAD loads and stores layer files. pathmcr pathmcr is the index of the path where DataCAD looks when loading a new macro for execution. Changing this has no affect on an executing macro. pathout This determines where DataCAD sends text output files, such as output from the report command. pathsup pathsup is the index of the path where DataCAD looks for support files, such as message and label files. Do not change this pathname while DataCAD is running. pathswp pathswp is the path where DataCAD keeps virtual memory swap files. This may be changed while DataCAD is running without disturbing existing virtual address spaces. pathsym pathsym is the index of the pathname where DataCAD adds new symbol files. This is used when new symbol files are created. Once a symbol file exists in a template, the filename is stored in the template file. pathtmp This is the index of the path where temporary files are kept. It should be used for any temporary file that the macro needs. pathtpl The path where DataCAD looks for template files. This pathname may be changed while a template file is displayed on the screen. This does not affect any already-opened files. Data Constants Attributes The following constants are used to create, examine, and modify attributes. atr_addr The value of this attribute is a logical address (lgl_addr). These are the addresses of layers, entities, attributes, symbols, etc. atr_ang The value of the attribute is a real number interpreted as an angle. atr_dis The value of the attribute is a real number interpreted as a distance. atr_int An attribute that is an integer. atr_name_len The maximum length of the name of an attribute, 12 bytes. atr_pnt The value of an attribute of this type is a point. atr_rl The value of the attribute is a real number. atr_str An attribute whose value is a string of up to 80 characters. Colors These constants refer to the standard colors used by DataCAD. NOTE: Because the value of these constants may change between versions of DataCAD, use the constant names. Name Color clrblue Blue clrbrown Brown clrcyan Cyan clrdkgray Dark gray clrgrn Green clrltblue Light blue clrltcyan Light cyan clrltgray Light gray clrltgrn Light green clrltmgta Light magenta clrltred Light red clrmgta Magenta clrred Red clrwhite White clryellow Yellow Line Types The constants in this section refer to DataCAD's built-in line types. ltype_dashed ltype_dashed is the dashed line type. ltype_dotdash ltype_dotdash is the dot-dash line type. The user-defined line types are identified by integer values starting at 4. ltype_dotted ltype_dotted is the dotted line type. ltype_solid ltype_solid refers to the line type solid. These constants are used in some of the database routines to refer to the different types of entities that DataCAD supports: entar3 entar3 is used for a 3D arc (an arc not in the x-y plane). entarc entarc indicates that the entity is a two- dimensional arc. entbez entbez refers to a Bezier curve entity. entblk entblk represents a block. A block is similar to a slab, but has only four sides. entbsp entbsp indicates an entity type of a b-spline. entcnt entcnt represents a three-dimensional contour curve. entcon entcon refers to a cone. See also enttrn. entcrc entcrc indicates a circle entity. entcyl entcyl refers to a cylinder. entdim entdim refers to the associative dimension. entdom entdom indicates a dome. A dome is any section of a sphere. entell entell indicates an ellipse. entlin entlin refers to a line, the most common entity. entln3 entln3 refers to a three-dimensional line. This entity is a free vector in 3D space. entmrk entmrk is the point (marker) entity type. entpln entpln is the entity constant for a polyline. entply entply represents a polygon. A polygon is a flat, closed, three-dimensional entity. entrev entrev indicates a surface of revolution. Like polylines, this involves the copious data of polyverts. entslb entslb represents a slab. A slab is similar to a polygon, but has some specified thickness. entsrf entsrf refers to the three-dimensional mesh surface. entsym entsym refers to the insertion (an instance) of a symbol. Note that this is an instance of a symbol and does not describe its geometry. enttor enttor indicates the entity type torus, a doughnut shape. enttrn enttrn represents a truncated cone. enttxt enttxt refers to text strings. Layer Mode The constants in this section describe the mode that DataCAD uses to search for entities across layers. They are used with a mode_type variable. lyr_all Using this mode, all layers in the drawing are searched whether they are on or off. lyr_curr Using lyr_curr, only the current layer is searched. lyr_on Using lyr_on, all layers in the drawing that are turned on are searched. Processing Constants Entity Drawing These constants are used when drawing entities on the screen. They are used by some of the routines which manipulate the screen. drmode_black When an entity is drawn with mode drmode_black, it is erased from the screen. This makes an entity vanish from the screen, but not from the database. drmode_flip With drmode_flip, the entity being drawn is XORed with what is currently on the screen. Notice that two consecutive XORs result in the restoration of the original image. By using drmode_flip twice in a row, you can make an entity blink. drmode_white Using drmode_white causes an entity to be drawn on the screen in whatever its color is. This is the opposite operation from drmode_black. The constants in this section are returned by the routines that detect function key presses, such as getchar, getpoint, and dgetint. Also, see the function FnKeyConv. f1, f2, f3, f4, f5, f6, f7,f8, f9, f0 These constants are returned when any of the unshifted function keys are pressed. When function key (F10) is pressed, f0 is returned. s1, s2, s3, s4, s5, s6, s7,s8, s9, s0 These constants are returned when the shifted function keys are pressed. When (S10) is pressed, s0 is the constant returned.
Hatching The constants in this section are used for hatching. See the "Processing Routines" chapter for more information. htype_ignore Indicates to procedure hatch_mode that all entities interior to the hatching boundary are ignored. In this case, each scan line creates one section of segments, at most. htype_normal Indicates that hatching should start and stop the hatching scan line as it crosses the edge of each entity in its path. htype_outer Indicates that no matter how many sections the scan line may be broken into, only the first and last section lying within the outer boundary will be drawn. maxdash Represents the maximum number of portions of dashes in a given scan line pattern. maxdash applies to portions of a broken scan line where the line is drawn and where the line is not drawn (the spaces). maxDash is equal to 6. Object Snapping Snap constants are used by the built-in variable osnap_mode, which controls the object snap mode. These constants can be added together. For example, to set center, end point, and quick mode, use: osnap_mode := osnap_center + osnap_endpoint + osnap_quick; osnap_center This constant sets object snap to recognize the center of arcs and circles. osnap_endpoint osnap_endpoint sets object snap to snap to the end points of the nearest line, point, Bezier curve, b-spline, arc, or associative dimension. osnap_intsect Object snapping recognizes the intersections of lines, circles, and arcs. Although powerful, this may significantly slow down snapping operations. osnap_midpoint When osnap_midpoint is on, snapping recognizes the mid point of the nearest line, arc, or associative dimension. osnap_nearest When osnap_nearest is set, snapping recognizes the nearest point on the nearest line, point, Bezier curve, b-spline, circle, or arc. Bezier curves and b-splines use their control points. osnap_npoint osnap_npoint divides the nearest line or arc into osnap_num divisions, and snaps to one of these points. osnap_perp When object snap uses osnap_perp, points which are perpendicular to the nearest line, arc, or circle, and which pass through the last point entered are recognized. osnap_quad Object snapping snaps to the quadrant points of arcs and circles. Quadrant points are the points at 0, 90, 180, and 270 degrees. When an arc does not pass through one or more of these points, the points are not used. osnap_quick When osnap_quick is used and osnap_intsect is not, the search for the nearest entity is abandoned after an entity within the current miss distance is found. osnap_tan When object snap uses osnap_tan, if the point entered is within the miss distance of an arc or circle, a possible snapping point is considered at the point of tangency of a line passing through the last point entered and tangent to the arc or circle. Polylines The following constants are used in the polyline routines: pv_bulge pv_bulge represents a polyvert which is an arc segment between a polyvert and the next polyvert in the chain. pv_vert pv_vert represents a polyvert which is a straight line between a polyvert and the next polyvert in a chain. Viewing The following constants are used with the view management and calculation routines as well as with the function getpointp: oblqelev Represents an oblique projection calculated using the elevation oblique technique. See view_calcoblq for more information. oblqplan Represents an oblique projection calculated using the plan oblique technique. See view_calcoblq for more information. vmode_all Instructs DataCAD that any viewing projection is valid for a given function. See view_checkmode, getpointp for more information. vmode_edit Represents a viewing projection that the user can edit, including orthographic and parallel views. In general, data may be entered into a drawing in either an orthographic or a parallel projection where object snapping and all selection functions work properly. See getpointp for more information. vmode_oblq Represents oblique viewing projections. vmode_orth Represents orthographic viewing projections. vmode_para Represents parallel viewing projections. vmode_pers Represents perspective viewing projections. Walls These constants are used by some of the built- in variables to determine certain wall conditions: wall_cap The variable wallend is set to the constant wall_cap when the end condition of walls is to cap them. wall_clip wallend is set to wall_clip when the end condition for walls is to clip an intersecting wall, forming a T-intersection. wall_none wallend is set to wall_none when the end condition for a wall is to do nothing. wall_off The built-in variable wallson is set to wall_off when walls are not being drawn, in which case DataCAD draws simple lines. wall_on wallson is set to wall_on if DataCAD is drawing walls. Miscellaneous Constants ABSZero This constant is equal to 1.OE-12. Useful for near zero tests. halfpi halfpi is defined as pi / 2.0. maxpnts maxpnts is the maximum number of points in a polygon, slab, or contour. 36 is the maximum number of points. pi pi is defined as 3.141592654. This value is useful in many mathematical computations, since angles are stored and manipulated in DataCAD in radians. res_escape res_escape is the counterpart to res_normal. It indicates that an entry was not completed correctly, but that a key (such as a function key) was pressed during input. See "getpoint" for more information. res_normal res_normal is returned by several of the input routines to indicate a valid entry. SQRZero This is equal to ABSZero * ABSZero. twopi twopi is defined as 2.0 * pi. x The constant x is used whenever the x coordinate of a point is needed, or the x axis is specified, such as in a rotation. y The constant y is the counterpart of x, and indicates the y coordinate or y axis. z The constant z is similar to x and y, and indicates the z coordinate or z axis. |
