2628 lines
139 KiB
RPMSpec
Executable File
2628 lines
139 KiB
RPMSpec
Executable File
|
||
|
||
|=================================================|
|
||
|
||
| |
|
||
|
||
| Drawing Interchange and File Formats |
|
||
|
||
| Release 12 |
|
||
|
||
| Copyright (c) 1982-1990, 1992 Autodesk, Inc. |
|
||
|
||
| All Rights Reserved |
|
||
|
||
| |
|
||
|
||
|=================================================|
|
||
|
||
|
||
|
||
|
||
|
||
AutoCAD can be used by itself as a complete drawing editor. In some
|
||
|
||
applications, however, other programs must examine drawings created
|
||
|
||
by AutoCAD or generate drawings to be viewed, modified, or plotted
|
||
|
||
with AutoCAD.
|
||
|
||
|
||
|
||
For example, if you've made an architectural drawing with AutoCAD,
|
||
|
||
using inserted parts to represent windows, doors, and so on, you can
|
||
|
||
process the drawing file and produce a bill of materials of all
|
||
|
||
items used in the drawing, or even make energy-use calculations
|
||
|
||
based on the area and the number and type of windows used. Another
|
||
|
||
possible application is to use AutoCAD to describe structures and
|
||
|
||
then send the descriptions to a more powerful computer for finite-
|
||
|
||
element structural analysis. You can compute stresses and
|
||
|
||
displacements and send back information to display the deformed
|
||
|
||
structure as an AutoCAD drawing.
|
||
|
||
|
||
|
||
Since the AutoCAD drawing database (.dwg file) is written in a
|
||
|
||
compact format that changes significantly as new features are added
|
||
|
||
to AutoCAD, we do not document its format and do not recommend that
|
||
|
||
you attempt to write programs to read it directly. To assist in
|
||
|
||
interchanging drawings between AutoCAD and other programs, a Drawing
|
||
|
||
Interchange file format (DXF) has been defined. All implementations
|
||
|
||
of AutoCAD accept this format and are able to convert it to and from
|
||
|
||
their internal drawing file representation.
|
||
|
||
|
||
|
||
AutoCAD also supports the Initial Graphics Exchange Specification
|
||
|
||
(IGES) file format. The information comprising an AutoCAD drawing
|
||
|
||
can be written out in IGES format, and IGES files can be read and
|
||
|
||
converted to the AutoCAD internal format.
|
||
|
||
|
||
|
||
|
||
|
||
ASCII Drawing Interchange (DXF) Files
|
||
|
||
*************************************
|
||
|
||
|
||
|
||
This section describes the AutoCAD DXF (drawing interchange file)
|
||
|
||
format and the commands provided to read and write these files. DXF
|
||
|
||
files are standard ASCII text files. They can easily be translated
|
||
|
||
to the formats of other CAD systems or submitted to other programs
|
||
|
||
for specialized analysis. AutoCAD can also produce or read a binary
|
||
|
||
form of the full DXF file. This feature is described in detail later
|
||
|
||
in this chapter.
|
||
|
||
|
||
|
||
|
||
|
||
DXFOUT Command - Writing a DXF File
|
||
|
||
===================================
|
||
|
||
You can generate a drawing interchange file from an existing drawing
|
||
|
||
by means of the DXFOUT command:
|
||
|
||
|
||
|
||
Command: dxfout
|
||
|
||
|
||
|
||
When AutoCAD prompts you, respond with a filename or press 5 to
|
||
|
||
accept the default.
|
||
|
||
|
||
|
||
The default name for the output file is the same as that of the
|
||
|
||
current drawing, but with a file type of .dxf. If you specify an
|
||
|
||
explicit filename, you do not need to include a file type; .dxf is
|
||
|
||
assumed. If a file with the same name already exists, the existing
|
||
|
||
file is deleted. If you specify the file using a file dialogue box,
|
||
|
||
and a file with the same name already exists, AutoCAD tells you;
|
||
|
||
allowing you to OK or cancel the deletion. Next, DXFOUT asks what
|
||
|
||
precision you want for floating-point numbers and permits output of
|
||
|
||
a partial DXF file containing only selected objects.
|
||
|
||
|
||
|
||
Enter decimal places of accuracy (0 to 16)/Entities/Binary <6>:
|
||
|
||
|
||
|
||
The Binary option is described later in this chapter.
|
||
|
||
|
||
|
||
If you respond with "entities" (or just "e"), DXFOUT asks you to
|
||
|
||
select the objects you want written to the DXF file. Only the
|
||
|
||
objects you select are included in the output file - symbol tables
|
||
|
||
(including Block Definitions) will not be included. Once you've
|
||
|
||
selected the desired objects, AutoCAD again prompts you for the
|
||
|
||
numeric precision:
|
||
|
||
|
||
|
||
Enter decimal places of accuracy (0 to 16)/Binary <6>:
|
||
|
||
|
||
|
||
|
||
|
||
DXFIN Command - Loading a DXF File
|
||
|
||
==================================
|
||
|
||
A drawing interchange file can be converted into an AutoCAD drawing
|
||
|
||
by means of the DXFIN command:
|
||
|
||
|
||
|
||
Command: dxfin
|
||
|
||
|
||
|
||
When AutoCAD prompts you, respond with the name of the drawing
|
||
|
||
interchange file to be loaded.
|
||
|
||
|
||
|
||
|
||
|
||
Full DXFIN
|
||
|
||
----------
|
||
|
||
To load a complete DXF file, you must use DXFIN in an empty drawing,
|
||
|
||
before any entities have been drawn and before any additional Block
|
||
|
||
definitions, layers, linetypes, text styles, dimension styles, named
|
||
|
||
views, named coordinate systems, or named viewport configurations
|
||
|
||
have been created.
|
||
|
||
|
||
|
||
NOTE: If the drawing you are using as a prototype is not empty, you
|
||
|
||
might find it helpful to open a new drawing using the No
|
||
|
||
Prototype... button of the Create New Drawing dialogue box, as
|
||
|
||
described in chapter 4 of the "AutoCAD Reference Manual." You should
|
||
|
||
also be aware that some third-party applications include an acad.lsp
|
||
|
||
or .mnl file that modifies your drawing upon startup.
|
||
|
||
|
||
|
||
If any errors are detected during the input, the new drawing is
|
||
|
||
discarded. Otherwise, an automatic ZOOM All is performed to set the
|
||
|
||
drawing extents.
|
||
|
||
|
||
|
||
|
||
|
||
Partial DXFIN
|
||
|
||
-------------
|
||
|
||
If the current drawing is not empty, DXFIN loads only the ENTITIES
|
||
|
||
section of the DXF file, adding the entities found there to the
|
||
|
||
current drawing. In this case, DXFIN displays the message:
|
||
|
||
|
||
|
||
Not a new drawing -- only ENTITIES section will be input.
|
||
|
||
|
||
|
||
If errors are detected during such partial DXF input, the drawing is
|
||
|
||
returned to the state it was in before the DXFIN command. Otherwise,
|
||
|
||
the newly added entities are drawn.
|
||
|
||
|
||
|
||
|
||
|
||
Auditing DXF Files
|
||
|
||
------------------
|
||
|
||
To ensure that corrupt data is not imported into your drawing, you
|
||
|
||
can instruct AutoCAD to perform an audit after importing DXF files
|
||
|
||
into your drawing with DXFIN. When you use DXFIN, the default action
|
||
|
||
is to perform no automatic auditing. To activate automatic auditing,
|
||
|
||
use the CONFIG command:
|
||
|
||
|
||
|
||
Command: config
|
||
|
||
|
||
|
||
Your current AutoCAD configuration appears. Press 5 to continue.
|
||
|
||
From the Configuration menu select this option:
|
||
|
||
|
||
|
||
7. Configure operating parameters
|
||
|
||
|
||
|
||
From the Operating parameter menu select this option:
|
||
|
||
|
||
|
||
9. Automatic Audit after IGESIN, DXFIN, or DXBIN
|
||
|
||
|
||
|
||
Answer Y to this question:
|
||
|
||
|
||
|
||
Do you want an automatic audit after IGESIN, DXFIN, or DXBIN?
|
||
|
||
<N>: y
|
||
|
||
|
||
|
||
Return to the graphics screen by pressing 5 three times.
|
||
|
||
|
||
|
||
NOTE: This kind of audit only displays the errors AutoCAD finds; it
|
||
|
||
does not correct them. To correct problems, use the AUDIT command on
|
||
|
||
the drawing while you are in AutoCAD, or manually edit the DXF file.
|
||
|
||
|
||
|
||
|
||
|
||
DXF File Format
|
||
|
||
===============
|
||
|
||
This section describes the format of a DXF file in detail. It
|
||
|
||
contains technical information that you need only if you write your
|
||
|
||
own programs to process DXF files or work with entity information
|
||
|
||
obtained by certain AutoLISP and ADS functions.
|
||
|
||
|
||
|
||
It would probably be helpful to produce a DXF file from a small
|
||
|
||
drawing, print it out, and refer to it occasionally while reading
|
||
|
||
the information presented next.
|
||
|
||
|
||
|
||
|
||
|
||
General File Structure
|
||
|
||
----------------------
|
||
|
||
A Drawing Interchange File is simply an ASCII text file with a file
|
||
|
||
type of .dxf and specially formatted text. The overall organization
|
||
|
||
of a DXF file is as follows:
|
||
|
||
|
||
|
||
1. HEADER section - General information about the drawing is found
|
||
|
||
in this section of the DXF file. Each parameter has a variable
|
||
|
||
name and an associated value (see table 11-3 for a list of the
|
||
|
||
header variables).
|
||
|
||
|
||
|
||
2. TABLES section - This section contains definitions of named
|
||
|
||
items.
|
||
|
||
|
||
|
||
o Linetype table (LTYPE)
|
||
|
||
o Layer table (LAYER)
|
||
|
||
o Text Style table (STYLE)
|
||
|
||
o View table (VIEW)
|
||
|
||
o User Coordinate System table (UCS)
|
||
|
||
o Viewport configuration table (VPORT)
|
||
|
||
o Dimension Style table (DIMSTYLE)
|
||
|
||
o Application Identification table (APPID)
|
||
|
||
|
||
|
||
3. BLOCKS section - This section contains Block Definition entities
|
||
|
||
describing the entities that make up each Block in the drawing.
|
||
|
||
|
||
|
||
4. ENTITIES section - This section contains the drawing entities,
|
||
|
||
including any Block References.
|
||
|
||
|
||
|
||
5. END OF FILE
|
||
|
||
|
||
|
||
If you use DXFOUT's Entities option, the resulting DXF file contains
|
||
|
||
only the ENTITIES section and the END OF FILE marker, and the
|
||
|
||
ENTITIES section reflects only the objects you select for output.
|
||
|
||
|
||
|
||
NOTE: If you select an INSERT entity, the corresponding Block
|
||
|
||
definition is not included in the output file.
|
||
|
||
|
||
|
||
A DXF file is composed of many groups, each of which occupies two
|
||
|
||
lines in the DXF file. The first line of a group is a group code,
|
||
|
||
which is a positive nonzero integer output in FORTRAN I3 - that is,
|
||
|
||
right-justified and blank filled in a three-character field (the
|
||
|
||
exception to this is the four-digit extended entity data group
|
||
|
||
codes, which are output in FORTRAN I4). The second line of the group
|
||
|
||
is the group value, in a format that depends on the type of group
|
||
|
||
specified by the group code. Although DXFOUT output has a fixed
|
||
|
||
format, the DXFIN format is free.
|
||
|
||
|
||
|
||
The specific assignment of group codes depends on the item being
|
||
|
||
described in the file. However, the type of the value this group
|
||
|
||
supplies is derived from the group code in the following way:
|
||
|
||
|
||
|
||
Table 11-1. Group code ranges
|
||
|
||
+================================+
|
||
|
||
| Group code | Following value |
|
||
|
||
| range | |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 0 - 9 | String |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 10 - 59 | Floating-point |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 60 - 79 | Integer |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 140 - 147 | Floating-point |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 170 - 175 | Integer |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 210 - 239 | Floating-point |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 999 | Comment (string) |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 1010 - 1059 | Floating-point |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 1060 - 1079 | Integer |
|
||
|
||
|-------------|------------------|
|
||
|
||
| 1000 - 1009 | String |
|
||
|
||
+--------------------------------+
|
||
|
||
|
||
|
||
Thus a program can easily read the value following a group code
|
||
|
||
without knowing the particular use of this group in an item in the
|
||
|
||
file. The appearance of values in the DXF file is not affected by
|
||
|
||
the setting of the UNITS command: coordinates are always represented
|
||
|
||
as decimal (or possibly scientific notation if very large) numbers,
|
||
|
||
and angles are always represented in decimal degrees with zero
|
||
|
||
degrees to the east of origin.
|
||
|
||
|
||
|
||
Variables, table entries, and entities are described by a group that
|
||
|
||
introduces the item, giving its type and/or name, followed by
|
||
|
||
multiple groups that supply the values associated with the item. In
|
||
|
||
addition, special groups are used for file separators such as
|
||
|
||
markers for the beginning and end of sections, tables, and the file
|
||
|
||
itself.
|
||
|
||
|
||
|
||
Entities, table entries, and file separators are always introduced
|
||
|
||
with a 0 group code that is followed by a name describing the item.
|
||
|
||
|
||
|
||
NOTE: The maximum DXF file string length is 256 characters. If your
|
||
|
||
AutoCAD drawing contains strings that exceed this number, those
|
||
|
||
strings are truncated during DXFOUT. If your DXF file contains
|
||
|
||
strings that exceed this number, DXFIN will fail.
|
||
|
||
|
||
|
||
|
||
|
||
Group Codes
|
||
|
||
-----------
|
||
|
||
Group codes are used both to indicate the type of the value of the
|
||
|
||
group, as explained earlier, and to indicate the general use of the
|
||
|
||
group. The specific function of the group code depends on the actual
|
||
|
||
variable, table item, or entity description. This section indicates
|
||
|
||
the general use of groups, noting as "(fixed)" any that always have
|
||
|
||
the same function.
|
||
|
||
|
||
|
||
Table 11-2. AutoCAD entity group codes (by number)
|
||
|
||
+===============================================================+
|
||
|
||
| Group code | Value type |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 0 | Identifies the start of an entity, table entry, |
|
||
|
||
| | or file separator. The type of entity is given |
|
||
|
||
| | by the text value that follows this group |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1 | The primary text value for an entity |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 2 | A name: Attribute tag, Block name, and so on. |
|
||
|
||
| | Also used to identify a DXF section or table name|
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 3-4 | Other textual or name values |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 5 | Entity handle expressed as a hexadecimal string |
|
||
|
||
| | (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 6 | Line type name (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 7 | Text style name (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 8 | Layer name (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 9 | Variable name identifier (used only in HEADER |
|
||
|
||
| | section of the DXF file) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 10 | Primary X coordinate (start point of a Line or |
|
||
|
||
| | Text entity, center of a Circle, etc.) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 11-18 | Other X coordinates |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 20 | Primary Y coordinate. 2n values always |
|
||
|
||
| | correspond to 1n values and immediately follow |
|
||
|
||
| | them in the file |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 21-28 | Other Y coordinates |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 30 | Primary Z coordinate. 3n values always |
|
||
|
||
| | correspond to 1n and 2n values and immediately |
|
||
|
||
| | follow them in the file |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 31-37 | Other Z coordinates |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 38 | This entity's elevation if nonzero (fixed). |
|
||
|
||
| | Exists only in output from versions prior to R11 |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 39 | This entity's thickness if nonzero (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 40-48 | Floating-point values (text height, scale |
|
||
|
||
| | factors, etc.) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 49 | Repeated value - multiple 49 groups may appear |
|
||
|
||
| | in one entity for variable length tables (such |
|
||
|
||
| | as the dash lengths in the LTYPE table). A 7x |
|
||
|
||
| | group always appears before the first 49 group |
|
||
|
||
| | to specify the table length |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 50-58 | Angles |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 62 | Color number (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 66 | "Entities follow" flag (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 67 | Identifies whether entity is in model space or |
|
||
|
||
| | paper space |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 68 | Identifies whether viewport is on but fully off |
|
||
|
||
| | screen, is not active, or is off |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 69 | Viewport identification number |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 70-78 | Integer values such as repeat counts, flag |
|
||
|
||
| | bits, or modes |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 210, | X, Y, and Z components of extrusion direction |
|
||
|
||
| 220, | (fixed) |
|
||
|
||
| 230 | |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 999 | Comments |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1000 | An ASCII string (up to 255 bytes long) in |
|
||
|
||
| | extended entity data |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1001 | Registered application name (ASCII string up to |
|
||
|
||
| | 31 bytes long) for XDATA (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1002 | Extended entity data control string ("{" or "}") |
|
||
|
||
| | (fixed) |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1003 | Extended entity data Layer name |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1004 | Chunk of bytes (up to 127 bytes long) in |
|
||
|
||
| | extended entity data |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1005 | Extended entity data database handle |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1010, | Extended entity data X, Y, and Z coordinates |
|
||
|
||
| 1020, | |
|
||
|
||
| 1030 | |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1011, | Extended entity data X, Y, and Z coordinates of |
|
||
|
||
| 1021, | 3D world space position |
|
||
|
||
| 1031 | |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1012, | Extended entity data X, Y, and Z components of |
|
||
|
||
| 1022, | 3D world space displacement |
|
||
|
||
| 1032 | |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1013, | Extended entity data X, Y, and Z components of |
|
||
|
||
| 1023, | 3D world space direction |
|
||
|
||
| 1033 | |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1040 | Extended entity data Floating-point value |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1041 | Extended entity data distance value |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1042 | Extended entity data scale factor |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1070 | Extended entity data 16-bit signed integer |
|
||
|
||
|------------|--------------------------------------------------|
|
||
|
||
| 1071 | Extended entity data 32-bit signed long |
|
||
|
||
+---------------------------------------------------------------+
|
||
|
||
|
||
|
||
|
||
|
||
Comments
|
||
|
||
========
|
||
|
||
The 999 group code indicates that the following line is a comment
|
||
|
||
string. DXFOUT does not currently include such groups in a DXF
|
||
|
||
output file, but DXFIN honors them and ignores the comments. Thus,
|
||
|
||
you can use the 999 group to include comments in a DXF file you've
|
||
|
||
edited. For example:
|
||
|
||
|
||
|
||
999
|
||
|
||
This is a comment.
|
||
|
||
999
|
||
|
||
This is another comment.
|
||
|
||
|
||
|
||
|
||
|
||
File Sections
|
||
|
||
=============
|
||
|
||
The DXF file is subdivided into four editable sections, plus the END
|
||
|
||
OF FILE marker. File separator groups are used to delimit these file
|
||
|
||
sections. The following is an example of a void DXF file with only
|
||
|
||
the section markers and table headers present:
|
||
|
||
|
||
|
||
0 (Begin HEADER section)
|
||
|
||
SECTION
|
||
|
||
2
|
||
|
||
HEADER
|
||
|
||
<<<<Header variable items go here>>>>
|
||
|
||
0
|
||
|
||
ENDSEC (End HEADER section)
|
||
|
||
0 (Begin TABLES section)
|
||
|
||
SECTION
|
||
|
||
2
|
||
|
||
TABLES
|
||
|
||
0
|
||
|
||
TABLE
|
||
|
||
2
|
||
|
||
VPORT
|
||
|
||
70
|
||
|
||
(viewport table maximum item count)
|
||
|
||
<<<<viewport table items go here>>>>
|
||
|
||
0
|
||
|
||
ENDTAB
|
||
|
||
0
|
||
|
||
TABLE
|
||
|
||
2
|
||
|
||
APPID, DIMSTYLE, LTYPE, LAYER, STYLE, UCS, VIEW, or VPORT
|
||
|
||
70
|
||
|
||
(Table maximum item count)
|
||
|
||
<<<<Table items go here>>>>
|
||
|
||
0
|
||
|
||
ENDTAB
|
||
|
||
0
|
||
|
||
ENDSEC (End TABLES section)
|
||
|
||
0 (Begin BLOCKS section)
|
||
|
||
SECTION
|
||
|
||
2
|
||
|
||
BLOCKS
|
||
|
||
<<<<Block definition entities go here>>>>
|
||
|
||
0
|
||
|
||
ENDSEC (End BLOCKS section)
|
||
|
||
0 (Begin ENTITIES section)
|
||
|
||
SECTION
|
||
|
||
2
|
||
|
||
ENTITIES
|
||
|
||
<<<<Drawing entities go here>>>>
|
||
|
||
0
|
||
|
||
ENDSEC (End ENTITIES section)
|
||
|
||
0
|
||
|
||
EOF (End of file)
|
||
|
||
|
||
|
||
|
||
|
||
HEADER Section
|
||
|
||
--------------
|
||
|
||
The HEADER section of the DXF file contains settings of variables
|
||
|
||
associated with the drawing. These variables are set with various
|
||
|
||
commands and are the type of information displayed by the STATUS
|
||
|
||
command. Each variable is specified in the header section by a 9
|
||
|
||
group giving the variable's name, followed by groups that supply the
|
||
|
||
variable's value. The following list shows the header variables and
|
||
|
||
their meanings.
|
||
|
||
|
||
|
||
Although this list is very similar to the list of system variables
|
||
|
||
in Appendix A of this manual, the two lists are not identical. Be
|
||
|
||
sure you're referring to the proper list.
|
||
|
||
|
||
|
||
NOTE: $AXISMODE and $AXISUNIT are no longer functional in Release
|
||
|
||
12.
|
||
|
||
|
||
|
||
Table 11-3. DXF system variables
|
||
|
||
+===============================================================+
|
||
|
||
| Variable | Type | Description |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ACADVER | 1 | The AutoCAD drawing database |
|
||
|
||
| | | version number; AC1006 = R10, |
|
||
|
||
| | | AC1009 = R11 and R12 |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ANGBASE | 50 | Angle 0 direction |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ANGDIR | 70 | 1 = clockwise angles, 0 = |
|
||
|
||
| | | counterclockwise |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ATTDIA | 70 | Attribute entry dialogs, 1 = on, |
|
||
|
||
| | | 0 = off |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ATTMODE | 70 | Attribute visibility: 0 = none, |
|
||
|
||
| | | 1 = normal, 2 = all |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ATTREQ | 70 | Attribute prompting during INSERT, |
|
||
|
||
| | | 1 = on, 0 = off |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $AUNITS | 70 | Units format for angles |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $AUPREC | 70 | Units precision for angles |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $AXISMODE | 70 | Axis on if nonzero (not functional |
|
||
|
||
| | | in Release 12) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $AXISUNIT | 10, 20 | Axis X and Y tick spacing |
|
||
|
||
| | | (not functional in Release 12) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $BLIPMODE | 70 | Blip mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $CECOLOR | 62 | Entity color number; 0 = BYBLOCK, |
|
||
|
||
| | | 256 = BYLAYER |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $CELTYPE | 6 | Entity linetype name, or BYBLOCK |
|
||
|
||
| | | or BYLAYER |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $CHAMFERA | 40 | First chamfer distance |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $CHAMFERB | 40 | Second chamfer distance |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $CLAYER | 8 | Current layer name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $COORDS | 70 | 0 = static coordinate display, |
|
||
|
||
| | | 1 = continuous update, 2 = "d<a" |
|
||
|
||
| | | format |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMALT | 70 | Alternate unit dimensioning |
|
||
|
||
| | | performed if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMALTD | 70 | Alternate unit decimal places |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMALTF | 40 | Alternate unit scale factor |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMAPOST | 1 | Alternate dimensioning suffix |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMASO | 70 | 1 = create associative dimensioning,|
|
||
|
||
| | | 0 = draw individual entities |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMASZ | 40 | Dimensioning arrow size |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMBLK | 2 | Arrow block name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMBLK1 | 1 | First arrow block name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMBLK2 | 1 | Second arrow block name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMCEN | 40 | Size of center mark/lines |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMCLRD | 70 | Dimension line color, range is |
|
||
|
||
| | | 0 = BYBLOCK, 256 = BYLAYER |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMCLRE | 70 | Dimension extension line color, |
|
||
|
||
| | | range is 0 = BYBLOCK, 256 = BYLAYER |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMCLRT | 70 | Dimension text color, range is |
|
||
|
||
| | | 0 = BYBLOCK, 256 = BYLAYER |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMDLE | 40 | Dimension line extension |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMDLI | 40 | Dimension line increment |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMEXE | 40 | Extension line extension |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMEXO | 40 | Extension line offset |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMGAP | 40 | Dimension line gap |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMLFAC | 40 | Linear measurements scale factor |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMLIM | 70 | Dimension limits generated if |
|
||
|
||
| | | nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMPOST | 1 | General dimensioning suffix |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMRND | 40 | Rounding value for dimension |
|
||
|
||
| | | distances |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSAH | 70 | Use separate arrow blocks if nonzero|
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSCALE | 40 | Overall dimensioning scale factor |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSE1 | 70 | First extension line suppressed |
|
||
|
||
| | | if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSE2 | 70 | Second extension line suppressed |
|
||
|
||
| | | if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSHO | 70 | 1 = Recompute dimensions while |
|
||
|
||
| | | dragging, 0 = drag original image |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSOXD | 70 | Suppress outside-extensions |
|
||
|
||
| | | dimension lines if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMSTYLE | 2 | Dimension style name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTAD | 70 | Text above dimension line if nonzero|
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTFAC | 40 | Dimension tolerance display scale |
|
||
|
||
| | | factor |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTIH | 70 | Text inside horizontal if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTIX | 70 | Force text inside extensions if |
|
||
|
||
| | | nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTM | 40 | Minus tolerance |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTOFL | 70 | If text outside extensions, force |
|
||
|
||
| | | line extensions between extensions |
|
||
|
||
| | | if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTOH | 70 | Text outside horizontal if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTOL | 70 | Dimension tolerances generated if |
|
||
|
||
| | | nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTP | 40 | Plus tolerance |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTSZ | 40 | Dimensioning tick size: 0 = no ticks|
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTVP | 40 | Text vertical position |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMTXT | 40 | Dimensioning text height |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DIMZIN | 70 | Zero suppression for "feet & inch" |
|
||
|
||
| | | dimensions |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DWGCODEPAGE | 70 | Drawing code page. Set to the |
|
||
|
||
| | | system code page when a new drawing |
|
||
|
||
| | | is created, but not otherwise |
|
||
|
||
| | | maintained by AutoCAD |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $DRAGMODE | 70 | 0 = off, 1 = on, 2 = auto |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ELEVATION | 40 | Current elevation set by ELEV |
|
||
|
||
| | | command |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $EXTMAX | 10, 20,| X, Y, and Z drawing extents |
|
||
|
||
| | 30 | upper-right corner (in WCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $EXTMIN | 10, 20,| X, Y, and Z drawing extents |
|
||
|
||
| | 30 | lower-left corner (in WCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $FILLETRAD | 40 | Fillet radius |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $FILLMODE | 70 | Fill mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $HANDLING | 70 | Handles enabled if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $HANDSEED | 5 | Next available handle |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $INSBASE | 10, 20,| Insertion base set by BASE command |
|
||
|
||
| | 30 | (in WCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $LIMCHECK | 70 | Nonzero if limits checking is on |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $LIMMAX | 10, 20 | XY drawing limits upper-right |
|
||
|
||
| | | corner (in WCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $LIMMIN | 10, 20 | XY drawing limits lower-left |
|
||
|
||
| | | corner (in WCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $LTSCALE | 40 | Global linetype scale |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $LUNITS | 70 | Units format for coordinates and |
|
||
|
||
| | | distances |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $LUPREC | 70 | Units precision for coordinates |
|
||
|
||
| | | and distances |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $MAXACTVP | 70 | Sets maximum number of viewports to |
|
||
|
||
| | | be regenerated |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $MENU | 1 | Name of menu file |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $MIRRTEXT | 70 | Mirror text if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $ORTHOMODE | 70 | Ortho mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $OSMODE | 70 | Running object snap modes |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PDMODE | 70 | Point display mode |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PDSIZE | 40 | Point display size |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PELEVATION | 40 | Current paper space elevation |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PEXTMAX | 10, 20,| Maximum X, Y, and Z extents for |
|
||
|
||
| | 30 | paper space |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PEXTMIN | 10, 20,| Minimum X, Y, and Z extents for |
|
||
|
||
| | 30 | paper space |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PLIMCHECK | 70 | Limits checking in paper space |
|
||
|
||
| | | when nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PLIMMAX | 10, 20 | Maximum X and Y limits in paper |
|
||
|
||
| | | space |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PLIMMIN | 10, 20 | Minimum X and Y limits in paper |
|
||
|
||
| | | space |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PLINEGEN | 70 | Governs the generation of linetype |
|
||
|
||
| | | patterns around the vertices |
|
||
|
||
| | | of a 2D Polyline |
|
||
|
||
| | | 1 = linetype is generated in |
|
||
|
||
| | | a continuous pattern around |
|
||
|
||
| | | vertices of the Polyline |
|
||
|
||
| | | 0 = each segment of the Polyline |
|
||
|
||
| | | starts and ends with a dash |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PLINEWID | 40 | Default Polyline width |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PSLTSCALE | 70 | Controls paper space linetype |
|
||
|
||
| | | scaling |
|
||
|
||
| | | 1 = no special linetype scaling |
|
||
|
||
| | | 0 = viewport scaling governs |
|
||
|
||
| | | linetype scaling |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PUCSNAME | 2 | Current paper space UCS name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PUCSORG | 10, 20,| Current paper space UCS origin |
|
||
|
||
| | 30 | |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PUCSXDIR | 10, 20,| Current paper space UCS X axis |
|
||
|
||
| | 30 | |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $PUCSYDIR | 10, 20,| Current paper space UCS Y axis |
|
||
|
||
| | 30 | |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $QTEXTMODE | 70 | Quick text mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $REGENMODE | 70 | REGENAUTO mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SHADEDGE | 70 | 0 = faces shaded, edges not |
|
||
|
||
| | | highlighted |
|
||
|
||
| | | 1 = faces shaded, edges highlighted |
|
||
|
||
| | | in black |
|
||
|
||
| | | 2 = faces not filled, edges in |
|
||
|
||
| | | entity color |
|
||
|
||
| | | 3 = faces in entity color, |
|
||
|
||
| | | edges in black |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SHADEDIF | 70 | Percent ambient/diffuse light, |
|
||
|
||
| | | range 1-100, default 70 |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SKETCHINC | 40 | Sketch record increment |
|
||
|
||
| $SKPOLY | 70 | 0 = sketch lines, 1 = sketch |
|
||
|
||
| | | polylines |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SPLFRAME | 70 | Spline control polygon display, |
|
||
|
||
| | | 1 = on, 0 = off |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SPLINESEGS | 70 | Number of line segments per spline |
|
||
|
||
| | | patch |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SPLINETYPE | 70 | Spline curve type for PEDIT Spline |
|
||
|
||
| | | (See your AutoCAD Reference Manual) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SURFTAB1 | 70 | Number of mesh tabulations in first |
|
||
|
||
| | | direction |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SURFTAB2 | 70 | Number of mesh tabulations in |
|
||
|
||
| | | second direction |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SURFTYPE | 70 | Surface type for PEDIT Smooth |
|
||
|
||
| | | (See your AutoCAD Reference Manual) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SURFU | 70 | Surface density (for PEDIT Smooth) |
|
||
|
||
| | | in M direction |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SURFV | 70 | Surface density (for PEDIT Smooth) |
|
||
|
||
| | | in N direction |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TDCREATE | 40 | Date/time of drawing creation |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TDINDWG | 40 | Cumulative editing time for |
|
||
|
||
| | | this drawing |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TDUPDATE | 40 | Date/time of last drawing update |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TDUSRTIMER | 40 | User elapsed timer |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TEXTSIZE | 40 | Default text height |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TEXTSTYLE | 7 | Current text style name |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $THICKNESS | 40 | Current thickness set by ELEV |
|
||
|
||
| | | command |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TILEMODE | 70 | 1 for previous release |
|
||
|
||
| | | compatibility mode, 0 otherwise |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $TRACEWID | 40 | Default Trace width |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $UCSNAME | 2 | Name of current UCS |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $UCSORG | 10, 20,| Origin of current UCS (in WCS) |
|
||
|
||
| | 30 | |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $UCSXDIR | 10, 20,| Direction of current UCS's X axis |
|
||
|
||
| | 30 | (in World coordinates) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $UCSYDIR | 10, 20,| Direction of current UCS's Y axis |
|
||
|
||
| | 30 | (in World coordinates) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $UNITMODE | 70 | Low bit set = display fractions, |
|
||
|
||
| | | feet-and-inches, and surveyor's |
|
||
|
||
| | | angles in input format |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $USERI1 - 5 | 70 | Five integer variables intended |
|
||
|
||
| | | for use by third-party developers |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $USERR1 - 5 | 40 | Five real variables intended |
|
||
|
||
| | | for use by third-party developers |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $USRTIMER | 70 | 0 = timer off, 1 = timer on |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $VISRETAIN | 70 | 0 = don't retain Xref-dependent |
|
||
|
||
| | | visibility settings, 1 = retain |
|
||
|
||
| | | Xref-dependent visibility settings |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $WORLDVIEW | 70 | 1 = set UCS to WCS during |
|
||
|
||
| | | DVIEW/VPOINT, 0 = don't change UCS |
|
||
|
||
+---------------------------------------------------------------+
|
||
|
||
|
||
|
||
The following header variables existed prior to AutoCAD Release 11
|
||
|
||
but now have independent settings for each active viewport. DXFIN
|
||
|
||
honors these variables when read from DXF files, but if a VPORT
|
||
|
||
symbol table with *ACTIVE entries is present (as is true for any DXF
|
||
|
||
file produced by Release 11 or higher), the values in the VPORT
|
||
|
||
table entries override the values of these header variables.
|
||
|
||
|
||
|
||
Table 11-4. Revised VPORT header variables
|
||
|
||
+===============================================================+
|
||
|
||
| Variable | Type | Description |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $FASTZOOM | 70 | Fast zoom enabled if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $GRIDMODE | 70 | Grid mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $GRIDUNIT | 10, 20 | Grid X and Y spacing |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SNAPANG | 50 | Snap grid rotation angle |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SNAPBASE | 10, 20 | Snap/grid base point (in UCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SNAPISOPAIR | 70 | Isometric plane: 0 = left, 1 = top, |
|
||
|
||
| | | 2 = right |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SNAPMODE | 70 | Snap mode on if nonzero |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SNAPSTYLE | 70 | Snap style: 0 = standard, |
|
||
|
||
| | | 1 = isometric |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $SNAPUNIT | 10, 20 |Snap grid X and Y spacing |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $VIEWCTR | 10, 20 |XY center of current view on screen |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $VIEWDIR | 10, 20,| Viewing direction (direction from |
|
||
|
||
| | 30 | target, in WCS) |
|
||
|
||
|----------------|--------|-------------------------------------|
|
||
|
||
| $VIEWSIZE | 40 | Height of view |
|
||
|
||
+----------------|--------|-------------------------------------+
|
||
|
||
|
||
|
||
The date/time variables ($TDCREATE and $TDUPDATE) are output as real
|
||
|
||
numbers in the following format:
|
||
|
||
|
||
|
||
<Julian date>.<Fraction>
|
||
|
||
|
||
|
||
The elapsed time variables ($TDINDWG and $TDUSRTIMER) have a similar
|
||
|
||
format:
|
||
|
||
|
||
|
||
<Number of days>.<Fraction>
|
||
|
||
|
||
|
||
The date and time variables are described on page 299.
|
||
|
||
|
||
|
||
|
||
|
||
TABLES Section
|
||
|
||
--------------
|
||
|
||
The TABLES section contains several tables, each of which contains a
|
||
|
||
variable number of table entries.
|
||
|
||
|
||
|
||
The order of the tables may change, but the LTYPE table will always
|
||
|
||
precede the LAYER table. Each table is introduced with a 0 group
|
||
|
||
with the label TABLE. This is followed by a 2 group identifying the
|
||
|
||
particular table (VPORT, LTYPE, LAYER, STYLE, VIEW, DIMSTYLE, UCS or
|
||
|
||
APPID) and a 70 group that specifies the maximum number of table
|
||
|
||
entries that may follow. Table names are always output in uppercase
|
||
|
||
characters.
|
||
|
||
|
||
|
||
The tables in a drawing can contain deleted items, but these are not
|
||
|
||
written to the DXF file. Thus, fewer table entries may follow the
|
||
|
||
table header than are indicated by the 70 group, so don't use the
|
||
|
||
count in the 70 group as an index to read in the table. This group
|
||
|
||
is provided so that a program which reads DXF files can allocate an
|
||
|
||
array large enough to hold all the table entries that follow.
|
||
|
||
|
||
|
||
Following this header for each table are the table entries. Each
|
||
|
||
table item consists of a 0 group identifying the item type (same as
|
||
|
||
table name, e.g., LTYPE or LAYER), a 2 group giving the name of the
|
||
|
||
table entry, a 70 group specifying flags relevant to the table entry
|
||
|
||
(defined for each following table), and additional groups that give
|
||
|
||
the value of the table entry. The end of each table is indicated by
|
||
|
||
a 0 group with the value ENDTAB.
|
||
|
||
|
||
|
||
The 70 group flag bit values that apply to all table entries are
|
||
|
||
described in the following chart. Additional 70 group values that
|
||
|
||
apply to LAYER, STYLE, and VIEW table entries are described in the
|
||
|
||
appropriate sections below.
|
||
|
||
|
||
|
||
Table 11-5. Group 70 bit codes that apply to all table entries
|
||
|
||
+===============================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|----------------------------------------------------|
|
||
|
||
| 16 | If set, table entry is externally dependent on |
|
||
|
||
| | an Xref |
|
||
|
||
|----------|----------------------------------------------------|
|
||
|
||
| 32 | If this bit and bit 16 are both set, the |
|
||
|
||
| | externally dependent Xref has been successfully |
|
||
|
||
| | resolved |
|
||
|
||
|----------|----------------------------------------------------|
|
||
|
||
| 64 | If set, the table entry was referenced by at least |
|
||
|
||
| | one entity in the drawing the last time the drawing|
|
||
|
||
| | was edited. (This flag is for the benefit of |
|
||
|
||
| | AutoCAD commands; it can be ignored by most |
|
||
|
||
| | programs that read DXF files, and need not be set |
|
||
|
||
| | by programs that write DXF files) |
|
||
|
||
+---------------------------------------------------------------+
|
||
|
||
|
||
|
||
The following are the groups used for each type of table item. All
|
||
|
||
groups are present for each table item.
|
||
|
||
|
||
|
||
APPID 2 (user-supplied application name), 70 (standard flag
|
||
|
||
values).
|
||
|
||
These table entries maintain a set of names for all
|
||
|
||
applications registered with a drawing.
|
||
|
||
|
||
|
||
DIMSTYLE 2 (dimension style name), 70 (standard flag values), and
|
||
|
||
the following, described by dimension variable name:
|
||
|
||
3 (dimpost), 4 (dimapost), 5 (dimblk), 6 (dimblk1),
|
||
|
||
7 (dimblk2), 40 (dimscale), 41 (dimasz), 42 (dimexo),
|
||
|
||
43 (dimdli), 44 (dimexe), 45 (dimrnd), 46 (dimdle),
|
||
|
||
47 (dimtp), 48 (dimtm), 140 (dimtxt), 141 (dimcen),
|
||
|
||
142 (dimtsz), 143 (dimaltf), 144 (dimlfac), 145 (dimtvp),
|
||
|
||
146 (dimtfac), 147 (dimgap), 71 (dimtol), 72 (dimlim),
|
||
|
||
73 (dimtih), 74 (dimtoh), 75 (dimse1), 76 (dimse2),
|
||
|
||
77 (dimtad), 78 (dimzin), 170 (dimalt), 171 (dimaltd),
|
||
|
||
172 (dimtofl), 173 (dimsah), 174 (dimtix), 175 (dimsoxd),
|
||
|
||
176 (dimclrd), 177 (dimclre), 178 (dimclrt).
|
||
|
||
|
||
|
||
LTYPE 2 (linetype name), 70 (standard flag values), 3
|
||
|
||
(descriptive text for linetype), 72 (alignment code; value
|
||
|
||
is always 65, the ASCII code for `A'), 73 (number of dash
|
||
|
||
length items), 40 (total pattern length), and optionally:
|
||
|
||
49 (dash length 1), 49 (dash length 2), and so on.
|
||
|
||
|
||
|
||
LAYER 2 (layer name), 70 (standard flag values), 62 (color
|
||
|
||
number, negative if layer is off), 6 (linetype name).
|
||
|
||
In addition to the standard flags, the 70 group flag is
|
||
|
||
bit coded as follows:
|
||
|
||
|
||
|
||
Table 11-6. Group 70 bit codes for LAYER table
|
||
|
||
+=====================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 1 | If set, layer is frozen |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 2 | If set, layer is frozen by default in |
|
||
|
||
| | new Viewports |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 4 | If set, layer is locked |
|
||
|
||
+-----------------------------------------------------+
|
||
|
||
|
||
|
||
If no value (0) is set, the layer is on and thawed. The
|
||
|
||
fourth bit (8) and the eighth bit (128) are not used.
|
||
|
||
Xref-dependent layers are output during DXFOUT. For these
|
||
|
||
layers, the associated linetype name in the DXF file is
|
||
|
||
always CONTINUOUS.
|
||
|
||
|
||
|
||
STYLE 2 (style name), 70 (standard flag values), 40 (fixed text
|
||
|
||
height; 0 if not fixed), 41 (width factor), 50 (oblique
|
||
|
||
angle), 71 (text generation flags), 42 (last height used),
|
||
|
||
3 (primary font filename), 4 (big-font file name; blank
|
||
|
||
if none).
|
||
|
||
|
||
|
||
If the third bit (4) is set in the 70 group flags, this
|
||
|
||
is a vertically oriented text style.
|
||
|
||
|
||
|
||
A STYLE table item is used to record shape file LOAD
|
||
|
||
requests also. In this case the first bit (1) is set in
|
||
|
||
the 70 group flags and only the 3 group (shape filename)
|
||
|
||
is meaningful (all the other groups are output, however).
|
||
|
||
|
||
|
||
The text generation flags are a bit-coded field with the
|
||
|
||
following bit meanings:
|
||
|
||
|
||
|
||
Table 11-7. Group 71 bit codes for STYLE table
|
||
|
||
+=====================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 2 | Text is backward (mirrored in X) |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 4 | Text is upside down (mirrored in Y) |
|
||
|
||
+-----------------------------------------------------+
|
||
|
||
|
||
|
||
UCS 2 (UCS name), 70 (standard flag values), 10, 20, 30
|
||
|
||
(origin), 11, 21, 31 (X axis direction), 12, 22, 32
|
||
|
||
(Y axis direction). All in World coordinates.
|
||
|
||
|
||
|
||
VIEW 2 (name of view), 70 (standard flag values), 40 and
|
||
|
||
41 (view height and width, in DCS), 10 and 20 (view
|
||
|
||
center point, in DCS), 11, 21, 31 (view direction from
|
||
|
||
target, in WCS), 12, 22, 32 (target point, in WCS),
|
||
|
||
42 (lens length), 43 and 44 (front and back clipping
|
||
|
||
planes - offsets from target point), 50 (twist angle),
|
||
|
||
71 view mode (see VIEWMODE system variable in appendix A).
|
||
|
||
|
||
|
||
If the first bit (1) is set in the 70 group flags, this
|
||
|
||
is a paper space view.
|
||
|
||
|
||
|
||
(See chapter 2 of the "AutoLISP Programmer's Reference"
|
||
|
||
for information on DCS, the Display Coordinate System.)
|
||
|
||
|
||
|
||
VPORT 2 (viewport name), 70 (standard flag values), 10 and 20
|
||
|
||
(lower-left corner of viewport; 0.0 to 1.0), 11 and
|
||
|
||
21 (upper-right corner), 12 and 22 (view center point,
|
||
|
||
in WCS), 13 and 23 (snap base point), 14 and 24 (snap
|
||
|
||
spacing, X and Y), 15 and 25 (grid spacing, X and Y), 16,
|
||
|
||
26, 36 (view direction from target point), 17, 27, 37
|
||
|
||
(view target point), 40 (view height), 41 (viewport aspect
|
||
|
||
ratio), 42 (lens length), 43 and 44 (front and back
|
||
|
||
clipping planes; offsets from target point),50 (snap
|
||
|
||
rotation angle), 51 (view twist angle), 68 (status field),
|
||
|
||
69 (ID), 71 (view mode; see VIEWMODE system variable in
|
||
|
||
appendix A), 72 (circle zoom percent), 73 (fast zoom
|
||
|
||
setting), 74 (UCSICON setting), 75 (snap on/off), 76 (grid
|
||
|
||
on/off), 77 (snap style), 78 (snap isopair).
|
||
|
||
|
||
|
||
The VPORT table is unique in that it may contain several
|
||
|
||
entries with the same name (indicating a multiple-viewport
|
||
|
||
configuration). The entries corresponding to the active
|
||
|
||
viewport configuration all have the name *ACTIVE. The
|
||
|
||
first such entry describes the current viewport.
|
||
|
||
|
||
|
||
|
||
|
||
BLOCKS Section
|
||
|
||
--------------
|
||
|
||
The Blocks section of the DXF file contains all the Block
|
||
|
||
Definitions. This section contains the entities that make up the
|
||
|
||
Blocks used in the drawing, including anonymous Blocks generated by
|
||
|
||
the HATCH command and by associative dimensioning. The format of the
|
||
|
||
entities in this section is identical to those in the Entities
|
||
|
||
section described later, so see that section for details. All
|
||
|
||
entities in the Blocks section appear between Block and Endblk
|
||
|
||
entities. Block and Endblk entities appear only in the Blocks
|
||
|
||
section. Block definitions are never nested (that is, no Block or
|
||
|
||
Endblk entity ever appears within another Block-Endblk pair),
|
||
|
||
although a Block definition can contain an INSERT entity.
|
||
|
||
|
||
|
||
External References are written in the DXF file as any Block
|
||
|
||
Definition, except they also include a text string (group code 1) of
|
||
|
||
the path and filename of the External Reference. This is the text
|
||
|
||
string format:
|
||
|
||
|
||
|
||
Xref filename
|
||
|
||
|
||
|
||
|
||
|
||
ENTITIES Section
|
||
|
||
----------------
|
||
|
||
Entity items appear in both the BLOCK and ENTITIES sections of the
|
||
|
||
DXF file. The appearance of entities in the two sections is
|
||
|
||
identical.
|
||
|
||
|
||
|
||
The following gives the format of each entity as it appears in the
|
||
|
||
file. Some groups that define an entity always appear, and some are
|
||
|
||
optional and appear only if they differ from their default values.
|
||
|
||
In the following discussion, groups that always occur are given by
|
||
|
||
their group number and function, while optional groups are indicated
|
||
|
||
by -optional N following the group description. N is the default
|
||
|
||
value if the group is omitted.
|
||
|
||
|
||
|
||
Programs that read DXF files should not assume that the groups
|
||
|
||
describing an entity occur in the order given here. The end of the
|
||
|
||
groups that make up an entity is indicated by the next 0 group,
|
||
|
||
beginning the next entity or indicating the end of the section.
|
||
|
||
|
||
|
||
Remember that a DXF file is a complete representation of the drawing
|
||
|
||
database, and that as AutoCAD is further enhanced, new groups will
|
||
|
||
be added to entities to accommodate additional features.
|
||
|
||
Accommodating DXF files from future releases of AutoCAD will be
|
||
|
||
easier if you write your DXF processing program in a table-driven
|
||
|
||
way, ignoring any groups not presently defined, and making no
|
||
|
||
assumptions about the order of groups in an entity.
|
||
|
||
|
||
|
||
Each entity begins with a 0 group identifying the entity type. The
|
||
|
||
names used for the entities are given on the following pages. Every
|
||
|
||
entity contains an 8 group that gives the name of the layer on which
|
||
|
||
the entity resides. Each entity may have elevation, thickness,
|
||
|
||
linetype, or color information associated with it.
|
||
|
||
|
||
|
||
If handles are enabled, every entity has a 5 group containing its
|
||
|
||
handle (as a string representing a hexadecimal number).
|
||
|
||
|
||
|
||
The following groups are included only if the entity has nondefault
|
||
|
||
values for these properties. When a group is omitted, its default
|
||
|
||
value upon input (when using DXFIN) is indicated in the third
|
||
|
||
column. If the value of a group is equal to the default, it is
|
||
|
||
omitted upon output (when using DXFOUT).
|
||
|
||
|
||
|
||
Table 11-8. Group codes common to all entities
|
||
|
||
+==================================================================+
|
||
|
||
| Group | Meaning | If omitted, |
|
||
|
||
| code | | defaults to...|
|
||
|
||
|--------|-----------------------------------------|---------------|
|
||
|
||
| 6 | Linetype name (if not BYLAYER). The | BYLAYER |
|
||
|
||
| | special name BYBLOCK indicates a | |
|
||
|
||
| | floating linetype | |
|
||
|
||
|--------|-----------------------------------------|---------------|
|
||
|
||
| 38 | Elevation (if nonzero). Exists only in | 0 |
|
||
|
||
| | output from versions prior to R11. | |
|
||
|
||
| | Otherwise, Z coordinates are supplied | |
|
||
|
||
| | as 3x-groups as part of each of the | |
|
||
|
||
| | entity's defining points | |
|
||
|
||
|--------|-----------------------------------------|---------------|
|
||
|
||
| 39 | Thickness (if nonzero) | 0 |
|
||
|
||
|--------|-----------------------------------------|---------------|
|
||
|
||
| 62 | Color number (if not BYLAYER). Zero | BYLAYER |
|
||
|
||
| | indicates the BYBLOCK (floating) color. | |
|
||
|
||
| | 256 indicates the BYLAYER color | |
|
||
|
||
|--------|-----------------------------------------|---------------|
|
||
|
||
| 67 | Absent or zero indicates entity is in | 0 |
|
||
|
||
| | model space. One indicates entity is | |
|
||
|
||
| | in paper space, other values are | |
|
||
|
||
| | reserved | |
|
||
|
||
|--------|-----------------------------------------|---------------|
|
||
|
||
| 210, | These groups are included for each Line,| 0,0,1 |
|
||
|
||
| 220, | Point, Circle, Shape, Text, Arc, Trace, | |
|
||
|
||
| 230 | Solid, Block Reference, Polyline, | |
|
||
|
||
| | Dimension, Attribute, and Attribute | |
|
||
|
||
| | Definition entity if its extrusion | |
|
||
|
||
| | direction is not parallel to the World | |
|
||
|
||
| | Z axis. They indicate the X, Y, and Z | |
|
||
|
||
| | components of the entity's extrusion | |
|
||
|
||
| | direction | |
|
||
|
||
+------------------------------------------------------------------+
|
||
|
||
|
||
|
||
The rest of the groups that make up an entity item are described
|
||
|
||
next. Many of the entities include "flag" groups. These are integer
|
||
|
||
codes (6x or 7x groups) that encode various pieces of information
|
||
|
||
regarding the entity, and are specific to the particular entity
|
||
|
||
type. In the following descriptions, the term bit-coded means that
|
||
|
||
the flag contains various true/false values coded as the sum of the
|
||
|
||
bit values given. Any bits not defined in the following section
|
||
|
||
should be ignored in these fields and set to zero when constructing
|
||
|
||
a DXF file.
|
||
|
||
|
||
|
||
LINE 10, 20, 30 (start point), 11, 21, 31 (endpoint).
|
||
|
||
|
||
|
||
POINT 10, 20, 30 (point).
|
||
|
||
|
||
|
||
Point entities have an optional 50 group that determines
|
||
|
||
the orientation of PDMODE images. The group value is the
|
||
|
||
negative of the Entity Coordinate Systems (ECS) angle of
|
||
|
||
the UCS X axis in effect when the point was drawn. The X
|
||
|
||
axis of the UCS in effect when the point was drawn is
|
||
|
||
always parallel to the XY plane for the point's ECS, and
|
||
|
||
the angle between the UCS X axis and the ECS X axis is a
|
||
|
||
single 2D angle. The value in group 50 is the angle from
|
||
|
||
horizontal (the effective X axis) to the ECS X axis.
|
||
|
||
Entity Coordinate Systems (ECS) are described later in
|
||
|
||
this section.
|
||
|
||
|
||
|
||
CIRCLE 10, 20, 30 (center), 40 (radius).
|
||
|
||
|
||
|
||
ARC 10, 20, 30 (center), 40 (radius), 50 (start angle), 51
|
||
|
||
(end angle).
|
||
|
||
|
||
|
||
TRACE Four points defining the corners of the trace: (10, 20,
|
||
|
||
30), (11, 21, 31), (12, 22, 32), and (13, 23, 33).
|
||
|
||
|
||
|
||
SOLID Four points defining the corners of the solid: (10, 20,
|
||
|
||
30), (11, 21, 31), (12, 22, 32), and (13, 23, 33). If only
|
||
|
||
three points were entered (forming a triangular solid),
|
||
|
||
the third and fourth points will be the same.
|
||
|
||
|
||
|
||
TEXT 10, 20, 30 (insertion point), 40 (height), 1 (text value),
|
||
|
||
50 (rotation angle -optional 0), 41 (relative X-scale
|
||
|
||
factor -optional 1), 51 (oblique angle -optional 0), 7
|
||
|
||
(text style name -optional STANDARD), 71 (text generation
|
||
|
||
flags -optional 0), 72 (horizontal justification type -
|
||
|
||
optional 0), 73 (vertical justification type -optional 0)
|
||
|
||
11, 21, 31 (alignment point -optional, appears only if 72
|
||
|
||
or 73 group is present and nonzero).
|
||
|
||
|
||
|
||
The "text generation flags" are a bit-coded field with
|
||
|
||
meanings as follows:
|
||
|
||
|
||
|
||
Table 11-9. Group 71 bit codes for Text entity
|
||
|
||
+=====================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 2 | Text is backward (mirrored in X) |
|
||
|
||
|----------|------------------------------------------|
|
||
|
||
| 4 | Text is upside down (mirrored in Y) |
|
||
|
||
+-----------------------------------------------------+
|
||
|
||
|
||
|
||
The justification-type value (group codes 72 and 73, not
|
||
|
||
bit-coded) indicates the text-justification style used on
|
||
|
||
the text, as shown in the following table:
|
||
|
||
|
||
|
||
Table 11-10. Group 72 & 73 bit codes for Text entity
|
||
|
||
+======================================================+
|
||
|
||
| Group 73 | Group 72 (horizontal alignment) |
|
||
|
||
|(vertical |-----------------------------------------|
|
||
|
||
| alignment) |0 |1 |2 |3 |4 |5 |
|
||
|
||
|------------|-----|-------|------|-------|------|-----|
|
||
|
||
|3 (Top) |TLeft|TCenter|TRight| | | |
|
||
|
||
|------------|-----|-------|------|-------|------|-----|
|
||
|
||
|2 (Middle) |MLeft|MCenter|MRight| | | |
|
||
|
||
|------------|-----|-------|------|-------|------|-----|
|
||
|
||
|1 (Bottom) |BLeft|BCenter|BRight| | | |
|
||
|
||
|------------|-----|-------|------|-------|------|-----|
|
||
|
||
|0 (Baseline)|Left |Center |Right |Aligned|Middle| Fit |
|
||
|
||
+------------------------------------------------------+
|
||
|
||
|
||
|
||
If the justification is anything other than baseline/left
|
||
|
||
(groups 72 and 73 both 0), group codes 11, 21, and 31
|
||
|
||
specify the alignment point (or the second alignment point
|
||
|
||
for Align or Fit).
|
||
|
||
|
||
|
||
DXFOUT handles ASCII control characters in text strings by
|
||
|
||
expanding the character into a ^ (caret) followed by the
|
||
|
||
appropriate letter. For example, an ASCII Control-G (BEL,
|
||
|
||
decimal code 7) is output as ^G. If the text itself
|
||
|
||
contains a caret character, it is expanded to ^ (caret,
|
||
|
||
space). DXFIN performs the complementary conversion.
|
||
|
||
|
||
|
||
SHAPE 10, 20, 30 (insertion point), 40 (size), 2 (shape name),
|
||
|
||
50 (rotation angle -optional 0), 41 (relative X-scale
|
||
|
||
factor -optional 1), 51 (oblique angle -optional 0).
|
||
|
||
|
||
|
||
BLOCK 2 (Block name), 3 (this is also the Block name), 70 (Block
|
||
|
||
type flag), 10, 20, 30 (Block base point), and if the
|
||
|
||
Block is an Xref Block it will also contain group code 1
|
||
|
||
(Xref pathname). Block entities appear only in the BLOCKS
|
||
|
||
section, not in the ENTITIES section. The "Block type
|
||
|
||
flag" (group 70) is bit-coded, with the following bit
|
||
|
||
meanings:
|
||
|
||
|
||
|
||
Table 11-11. Group 70 bit codes for Block table
|
||
|
||
+=======================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 1 | This is an anonymous Block generated by |
|
||
|
||
| | hatching, associative dimensioning, other |
|
||
|
||
| | internal operations, or an application |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 2 | This Block has Attributes |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 4 | This Block is an external reference (Xref) |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 8 | not used |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 16 | This Block is externally dependent |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 32 | This is a resolved external reference, or |
|
||
|
||
| | dependent of an external reference |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 64 | This definition is referenced |
|
||
|
||
+-------------------------------------------------------+
|
||
|
||
|
||
|
||
ENDBLK No groups. Appears only in BLOCKS section.
|
||
|
||
|
||
|
||
INSERT 66 (Attributes follow flag -optional 0), 2 (Block name),
|
||
|
||
10, 20, 30 (insertion point), 41 (X- scale factor
|
||
|
||
-optional 1), 42 (Y scale factor -optional 1), 43 (Z-
|
||
|
||
scale factor -optional 1), 50 (rotation angle -optional
|
||
|
||
0), 70 and 71 (column and row counts -optional 1), 44 and
|
||
|
||
45 (column and row spacing -optional 0).
|
||
|
||
|
||
|
||
If the value of the "Attributes follow" flag is 1, a
|
||
|
||
series of Attribute (Attrib) entities is expected to
|
||
|
||
follow the Insert, terminated by a sequence end (Seqend)
|
||
|
||
entity.
|
||
|
||
|
||
|
||
ATTDEF 10, 20, 30 (text start), 40 (text height), 1 (default
|
||
|
||
value, see "Text" on page 260 for handling of ASCII
|
||
|
||
control characters), 3 (prompt string), 2 (tag string), 70
|
||
|
||
(Attribute flags), 73 (field length -optional 0), 50 (text
|
||
|
||
rotation - optional 0), 41 (relative X scale factor
|
||
|
||
-optional 1), 51 (oblique angle -optional 0), 7 (text
|
||
|
||
style name -optional STANDARD), 71 (text generation flags
|
||
|
||
-optional 0, see "Text" on page 260), 72 (horizontal text
|
||
|
||
justification type - optional 0, see "Text" on page 260),
|
||
|
||
74 (vertical text justification type -optional 0 see group
|
||
|
||
73 in "Text" on page 260), 11, 21, 31 (alignment point
|
||
|
||
-optional, appears only if 72 or 74 group is present and
|
||
|
||
nonzero).
|
||
|
||
|
||
|
||
The "Attribute flags" (group code 70) are a bit-coded
|
||
|
||
field in which the bits have the following meanings:
|
||
|
||
|
||
|
||
Table 11-12. Group 70 bit codes for Attdef entity
|
||
|
||
+=======================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 1 | Attribute is invisible (does not display) |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 2 | This is a constant Attribute |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 4 | Verification is required on input of this |
|
||
|
||
| | Attribute |
|
||
|
||
|----------|--------------------------------------------|
|
||
|
||
| 8 | Attribute is preset (no prompt during |
|
||
|
||
| | insertion) |
|
||
|
||
+-------------------------------------------------------+
|
||
|
||
|
||
|
||
ATTRIB 10, 20, 30 (text start), 40 (text height), 1 (value, see
|
||
|
||
"Text" on page 260 for handling ASCII control characters),
|
||
|
||
2 (Attribute tag), 70 (Attribute flags; see Attdef), 73
|
||
|
||
(field length -optional 0), 50 (text rotation -optional
|
||
|
||
0), 41 (relative X scale factor -optional 1), 51 (oblique
|
||
|
||
angle -optional 0), 7 (text style name -optional
|
||
|
||
STANDARD), 71 (text generation flags -optional 0, see
|
||
|
||
"Text" on page 260), 72 (horizontal text justification
|
||
|
||
type -optional 0, see "Text" on page 260), 74 (vertical
|
||
|
||
text justification type -optional 0, see group 73 in
|
||
|
||
"Text" on page 260), 11, 21, 31 (alignment point
|
||
|
||
-optional, appears only if 72 or 74 group is present
|
||
|
||
and nonzero).
|
||
|
||
|
||
|
||
POLYLINE 66 (vertices-follow flag), 10, 20, 30 (polyline elevation
|
||
|
||
- 30 supplies elevation, 10 and 20 are always set to
|
||
|
||
zero), 70 (Polyline flag -optional 0), 40 (default
|
||
|
||
starting width - optional 0), 41 (default ending width
|
||
|
||
-optional 0), 71 and 72 (polygon mesh M and N vertex counts
|
||
|
||
-optional 0), 73 and 74 (smooth surface M and N densities
|
||
|
||
-optional 0), 75 (curves and smooth surface type -optional
|
||
|
||
0). The default widths apply to any vertex that doesn't
|
||
|
||
supply widths (see later).
|
||
|
||
|
||
|
||
The "vertices follow" flag is always 1, indicating that a
|
||
|
||
series of Vertex entities is expected to follow the
|
||
|
||
Polyline, terminated by a sequence end (Seqend) entity.
|
||
|
||
The polyline flag (group code 70) is a bit-coded field
|
||
|
||
with bits defined as follows:
|
||
|
||
|
||
|
||
Table 11-13. Group 70 bit codes for Polyline entity
|
||
|
||
+======================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 1 | This is a closed Polyline (or a polygon |
|
||
|
||
| | mesh closed in the M direction) |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 2 | Curve-fit vertices have been added |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 4 | Spline-fit vertices have been added |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 8 | This is a 3D Polyline |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 16 | This is a 3D polygon mesh. |
|
||
|
||
| | Group 75 indicates the smooth surface type|
|
||
|
||
| | as follows: |
|
||
|
||
| | 0 = no smooth surface fitted |
|
||
|
||
| | 5 = quadratic B-spline surface |
|
||
|
||
| | 6 = cubic B-spline surface |
|
||
|
||
| | 8 = Bezier surface |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 32 | The polygon mesh is closed in the N |
|
||
|
||
| | direction |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 64 | This Polyline is a polyface mesh |
|
||
|
||
|----------|-------------------------------------------|
|
||
|
||
| 128 | The linetype pattern is generated |
|
||
|
||
| | continuously around the vertices of |
|
||
|
||
| | this Polyline |
|
||
|
||
+------------------------------------------------------+
|
||
|
||
|
||
|
||
A polyface mesh is represented in DXF as a variant of a
|
||
|
||
Polyline entity. The Polyline header is identified as
|
||
|
||
introducing a polyface mesh by the presence of the 64 bit
|
||
|
||
in the Polyline flags (70) group. The 71 group specifies
|
||
|
||
the number of vertices in the mesh, and the 72 group, the
|
||
|
||
number of faces. While these counts are correct for all
|
||
|
||
meshes created with the PFACE command, applications are
|
||
|
||
not required to place correct values in these fields, and
|
||
|
||
AutoCAD actually never relies upon their accuracy.
|
||
|
||
|
||
|
||
Following the Polyline header is a sequence of Vertex
|
||
|
||
entities that specify the vertex coordinates and faces
|
||
|
||
that compose the mesh. Vertices such as these are
|
||
|
||
described in the following subsection on Vertex.
|
||
|
||
|
||
|
||
Applications might want to represent polygons with an
|
||
|
||
arbitrarily large number of sides in polyface meshes.
|
||
|
||
However, the AutoCAD entity structure imposes a limit on
|
||
|
||
the number of vertices that a given face entity can
|
||
|
||
specify. You can represent more complex polygons by
|
||
|
||
decomposing them into triangular wedges. Their edges
|
||
|
||
should be made invisible to prevent visible artifacts of
|
||
|
||
this subdivision from being drawn. The PFACE command
|
||
|
||
performs this subdivision automatically, but when
|
||
|
||
applications generate polyface meshes directly, the
|
||
|
||
applications must do this themselves.
|
||
|
||
|
||
|
||
The number of vertices per face is the key parameter in
|
||
|
||
this subdivision process. The PFACEVMAX system variable
|
||
|
||
provides an application with the number of vertices per
|
||
|
||
face entity. This value is read-only, and is set to 4.
|
||
|
||
|
||
|
||
Polyface meshes created with the PFACE command are always
|
||
|
||
generated with all the vertex coordinate entities first,
|
||
|
||
followed by the face definition entities. The code within
|
||
|
||
AutoCAD that processes polyface meshes does not, at
|
||
|
||
present, require this ordering; it works even with
|
||
|
||
interleaved vertex coordinates and face definitions as
|
||
|
||
long as no face specifies a vertex with an index that
|
||
|
||
appears after it in the database. Programs that read
|
||
|
||
polyface meshes from DXF would be wise to be as tolerant
|
||
|
||
of odd vertex and face ordering as AutoCAD is.
|
||
|
||
|
||
|
||
VERTEX 10, 20, 30 (location), 40 (starting width -optional, see
|
||
|
||
earlier), 41 (ending width -optional, see above), 42
|
||
|
||
(bulge -optional 0), 70 (vertex flags -optional 0), 50
|
||
|
||
(curve fit tangent direction -optional). The bulge is the
|
||
|
||
tangent of 1/4 the included angle for an arc segment, made
|
||
|
||
negative if the arc goes clockwise from the start point to
|
||
|
||
the endpoint; a bulge of 0 indicates a straight segment,
|
||
|
||
and a bulge of 1 is a semicircle. The meaning of the bit-
|
||
|
||
coded Vertex flag (group code 70) is shown in the
|
||
|
||
following table
|
||
|
||
|
||
|
||
Table 11-14. Group 70 bit codes for Vertex entity
|
||
|
||
+========================================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 1 | Extra vertex created by curve-fitting |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 2 | Curve-fit tangent defined for this vertex. |
|
||
|
||
| | A curve-fit tangent direction of 0 may be |
|
||
|
||
| | omitted from the DXF output, but is |
|
||
|
||
| | significant if this bit is set |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 4 | Unused (never set in DXF files) |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 8 | Spline vertex created by spline-fitting |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 16 | Spline frame control point |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 32 | 3D Polyline vertex |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 64 | 3D polygon mesh vertex |
|
||
|
||
|----------|---------------------------------------------|
|
||
|
||
| 128 | Polyface mesh vertex |
|
||
|
||
+--------------------------------------------------------+
|
||
|
||
|
||
|
||
Every Vertex that is part of a polyface mesh has the 128
|
||
|
||
bit set in its Vertex flags (70) group. If the entity
|
||
|
||
specifies the coordinates of a vertex of the mesh, the 64
|
||
|
||
bit is set as well and the 10, 20, and 30 groups give the
|
||
|
||
vertex coordinates. The vertex indexes are determined by
|
||
|
||
the order in which the Vertex entities appear within the
|
||
|
||
Polyline, with the first numbered 1.
|
||
|
||
|
||
|
||
If the Vertex defines a face of the mesh, its Vertex flags
|
||
|
||
(70) group has the 128 bit set but not the 64 bit. The 10,
|
||
|
||
20, and 30 (location) groups of the face entity are
|
||
|
||
irrelevant and are always written as zero in a DXF file.
|
||
|
||
The vertex indexes that define the mesh are given by 71,
|
||
|
||
72, 73, and 74 groups, the values of which are integers
|
||
|
||
specifying one of the previously defined vertices by
|
||
|
||
index. If the index is negative, the edge that begins with
|
||
|
||
that vertex is invisible. The first zero vertex marks the
|
||
|
||
end of the vertices of the face. Since the 71 through 74
|
||
|
||
groups are optional fields with default values of zero,
|
||
|
||
they are present in DXF only if nonzero.
|
||
|
||
|
||
|
||
SEQEND No fields. This entity marks the end of vertices (Vertex
|
||
|
||
type name) for a Polyline, or the end of Attribute
|
||
|
||
entities (Attrib type name) for an Insert entity that has
|
||
|
||
Attributes (indicated by 66 group present and nonzero in
|
||
|
||
Insert entity).
|
||
|
||
|
||
|
||
3DFACE Four points defining the corners of the face: (10, 20,
|
||
|
||
30), (11, 21, 31), (12, 22, 32), and (13, 23, 33). 70
|
||
|
||
(invisible edge flags -optional 0). If only
|
||
|
||
three points are entered (forming a triangular face), the
|
||
|
||
third and fourth points will be the same. The meanings of
|
||
|
||
the bit-coded "invisible edge flags" are shown in the
|
||
|
||
following table:
|
||
|
||
|
||
|
||
Table 11-15. Group 70 bit codes for 3D Face entity
|
||
|
||
+===========================================+
|
||
|
||
| Flag bit | Meaning |
|
||
|
||
| value | |
|
||
|
||
|----------|--------------------------------|
|
||
|
||
| 1 | First edge is invisible |
|
||
|
||
|----------|--------------------------------|
|
||
|
||
| 2 | Second edge is invisible |
|
||
|
||
|----------|--------------------------------|
|
||
|
||
| 4 | Third edge is invisible |
|
||
|
||
|----------|--------------------------------|
|
||
|
||
| 8 | Fourth edge is invisible |
|
||
|
||
+-------------------------------------------+
|
||
|
||
|
||
|
||
VIEWPORT 10,20,30 (center point of entity in paper space
|
||
|
||
coordinates), 40 (width in paper space units), 41 (height
|
||
|
||
in paper space units), 68 (viewport status field), 69
|
||
|
||
(viewport ID, permanent during editing sessions, but
|
||
|
||
mutable between sessions; the paper space viewport entity
|
||
|
||
always has an ID of 1).
|
||
|
||
|
||
|
||
The value of the viewport status field (68) is interpreted
|
||
|
||
as follows:
|
||
|
||
|
||
|
||
-1 On, but is fully off-screen or is one of
|
||
|
||
the viewports not active because the
|
||
|
||
$MAXACTVP count is currently being
|
||
|
||
exceeded.
|
||
|
||
|
||
|
||
0 Off.
|
||
|
||
|
||
|
||
<positive value> On, active and the value indicates the
|
||
|
||
order of "stacking" for the viewports,
|
||
|
||
with 1 applying to the active viewport,
|
||
|
||
which is also the highest, 2 applying
|
||
|
||
to the next viewport in the stack,
|
||
|
||
and so on.
|
||
|
||
|
||
|
||
In addition, the extended entity data groups in the
|
||
|
||
following table apply to viewports.
|
||
|
||
|
||
|
||
NOTE: In contrast to normal entity data, the same extended
|
||
|
||
entity group code can appear multiple times, and order is
|
||
|
||
important.
|
||
|
||
|
||
|
||
Table 11-16. Extended entity group codes for Viewports
|
||
|
||
+========================================================+
|
||
|
||
| Group | Description |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1001 | Application name. This field will always be |
|
||
|
||
| | the string "ACAD" |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1000 | Begin viewport data. This field will always |
|
||
|
||
| | be the string "MVIEW". Other data groups may |
|
||
|
||
| | appear in the future |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1002 | Begin window descriptor data. This field will|
|
||
|
||
| | always be the string "{" |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Extended entity data version number. For |
|
||
|
||
| | Releases 11 and 12, this field will always be|
|
||
|
||
| | the integer 16 |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1010 | View target point X value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1020 | View target point Y value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1030 | View target point Z value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1010 | View direction vector X value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1020 | View direction vector Y value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1030 | View direction vector Z value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | View twist angle |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | View height |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | View center point X value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | View center point Y value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Perspective lens length |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Front clip plane Z value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Back clip plane Z value |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | View mode |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Circle zoom |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Fast zoom setting |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | UCSICON setting |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Snap ON/OFF |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Grid ON/OFF |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Snap style |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Snap ISOPAIR |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Snap angle |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Snap base point UCS X coordinate |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Snap base point UCS Y coordinate |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Snap X spacing |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Snap Y spacing |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Grid X spacing |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1040 | Grid Y spacing |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1070 | Hidden in plot flag |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1002 | Begin frozen layer list (possibly empty). |
|
||
|
||
| | This field will always be the string "{" |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1003... | The names of layers frozen in this viewport. |
|
||
|
||
| | This list may include Xref-dependent layers. |
|
||
|
||
| | Any number of 1003 groups may appear here |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1002 | End frozen layer list. This field will always|
|
||
|
||
| | be the string "}" |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1002 | End viewport data. This field will always be |
|
||
|
||
| | the string "}" |
|
||
|
||
+--------------------------------------------------------+
|
||
|
||
|
||
|
||
DIMENSION 2 (name of pseudo-Block containing the current dimension
|
||
|
||
entity geometry), 3 (dimension style name), 10, 20, 30
|
||
|
||
(definition point for all dimension types), 11, 21, 31
|
||
|
||
(middle point of dimension text), 12, 22, 32 (dimension
|
||
|
||
block translation vector), 70 (Dimension type), 1
|
||
|
||
(dimension text explicitly entered by the user. If null or
|
||
|
||
"<>", the dimension measurement is drawn as the text, if
|
||
|
||
" " [one blank space], the text is suppressed. Anything
|
||
|
||
else is drawn as the text). 13, 23, 33 (definition point
|
||
|
||
for linear and angular dimensions), 14, 24, 34 (definition
|
||
|
||
point for linear and angular dimensions), 15, 25, 35
|
||
|
||
(definition point for diameter, radius, and angular
|
||
|
||
dimensions), 16, 26, 36 (point defining dimension arc for
|
||
|
||
angular dimensions), 40 (leader length for radius and
|
||
|
||
diameter dimensions), 50 (angle of rotated, horizontal, or
|
||
|
||
vertical linear dimensions).
|
||
|
||
|
||
|
||
The dimension type (group code 70) is an integer-coded
|
||
|
||
field with the following values:
|
||
|
||
|
||
|
||
Table 11-17. Group 70 integer codes for Dimension entity
|
||
|
||
+========================================================+
|
||
|
||
| Group | Description |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 0 | Rotated, horizontal, or vertical |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 1 | Aligned |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 2 | Angular |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 3 | Diameter |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 4 | Radius |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 5 | Angular 3-point |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 6 | Ordinate |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 64 | Ordinate type. This is a bit value (bit 7) |
|
||
|
||
| | used only with integer value 6. If set, |
|
||
|
||
| | ordinate is X-type; if not set, ordinate is |
|
||
|
||
| | Y-type |
|
||
|
||
|---------|----------------------------------------------|
|
||
|
||
| 128 | This is a bit value (bit 8) added to the |
|
||
|
||
| | other group 70 values if the dimension text |
|
||
|
||
| | has been positioned at a user-defined |
|
||
|
||
| | location rather than at the default location |
|
||
|
||
+--------------------------------------------------------+
|
||
|
||
|
||
|
||
In addition, all dimension types have an optional group
|
||
|
||
(code 51) that indicates the horizontal direction for the
|
||
|
||
Dimension entity. This determines the orientation of
|
||
|
||
dimension text and dimension lines for horizontal,
|
||
|
||
vertical, and rotated linear dimensions. The group value
|
||
|
||
is the negative of the Entity Coordinate Systems (ECS)
|
||
|
||
angle of the UCS X axis in effect when the Dimension was
|
||
|
||
drawn. The X axis of the UCS in effect when the Dimension
|
||
|
||
was drawn is always parallel to the XY plane for the
|
||
|
||
Dimension's ECS, and the angle between the UCS X axis and
|
||
|
||
the ECS X axis is a single 2D angle. The value in group 51
|
||
|
||
is the angle from horizontal (the effective X axis) to the
|
||
|
||
ECS X axis. Entity Coordinate Systems (ECS) are described
|
||
|
||
later in this section.
|
||
|
||
|
||
|
||
Linear dimension types with an oblique angle have an
|
||
|
||
optional group (code 52). When added to the rotation angle
|
||
|
||
of the linear dimension (group code 50) this gives the
|
||
|
||
angle of the extension lines. The optional group code 53
|
||
|
||
is the rotation angle of the dimension text away from its
|
||
|
||
default orientation (the direction of the dimension line).
|
||
|
||
|
||
|
||
For all dimension types, the following groups represent 3D
|
||
|
||
WCS points:
|
||
|
||
|
||
|
||
10, 20, 30
|
||
|
||
13, 23, 33
|
||
|
||
14, 24, 34
|
||
|
||
15, 25, 35
|
||
|
||
|
||
|
||
For all dimension types, the following groups represent 3D
|
||
|
||
ECS points:
|
||
|
||
|
||
|
||
11, 21, 31
|
||
|
||
12, 22, 32
|
||
|
||
16, 26, 36
|
||
|
||
|
||
|
||
Linear (13,23,33) The point used to specify the first extension
|
||
|
||
line.
|
||
|
||
(14,24,34) The point used to specify the second extension
|
||
|
||
line.
|
||
|
||
(10,20,30) The point used to specify the dimension line.
|
||
|
||
|
||
|
||
Refer to figure 11-1 on page 267 of the "AutoCAD
|
||
|
||
Customization Manual"
|
||
|
||
|
||
|
||
Angular (13,23,33) and (14,24,34) The endpoints of the first
|
||
|
||
extension line.
|
||
|
||
(10,20,30) and (15,25,35) The endpoints of the second
|
||
|
||
extension line.
|
||
|
||
(16,26,36) The point used to specify the
|
||
|
||
dimension line arc.
|
||
|
||
|
||
|
||
Refer to figure 11-2 on page 267 of the "AutoCAD
|
||
|
||
Customization Manual"
|
||
|
||
|
||
|
||
Angular (15,25,35) The vertex of the angle.
|
||
|
||
(3-point) (13,23,33) The endpoints of the first extension line.
|
||
|
||
(13,23,33) The endpoints of the first extension line.
|
||
|
||
(14,24,34) The endpoints of the second extension line.
|
||
|
||
(10,20,30) The point used to specify the dimension line
|
||
|
||
arc.
|
||
|
||
|
||
|
||
Refer to figure 11-3 on page 267 of the "AutoCAD
|
||
|
||
Customization Manual"
|
||
|
||
|
||
|
||
Diameter (15,25,35) The point used to pick the circle/arc to
|
||
|
||
dimension.
|
||
|
||
(10,20,30) The point on that circle directly across from
|
||
|
||
the pick point.
|
||
|
||
|
||
|
||
Refer to figure 11-4 on page 268 of the "AutoCAD
|
||
|
||
Customization Manual"
|
||
|
||
|
||
|
||
Radius (15,25,35) The point used to pick the circle/arc to
|
||
|
||
dimension.
|
||
|
||
(10,20,30) The center of that circle.
|
||
|
||
|
||
|
||
Refer to figure 11-5 on page 268 of the "AutoCAD
|
||
|
||
Customization Manual"
|
||
|
||
|
||
|
||
Ordinate (13,23,33) The point used to select the feature.
|
||
|
||
(14,24,34) The point used to locate the leader end point.
|
||
|
||
|
||
|
||
Refer to figure 11-6 on page 268 of the "AutoCAD
|
||
|
||
Customization Manual"
|
||
|
||
|
||
|
||
|
||
|
||
Entity Coordinate Systems (ECS)
|
||
|
||
-------------------------------
|
||
|
||
To save space in the drawing database (and in the DXF file), the
|
||
|
||
points associated with each entity are expressed in terms of the
|
||
|
||
entity's own Entity Coordinate System (ECS). The Entity Coordinate
|
||
|
||
System allows AutoCAD to use a much more compact means of
|
||
|
||
representation for entities. With ECS, the only additional
|
||
|
||
information needed to describe the entity's position in 3D space is
|
||
|
||
the 3D vector describing the Z axis of the ECS, and the elevation
|
||
|
||
value.
|
||
|
||
For a given Z axis (or extrusion) direction, there are an infinite
|
||
|
||
number of coordinate systems, defined by translating the origin in
|
||
|
||
3D space and by rotating the X and Y axes around the Z axis.
|
||
|
||
However, for the same Z axis direction, there is only one Entity
|
||
|
||
Coordinate System. It has the following properties:
|
||
|
||
|
||
|
||
o Its origin coincides with the WCS origin.
|
||
|
||
o The orientation of the X and Y axes within the XY plane are
|
||
|
||
calculated in an arbitrary, but consistent manner. AutoCAD
|
||
|
||
performs this calculation using the arbitrary axis algorithm
|
||
|
||
(described later).
|
||
|
||
|
||
|
||
For some entities, the ECS is equivalent to the World Coordinate
|
||
|
||
System and all points (DXF groups 10 - 37) are expressed in World
|
||
|
||
coordinates. See the following table.
|
||
|
||
|
||
|
||
Table 11-18. Coordinate systems associated with an entity type
|
||
|
||
+==================================================================+
|
||
|
||
| Entities | Notes |
|
||
|
||
|----------------------------|-------------------------------------|
|
||
|
||
| Line, Point, 3DFace, | These entities do not lie in a |
|
||
|
||
| 3D Polyline, 3D Vertex, | particular plane. All points are |
|
||
|
||
| 3D Mesh, 3D Mesh vertex | expressed in World coordinates. Of |
|
||
|
||
| | these entities, only Lines and |
|
||
|
||
| | Points can be extruded; their |
|
||
|
||
| | extrusion direction can differ from |
|
||
|
||
| | the World Z axis |
|
||
|
||
|----------------------------|-------------------------------------|
|
||
|
||
| Circle, Arc, Solid, Trace, | These entities are planar in |
|
||
|
||
| Text, Attrib, Attdef, | nature. All points are expressed |
|
||
|
||
| Shape, Insert, 2D Polyline,| in Entity coordinates. All of these |
|
||
|
||
| 2D Vertex | entities can be extruded; their |
|
||
|
||
| | extrusion direction can differ from |
|
||
|
||
| | the World Z axis |
|
||
|
||
|----------------------------|-------------------------------------|
|
||
|
||
| Dimension | Some of a Dimension's points are |
|
||
|
||
| | expressed in WCS, and some in ECS |
|
||
|
||
|----------------------------|-------------------------------------|
|
||
|
||
| Viewport | Expressed in World coordinates |
|
||
|
||
|----------------------------|-------------------------------------|
|
||
|
||
| Others | The remaining entities have no |
|
||
|
||
| | point data and their coordinate |
|
||
|
||
| | systems are therefore irrelevant |
|
||
|
||
+------------------------------------------------------------------+
|
||
|
||
|
||
|
||
Once AutoCAD has established the ECS for a given entity, here's how
|
||
|
||
it works:
|
||
|
||
|
||
|
||
o The elevation value stored with an entity indicates how far along
|
||
|
||
the Z axis to shift the XY plane from the WCS origin to make it
|
||
|
||
coincide with the plane that the entity is in. How much of this is
|
||
|
||
the user-defined elevation is unimportant.
|
||
|
||
|
||
|
||
o Any 2D points describing the entity that were entered through the
|
||
|
||
UCS are transformed into the corresponding 2D points in the ECS,
|
||
|
||
which (more often than not) is shifted and rotated with respect to
|
||
|
||
the UCS.
|
||
|
||
|
||
|
||
These are a few ramifications of this process:
|
||
|
||
|
||
|
||
o You cannot reliably find out what UCS was in effect when an entity
|
||
|
||
was acquired.
|
||
|
||
|
||
|
||
o When you enter the XY coordinates of an entity in a given UCS and
|
||
|
||
then do a DXFOUT, you probably won't recognize those XY
|
||
|
||
coordinates in the DXF file. You'll have to know the method by
|
||
|
||
which AutoCAD calculates the X and Y axes in order to work with
|
||
|
||
these values.
|
||
|
||
|
||
|
||
o The elevation value stored with an entity and output in DXF files
|
||
|
||
will be a sum of the Z-coordinate difference between the UCS XY
|
||
|
||
plane and the ECS XY plane, and the elevation value that the user
|
||
|
||
specified at the time the entity was drawn.
|
||
|
||
|
||
|
||
|
||
|
||
Arbitrary Axis Algorithm
|
||
|
||
------------------------
|
||
|
||
The arbitrary axis algorithm is used by AutoCAD internally to
|
||
|
||
implement the arbitrary but consistent generation of Entity
|
||
|
||
Coordinate Systems for all entities except Lines, Points, 3D Faces,
|
||
|
||
and 3D Polylines, which contain points in World coordinates.
|
||
|
||
|
||
|
||
Given a unit-length vector to be used as the Z axis of a coordinate
|
||
|
||
system, the arbitrary axis algorithm generates a corresponding X
|
||
|
||
axis for the coordinate system. The Y axis follows by application of
|
||
|
||
the right-hand rule.
|
||
|
||
|
||
|
||
The method is to examine the given Z axis (also called the normal
|
||
|
||
vector) and see if it is close to the positive or negative World Z
|
||
|
||
axis. If it is, cross the World Y axis with the given Z axis to
|
||
|
||
arrive at the arbitrary X axis. If not, cross the World Z axis with
|
||
|
||
the given Z axis to arrive at the arbitrary X axis. The boundary at
|
||
|
||
which the decision is made was chosen to be both inexpensive to
|
||
|
||
calculate and completely portable across machines. This is achieved
|
||
|
||
by having a sort of "square" polar cap, the bounds of which is 1/64,
|
||
|
||
which is precisely specifiable in 6 decimal fraction digits and in 6
|
||
|
||
binary fraction bits.
|
||
|
||
|
||
|
||
In mathematical terms, the algorithm does the following (all vectors
|
||
|
||
are assumed to be in 3D space, specified in the World Coordinate
|
||
|
||
System):
|
||
|
||
|
||
|
||
Let the given normal vector be called N.
|
||
|
||
Let the World Y axis be called Wy, which is always (0,1,0).
|
||
|
||
Let the World Z axis be called Wz, which is always (0,0,1).
|
||
|
||
|
||
|
||
We are looking for the arbitrary X and Y axes to go with the normal
|
||
|
||
N. They'll be called Ax and Ay. N could also be called Az (the
|
||
|
||
arbitrary Z axis):
|
||
|
||
|
||
|
||
If (abs (Nx) < 1/64) and (abs (Ny) < 1/64) then
|
||
|
||
Ax = Wy N (where "" is the cross-product operator).
|
||
|
||
Otherwise,
|
||
|
||
Ax = Wz N.
|
||
|
||
|
||
|
||
Scale Ax to unit length.
|
||
|
||
|
||
|
||
The method of getting the Ay vector would be:
|
||
|
||
Ay = N Ax. Scale Ay to unit length.
|
||
|
||
|
||
|
||
|
||
|
||
Extended Entity Data
|
||
|
||
====================
|
||
|
||
Extended entity data is created by applications such as the Advanced
|
||
|
||
Modeling Extension (AME), or by routines written with AutoLISP or
|
||
|
||
ADS. Extended entity data is also produced by creating PostScript
|
||
|
||
output with PSOUT. If an entity contains extended data, it follows
|
||
|
||
the entity's normal definition data.
|
||
|
||
|
||
|
||
The group codes 1000 through 1071 describe extended entity data. The
|
||
|
||
following is an example of an entity containing extended entity data
|
||
|
||
in DXF format.
|
||
|
||
___
|
||
|
||
0 |
|
||
|
||
INSERT |
|
||
|
||
8 |
|
||
|
||
0 |
|
||
|
||
5 |
|
||
|
||
5 |
|
||
|
||
F11 |
|
||
|
||
15 |-- Normal entity definition data.
|
||
|
||
2 |
|
||
|
||
BLOCK_A |
|
||
|
||
10 |
|
||
|
||
0.0 |
|
||
|
||
20 |
|
||
|
||
0.0 |
|
||
|
||
30 |
|
||
|
||
0.0 ___|
|
||
|
||
1001 |
|
||
|
||
AME_SOL |
|
||
|
||
1002 |
|
||
|
||
{ |
|
||
|
||
1070 |
|
||
|
||
0 |
|
||
|
||
1071 |
|
||
|
||
1.95059E+06 |
|
||
|
||
1070 |
|
||
|
||
519 |
|
||
|
||
1010 |
|
||
|
||
2.54717 |
|
||
|
||
1020 |
|
||
|
||
2.122642 |-- Extended entity data.
|
||
|
||
1030 |
|
||
|
||
2.049201 |
|
||
|
||
1005 |
|
||
|
||
ECD |
|
||
|
||
1005 |
|
||
|
||
EE9 |
|
||
|
||
1005 |
|
||
|
||
0 |
|
||
|
||
1040 |
|
||
|
||
0.0 |
|
||
|
||
1040 |
|
||
|
||
1.0 |
|
||
|
||
1000 |
|
||
|
||
MILD_STEEL ___|
|
||
|
||
|
||
|
||
Figure 11-7. Example of extended entity data
|
||
|
||
|
||
|
||
|
||
|
||
Organization of Extended Entity Data
|
||
|
||
====================================
|
||
|
||
As you can see in the above example, group code 1001 indicates the
|
||
|
||
beginning of extended entity data. This is followed by one or more
|
||
|
||
1000 group codes. Application names are string values (in the
|
||
|
||
example, the application name is AME_SOL). In contrast to normal
|
||
|
||
entity data, the same group code can appear multiple times, and
|
||
|
||
order is important.
|
||
|
||
|
||
|
||
Extended entity data are grouped by registered application name, and
|
||
|
||
each registered application's group begins with a 1001 group code
|
||
|
||
with the registered application name as the string value. Registered
|
||
|
||
application names correspond to APPID symbol table entries, which
|
||
|
||
are essentially placeholders for registered application names.
|
||
|
||
|
||
|
||
An application can use as many APPID names as needed, although one
|
||
|
||
will often suffice. APPID names are permanent, although they can be
|
||
|
||
purged if they aren't currently used in the drawing.
|
||
|
||
|
||
|
||
Each APPID name can have no more than one data group attached to
|
||
|
||
each entity. Within an application's group, the sequence of extended
|
||
|
||
entity data groups and their meaning is defined by the application.
|
||
|
||
|
||
|
||
NOTE: PostScript images and PostScript fill requests for Polylines
|
||
|
||
are stored in the AutoCAD database as extended entity data belonging
|
||
|
||
to the AUTOCAD_POSTSCRIPT_FIGURE application.
|
||
|
||
|
||
|
||
As the example in the previous figure shows, the group codes for
|
||
|
||
extended entity data begin at 1000 and currently extend to 1071. The
|
||
|
||
following list of extended entity data group codes are supported by
|
||
|
||
AutoCAD, which maintains and manipulates their values as described:
|
||
|
||
|
||
|
||
Table 11-19. extended entity data group codes and descriptions
|
||
|
||
+==================================================================+
|
||
|
||
| Entity Name | Group code | Description |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| String | 1000 | Strings in extended entity data |
|
||
|
||
| | | can be up to 255 bytes long (with |
|
||
|
||
| | | the 256th byte reserved for the |
|
||
|
||
| | | null character) |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Application | 1001 | Application names can be up to 31 |
|
||
|
||
| name | also a | bytes long (the 32d byte is |
|
||
|
||
| | string | reserved for the null character). |
|
||
|
||
| | value | Use of application names is |
|
||
|
||
| | | described in more detail later in |
|
||
|
||
| | | this section |
|
||
|
||
| | | CAUTION: Do not add a 1001 group |
|
||
|
||
| | | into your extended entity data, as |
|
||
|
||
| | | AutoCAD will assume it is the |
|
||
|
||
| | | beginning of a new application |
|
||
|
||
| | | extended entity data group |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Control string | 1002 | An extended data control string can|
|
||
|
||
| | | be either "{"or "}": these braces |
|
||
|
||
| | | enable applications to organize |
|
||
|
||
| | | their data by subdividing the data |
|
||
|
||
| | | into lists. The left brace begins a|
|
||
|
||
| | | list, and a right brace terminates |
|
||
|
||
| | | the most recent list; lists can be |
|
||
|
||
| | | nested |
|
||
|
||
| | | When AutoCAD reads the extended |
|
||
|
||
| | | entity data for a particular |
|
||
|
||
| | | application, it checks to ensure |
|
||
|
||
| | | that braces are balanced correctly |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Layer name | 1003 | Name of the layer associated with |
|
||
|
||
| | | the extended entity data |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Binary data | 1004 | Binary data is organized into |
|
||
|
||
| | | variable-length chunks.The maximum |
|
||
|
||
| | | length of each chunk is 127 bytes. |
|
||
|
||
| | | Binary data is represented as a |
|
||
|
||
| | | string of hexadecimal digits, two |
|
||
|
||
| | | per binary byte, in ASCII DXF files|
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Database | 1005 | Handles of entities in the |
|
||
|
||
| handle | | drawing database |
|
||
|
||
| | | NOTE: When a drawing with handles |
|
||
|
||
| | | and extended entity data handles |
|
||
|
||
| | | is imported into another drawing |
|
||
|
||
| | | using INSERT, INSERT *, XREF Bind, |
|
||
|
||
| | | XBIND, or partial DXFIN, the |
|
||
|
||
| | | extended entity data handles are |
|
||
|
||
| | | translated in the same manner as |
|
||
|
||
| | | their corresponding entity handles,|
|
||
|
||
| | | thus maintaining their binding. |
|
||
|
||
| | | This is also done in the EXPLODE |
|
||
|
||
| | | Block operation, or for any other |
|
||
|
||
| | | AutoCAD operation. When AUDIT |
|
||
|
||
| | | detects an extended entity data |
|
||
|
||
| | | handle that doesn't match the |
|
||
|
||
| | | handle of an entity in the drawing |
|
||
|
||
| | | file, it is considered an error. |
|
||
|
||
| | | If AUDIT is fixing entities, it |
|
||
|
||
| | | sets the handle to 0. |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| 3 reals | 1010, | Three real values, in the order |
|
||
|
||
| | 1020, | X, Y, Z. They can be used as |
|
||
|
||
| | 1030 | a point or vector record. AutoCAD |
|
||
|
||
| | | never alters their value |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| World space | 1011, | Unlike a simple 3D point,the World |
|
||
|
||
| position | 1021, | space coordinates are moved, |
|
||
|
||
| | 1031 | scaled, rotated, and mirrored |
|
||
|
||
| | | along with the parent entity to |
|
||
|
||
| | | which the extended data belongs. |
|
||
|
||
| | | The world space position is also |
|
||
|
||
| | | stretched when the STRETCH command |
|
||
|
||
| | | is applied to the parent entity |
|
||
|
||
| | | and this point lies within the |
|
||
|
||
| | | select window |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| World space | 1012, | Also a 3D point that is scaled, |
|
||
|
||
| displacement | 1022, | rotated, and mirrored along with |
|
||
|
||
| | 1032 | the parent (but not moved or |
|
||
|
||
| | | stretched) |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| World | 1013, | Also a 3D point that is rotated |
|
||
|
||
| direction | 1023, | and mirrored along with the parent |
|
||
|
||
| | 1033 | (but not moved, scaled, or |
|
||
|
||
| | | stretched). |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Real | 1040 | A real value |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Distance | 1041 | A real value that is scaled along |
|
||
|
||
| | | with the parent entity |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Scale factor | 1042 | Also a real value that is scaled |
|
||
|
||
| | | along with the parent. The |
|
||
|
||
| | | difference between a distance and |
|
||
|
||
| | | a scale factor is application- |
|
||
|
||
| | | defined |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Integer | 1070 | A 16-bit integer (signed or |
|
||
|
||
| | | unsigned) |
|
||
|
||
|----------------|------------|------------------------------------|
|
||
|
||
| Long | 1071 | A 32-bit signed (long) integer |
|
||
|
||
+------------------------------------------------------------------+
|
||
|
||
|
||
|
||
For more information on extended entity data and the APPID table,
|
||
|
||
refer to the "AutoCAD Development System Programmer's Reference" and
|
||
|
||
the "AutoLISP Programmer's Reference."
|
||
|
||
|
||
|
||
|
||
|
||
Writing DXF Interface Programs
|
||
|
||
==============================
|
||
|
||
Writing a program that communicates with AutoCAD via the DXF
|
||
|
||
mechanism often appears far more difficult than it really is. The
|
||
|
||
DXF file contains a seemingly overwhelming amount of information,
|
||
|
||
and examining a DXF file manually may lead to the conclusion that
|
||
|
||
the task is hopeless.
|
||
|
||
|
||
|
||
However, the DXF file has been designed to be easy to process by
|
||
|
||
program, not manually. The format was intentionally constructed to
|
||
|
||
make it easy to ignore information you don't need while easily
|
||
|
||
reading the information you do need. Just remember to handle the
|
||
|
||
groups in any order and ignore any group you don't care about.
|
||
|
||
|
||
|
||
As an example, the following is a Microsoft BASIC program that reads
|
||
|
||
a DXF file and extracts all the Line entities from the drawing
|
||
|
||
(ignoring lines that appear inside Blocks). It prints the endpoints
|
||
|
||
of these lines on the screen. As an exercise you might try entering
|
||
|
||
this program into your computer, running it on a DXF file from one
|
||
|
||
of your drawings, then enhancing it to print the center point and
|
||
|
||
radius of any circles it encounters. This program is not put forward
|
||
|
||
as an example of clean programming technique nor the way a general
|
||
|
||
DXF processor should be written; it is presented as an example of
|
||
|
||
just how simple a DXF-reading program can be.
|
||
|
||
|
||
|
||
1000 REM
|
||
|
||
1010 REM Extract lines from DXF file
|
||
|
||
1020 REM
|
||
|
||
1030 G1% = 0
|
||
|
||
1040 LINE INPUT "DXF file name: "; A$
|
||
|
||
1050 OPEN "i", 1, A$ + ".dxf"
|
||
|
||
1060 REM
|
||
|
||
1070 REM Ignore until section start encountered
|
||
|
||
1080 REM
|
||
|
||
1090 GOSUB 2000
|
||
|
||
1100 IF G% <> 0 THEN 1090
|
||
|
||
1110 IF S$ <> "SECTION" THEN 1090
|
||
|
||
1120 GOSUB 2000
|
||
|
||
1130 REM
|
||
|
||
1140 REM Skip unless ENTITIES section
|
||
|
||
1150 REM
|
||
|
||
1160 IF S$ <> "ENTITIES" THEN 1090
|
||
|
||
1170 REM
|
||
|
||
1180 REM Scan until end of section, processing LINEs
|
||
|
||
1190 REM
|
||
|
||
1200 GOSUB 2000
|
||
|
||
1210 IF G% = 0 AND S$ = "ENDSEC" THEN 2200
|
||
|
||
1220 IF G% = 0 AND S$ = "LINE" THEN GOSUB 1400 : GOTO 1210
|
||
|
||
1230 GOTO 1200
|
||
|
||
1400 REM
|
||
|
||
1410 REM Accumulate LINE entity groups
|
||
|
||
1420 REM
|
||
|
||
1430 GOSUB 2000
|
||
|
||
1440 IF G% = 10 THEN X1 = X : Y1 = Y : Z1 = Z
|
||
|
||
1450 IF G% = 11 THEN X2 = X : Y2 = Y : Z2 = Z
|
||
|
||
1460 IF G% = 0 THEN PRINT "Line from (";X1;",";Y1;",";Z1;") to
|
||
|
||
(";X2;",";Y2;",";Z2;")":RETURN
|
||
|
||
1470 GOTO 1430
|
||
|
||
2000 REM
|
||
|
||
2010 REM Read group code and following value
|
||
|
||
2020 REM For X coordinates, read Y and possibly Z also
|
||
|
||
2030 REM
|
||
|
||
2040 IF G1% < 0 THEN G% = -G1% : G1% = 0 ELSE INPUT #1, G%
|
||
|
||
2050 IF G% < 10 OR G% = 999 THEN LINE INPUT #1, S$ : RETURN
|
||
|
||
2060 IF G% >= 38 AND G% <= 49 THEN INPUT #1, V : RETURN
|
||
|
||
2080 IF G% >= 50 AND G% <= 59 THEN INPUT #1, A : RETURN
|
||
|
||
2090 IF G% >= 60 AND G% <= 69 THEN INPUT #1, P% : RETURN
|
||
|
||
2100 IF G% >= 70 AND G% <= 79 THEN INPUT #1, F% : RETURN
|
||
|
||
2110 IF G% >= 210 AND G% <= 219 THEN 2130
|
||
|
||
2115 IF G% >= 1000 THEN LINE INPUT #1, T$ : RETURN
|
||
|
||
2120 IF G% >= 20 THEN PRINT "Invalid group code";G% : STOP
|
||
|
||
2130 INPUT #1, X
|
||
|
||
2140 INPUT #1, G1%
|
||
|
||
2150 IF G1% <> (G%+10) THEN PRINT "Invalid Y coord code"; G1% :
|
||
|
||
STOP
|
||
|
||
2160 INPUT #1, Y
|
||
|
||
2170 INPUT #1, G1%
|
||
|
||
2180 IF G1% <> (G%+20) THEN G1% = -G1% ELSE INPUT #1, Z
|
||
|
||
2190 RETURN
|
||
|
||
2200 CLOSE 1
|
||
|
||
|
||
|
||
Writing a program that constructs a DXF file is more difficult,
|
||
|
||
because you must maintain consistency within the drawing in order
|
||
|
||
for AutoCAD to find the file acceptable. AutoCAD lets you omit many
|
||
|
||
items in a DXF file and still obtain a usable drawing. The entire
|
||
|
||
HEADER section can be omitted if you don't need to set any header
|
||
|
||
variables. Any of the tables in the TABLES section can be omitted if
|
||
|
||
you don't need to make any entries, and the entire TABLES section
|
||
|
||
can be dropped if nothing in it is required. If you define any
|
||
|
||
linetypes in the LTYPE table, this table must appear before the
|
||
|
||
LAYER table. If no Block Definitions are used in the drawing, the
|
||
|
||
BLOCKS section can be omitted. If present, however, the BLOCKS
|
||
|
||
section must appear before the ENTITIES section. Within the ENTITIES
|
||
|
||
section, you can reference layer names even though you haven't
|
||
|
||
defined them in the LAYER table. Such layers are automatically
|
||
|
||
created with color 7 and the CONTINUOUS linetype. The EOF item must
|
||
|
||
be present at the end-of-file.
|
||
|
||
|
||
|
||
The following Microsoft BASIC program constructs a DXF file
|
||
|
||
representing a polygon with a specified number of sides, leftmost
|
||
|
||
origin point, and side length. This program supplies only the
|
||
|
||
ENTITIES section of the DXF file, and places all entities generated
|
||
|
||
on the default layer 0. This may be taken as an example of a minimum
|
||
|
||
DXF generation program. Since this program doesn't create the
|
||
|
||
drawing header, the drawing limits, extents, and current view will
|
||
|
||
be invalid after performing a DXFIN on the drawing generated by this
|
||
|
||
program. You can do a ZOOM E to fill the screen with the drawing
|
||
|
||
generated. Then adjust the limits manually.
|
||
|
||
|
||
|
||
1000 REM
|
||
|
||
1010 REM Polygon generator
|
||
|
||
1020 REM
|
||
|
||
1030 LINE INPUT "Drawing (DXF) file name: "; A$
|
||
|
||
1040 OPEN "o", 1, A$ + ".dxf"
|
||
|
||
1050 PRINT #1, 0
|
||
|
||
1060 PRINT #1, "SECTION"
|
||
|
||
1070 PRINT #1, 2
|
||
|
||
1080 PRINT #1, "ENTITIES"
|
||
|
||
1090 PI = ATN(1) * 4
|
||
|
||
1100 INPUT "Number of sides for polygon: "; S%
|
||
|
||
1110 INPUT "Starting point (X,Y): "; X, Y
|
||
|
||
1120 INPUT "Polygon side: "; D
|
||
|
||
1130 A1 = (2 * PI) / S%
|
||
|
||
1140 A = PI / 2
|
||
|
||
1150 FOR I% = 1 TO S%
|
||
|
||
1160 PRINT #1, 0
|
||
|
||
1170 PRINT #1, "LINE"
|
||
|
||
1180 PRINT #1, 8
|
||
|
||
1190 PRINT #1, "0"
|
||
|
||
1200 PRINT #1, 10
|
||
|
||
1210 PRINT #1, X
|
||
|
||
1220 PRINT #1, 20
|
||
|
||
1230 PRINT #1, Y
|
||
|
||
1240 PRINT #1, 30
|
||
|
||
1250 PRINT #1, 0.0
|
||
|
||
1260 NX = D * COS(A) + X
|
||
|
||
1270 NY = D * SIN(A) + Y
|
||
|
||
1280 PRINT #1, 11
|
||
|
||
1290 PRINT #1, NX
|
||
|
||
1300 PRINT #1, 21
|
||
|
||
1310 PRINT #1, NY
|
||
|
||
1320 PRINT #1, 31
|
||
|
||
1330 PRINT #1, 0.0
|
||
|
||
1340 X = NX
|
||
|
||
1350 Y = NY
|
||
|
||
1360 A = A + A1
|
||
|
||
1370 NEXT I%
|
||
|
||
1380 PRINT #1, 0
|
||
|
||
1390 PRINT #1, "ENDSEC"
|
||
|
||
1400 PRINT #1, 0
|
||
|
||
1410 PRINT #1, "EOF"
|
||
|
||
1420 CLOSE 1
|
||
|
||
|
||
|
||
The DXFIN command is relatively forgiving with respect to the format
|
||
|
||
of data items. As long as a properly formatted item appears on the
|
||
|
||
line on which the data is expected, DXFIN will accept it (of course,
|
||
|
||
string items should not have leading spaces unless these are
|
||
|
||
intended to be part of the string). This program takes advantage of
|
||
|
||
this flexibility in input format, and does not try to generate a
|
||
|
||
file appearing exactly like one generated by AutoCAD.
|
||
|
||
|
||
|
||
In the case of error loading a DXF file using DXFIN, AutoCAD reports
|
||
|
||
the error with a message indicating the nature of the error and the
|
||
|
||
last line processed in the DXF file before the error was detected.
|
||
|
||
This may not be the line on which the error occurred, especially in
|
||
|
||
the case of errors such as omission of required groups.
|
||
|
||
|
||
|
||
|
||
|
||
Binary Drawing Interchange Files
|
||
|
||
********************************
|
||
|
||
|
||
|
||
The ASCII DXF file format described in the preceding sections of
|
||
|
||
this chapter is a complete representation of an AutoCAD drawing in
|
||
|
||
an ASCII text form easily processed by other programs. In addition,
|
||
|
||
AutoCAD can produce or read a binary form of the full DXF file, and
|
||
|
||
accepts limited input in another binary file format. These binary
|
||
|
||
files are described in the following sections.
|
||
|
||
|
||
|
||
|
||
|
||
Binary DXF Files
|
||
|
||
================
|
||
|
||
The DXFOUT command provides a Binary option that writes binary DXF
|
||
|
||
files. Such a file contains all of the information present in an
|
||
|
||
ASCII DXF file, but in a more compact form that takes, typically,
|
||
|
||
25% less file space and can be read and written more quickly
|
||
|
||
(typically 5 times faster) by AutoCAD. Unlike ASCII DXF files, which
|
||
|
||
entail a trade-off between size and floating-point accuracy, binary
|
||
|
||
DXF files preserve all of the accuracy in the drawing database.
|
||
|
||
AutoCAD Release 10 was the first version to support this form of DXF
|
||
|
||
file; it cannot be read by older versions.
|
||
|
||
|
||
|
||
A binary DXF file begins with a 22-byte sentinel consisting of:
|
||
|
||
|
||
|
||
AutoCAD Binary DXF<CR><LF><SUB><NUL>
|
||
|
||
|
||
|
||
Following the sentinel are (group, value) pairs as in an ASCII DXF
|
||
|
||
file, but represented in binary form. The group code is a single-
|
||
|
||
byte binary value, and the value that follows is one of the
|
||
|
||
following:
|
||
|
||
|
||
|
||
o A two-byte integer with the least-significant byte first and the
|
||
|
||
most-significant byte last.
|
||
|
||
|
||
|
||
o An eight-byte IEEE double precision floating-point number stored
|
||
|
||
with the least-significant byte first and the most-significant
|
||
|
||
byte last.
|
||
|
||
|
||
|
||
o An ASCII string terminated by a zero (NUL) byte.
|
||
|
||
|
||
|
||
The type of the datum following a group is determined from the group
|
||
|
||
code according to the same rules used in decoding ASCII DXF files.
|
||
|
||
Translation of angles to degrees, and dates to fractional Julian
|
||
|
||
date representation, is performed for binary files as well as for
|
||
|
||
ASCII DXF files. The comment group, 999, is not used in binary DXF
|
||
|
||
files.
|
||
|
||
|
||
|
||
Extended entity data group codes are represented in Binary DXF as a
|
||
|
||
single byte with the value 255, followed by a 2-byte integer value
|
||
|
||
containing the actual group code, followed by the actual value.
|
||
|
||
|
||
|
||
Extended entity data long (group code 1071) values occupy 4 bytes of
|
||
|
||
data. Extended entity data binary chunks (group code 1004) are
|
||
|
||
represented as a single-byte, unsigned integer length, followed by
|
||
|
||
the specified number of bytes of chunk data. For example, to
|
||
|
||
transfer an extended entity data long group, the following values
|
||
|
||
would appear, occupying 1, 2, and 4 bytes respectively:
|
||
|
||
|
||
|
||
255 Escape group code.
|
||
|
||
1071 True group code.
|
||
|
||
999999 Value for the 1071 group code.
|
||
|
||
|
||
|
||
DXFOUT writes binary DXF files with the same file type (.dxf) as for
|
||
|
||
ASCII DXF files. The DXFIN command automatically recognizes a binary
|
||
|
||
file (by means of its sentinel string) and loads the file. There is
|
||
|
||
no need for you to identify it as a binary file.
|
||
|
||
|
||
|
||
If DXFIN encounters an error in a binary DXF file, it reports the
|
||
|
||
byte address within the file where the error was detected.
|
||
|
||
|
||
|
||
|
||
|
||
Binary Drawing Interchange (DXB) Files
|
||
|
||
**************************************
|
||
|
||
|
||
|
||
The DXF file formats described earlier in this chapter are complete
|
||
|
||
representations of an AutoCAD drawing that can be written and read
|
||
|
||
by AutoCAD and other programs. However, AutoShade and programs
|
||
|
||
executed via the external commands facility (chapter 3) often need
|
||
|
||
to supply simple geometric input to AutoCAD. For these purposes,
|
||
|
||
another file format even more compact than the binary DXF format is
|
||
|
||
supported. This format, called DXB (for drawing interchange binary)
|
||
|
||
is limited in the entities it can represent.
|
||
|
||
|
||
|
||
|
||
|
||
DXBIN Command
|
||
|
||
=============
|
||
|
||
To load a DXB file produced by a program such as AutoShade, enter
|
||
|
||
the DXBIN command:
|
||
|
||
|
||
|
||
Command: dxbin
|
||
|
||
|
||
|
||
When AutoCAD prompts you, respond with the name of the file you want
|
||
|
||
to load. You don't need to include a file type; .dxb is assumed.
|
||
|
||
|
||
|
||
|
||
|
||
DXB File Format
|
||
|
||
===============
|
||
|
||
IMPORTANT: This information is for experienced programmers and is
|
||
|
||
subject to change without notice.
|
||
|
||
|
||
|
||
The format of a DXB file is as follows:
|
||
|
||
|
||
|
||
Header: "AutoCAD DXB 1.0" CR LF ^Z NUL (19 bytes)
|
||
|
||
Data: Zero or more data records
|
||
|
||
Terminator: NUL (1 byte)
|
||
|
||
|
||
|
||
Each data record begins with a single byte identifying the record
|
||
|
||
type, followed by data items. The data items have various forms of
|
||
|
||
representation and encoding. In the descriptions following, each
|
||
|
||
data item is prefixed with a letter and a hyphen. The meaning of the
|
||
|
||
letter codes is as follows:
|
||
|
||
|
||
|
||
w- 16-bit integer, byte reversed in the standard 80x86 style
|
||
|
||
(least- significant byte first, most-significant byte second).
|
||
|
||
|
||
|
||
f- IEEE 64-bit floating-point value stored with lsb first, msb
|
||
|
||
last (as stored by an 80x87).
|
||
|
||
|
||
|
||
l- 32-bit integer with the bytes reversed 80x86 style.
|
||
|
||
|
||
|
||
n- Number which may be either a 16-bit integer or a floating-point
|
||
|
||
number depending on the most recent setting of the number mode
|
||
|
||
data item. The number mode defaults to 0, signifying integers.
|
||
|
||
If set to 1, all n- items will be read as floating-point.
|
||
|
||
|
||
|
||
u- Item which is either a 32-bit integer or a floating-point
|
||
|
||
number depending on the most recent number mode setting. If a
|
||
|
||
32-bit integer, the value is scaled by multiplying it by 65536
|
||
|
||
(2^16). If a floating-point value, no scaling is applied.
|
||
|
||
|
||
|
||
a- Item representing an angle. If number mode is integer, this is
|
||
|
||
a 32-bit integer representing an angle in units of millionths
|
||
|
||
of a degree (range 0 to 360,000,000). If a floating-point
|
||
|
||
number, represents degrees.
|
||
|
||
|
||
|
||
In the following table, the lengths include the item-type byte and
|
||
|
||
assume the number mode is set to zero (integer mode). If number mode
|
||
|
||
is floating-point, add 6 bytes to the length for each n- item
|
||
|
||
present and 4 bytes for each a-, or u- item present.
|
||
|
||
|
||
|
||
Table 11-20. Byte length for item types
|
||
|
||
+==================================================================+
|
||
|
||
| Item type | Code | Data items | Length |
|
||
|
||
| |(decimal) | |(bytes) |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Line | 1 | n-fromx n-fromy | 13 |
|
||
|
||
| | | n-tox n-toy | |
|
||
|
||
| | | n-fromx n-fromy n-fromz | |
|
||
|
||
| | | n-tox n-toy n-toz | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Point | 2 | n-x n-y | 5 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Circle | 3 | n-ctrx n-ctry n-rad | 7 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Arc | 8 | n-ctrx n-ctry n-rad | 19 |
|
||
|
||
| | | a-starta a-enda | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Trace | 9 | n-x1 n-y1 n-x2 n-y2 | 17 |
|
||
|
||
| | | n-x3 n-y3 n-x4 n-y4 | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Solid | 11 | n-x1 n-y1 n-x2 n-y2 | 17 |
|
||
|
||
| | | n-x3 n-y3 n-x4 n-y4 | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Seqend | 17 | (none) | 1 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Polyline | 19 | w-closureflag | 3 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Vertex | 20 | n-x n-y | 5 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| 3Dface | 22 | n-x1 n-y1 n-z1 | 25 |
|
||
|
||
| | | n-x2 n-y2 n-z2 | |
|
||
|
||
| | | n-x3 n-y3 n-z3 | |
|
||
|
||
| | | n-x4 n-y4 n-z4 | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Scale Factor | 128 | f-scalefac | 9 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| New Layer | 129 | "layername" NUL |layername |
|
||
|
||
| | | |length + 2|
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Line | 130 | n-tox n-toy | 5 |
|
||
|
||
| Extension | | | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Trace | 131 | n-x3 n-y3 n-x4 n-y4 | 9 |
|
||
|
||
| Extension | | | |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Block Base | 132 | n-bx n-by | 5 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Bulge | 133 | u-2h/d | 5 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Width | 134 | n-startw n-endw | 5 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| Number Mode | 135 | w-mode | 3 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| New Color | 136 | w-colornum | 3 |
|
||
|
||
|---------------|----------|----------------------------|----------|
|
||
|
||
| 3Dline | 137 | n-tox n-toy n-toz | 7 |
|
||
|
||
| Extension | | | |
|
||
|
||
+------------------------------------------------------------------+
|
||
|
||
|
||
|
||
The Line Extension item extends the last line or line extension from
|
||
|
||
its To point to a new To point:. The Trace Extension item similarly
|
||
|
||
extends the last trace solid, or Trace Extension from its x3,y3-
|
||
|
||
x4,y4 ending line to a new x3,y3--x4,y4 line.
|
||
|
||
|
||
|
||
The Scale Factor is a floating-point value by which all integer
|
||
|
||
coordinates are multiplied to obtain the floating-point coordinates
|
||
|
||
used by the actual entities. The initial scale factor when a file is
|
||
|
||
read is 1.0. The New Layer item creates a layer if none exists,
|
||
|
||
giving the new layer the same defaults as the LAYER New command, and
|
||
|
||
sets that layer as the current layer for subsequent entities. At the
|
||
|
||
end of the DXB file load, the layer in effect before the command is
|
||
|
||
restored.
|
||
|
||
|
||
|
||
The Block Base item specifies the base (origin) point of a created
|
||
|
||
Block. The Block base must be defined before the first entity record
|
||
|
||
is encountered. If DXB is not defining a Block, this specification
|
||
|
||
will be ignored.
|
||
|
||
|
||
|
||
A Polyline consists of straight segments of fixed width connecting
|
||
|
||
the vertices, except as overridden by the Bulge and Width items
|
||
|
||
described below. The closure flag should be 0 or 1; if it is 1, then
|
||
|
||
there is an implicit segment from the last vertex (immediately
|
||
|
||
before the Seqend) to the first vertex.
|
||
|
||
|
||
|
||
A Bulge item, encountered between two Vertex items (or after the
|
||
|
||
last Vertex of a closed Polyline), indicates that the two vertices
|
||
|
||
are connected by an arc rather than a straight segment. If the line
|
||
|
||
segment connecting the vertices would have length d, and the
|
||
|
||
perpendicular distance from the midpoint of that segment to the arc
|
||
|
||
is h, then the magnitude of the Bulge is (2 * h / d). The sign is
|
||
|
||
negative if the arc from the first vertex to the second is
|
||
|
||
clockwise. A semicircle thus has a bulge of 1 (or -1). If the number
|
||
|
||
mode is 0 (integer), Bulge items are scaled by 2 16. If the number
|
||
|
||
mode has been set to floating-point, then the floating-point value
|
||
|
||
supplied is just 2*h/d (not scaled).
|
||
|
||
|
||
|
||
The Width item indicates the starting and ending widths of the
|
||
|
||
segment (straight or curved) connecting two vertices. This width
|
||
|
||
stays in effect until the next width item or the Seqend. If there is
|
||
|
||
a Width item between the Polyline item and the first Vertex, it is
|
||
|
||
stored as a default width for the Polyline; this saves considerable
|
||
|
||
database space if the Polyline has several segments of this width.
|
||
|
||
|
||
|
||
The Number Mode item controls the mode of items with types given in
|
||
|
||
the table above as n-, a-, or u-. If the value supplied is zero,
|
||
|
||
these values will be integers, otherwise floating-point. The storage
|
||
|
||
and implicit scaling conventions for these values in both modes are
|
||
|
||
described earlier.
|
||
|
||
|
||
|
||
Lines share the same cells to remember the last to-point, so you
|
||
|
||
shouldn't mix extension groups for the two entities without an
|
||
|
||
initial group before the extension. There is no extension group for
|
||
|
||
3Dfaces, as there's no obvious edge to extend from.
|
||
|
||
|
||
|
||
The New Color group specifies the color for subsequent entities in
|
||
|
||
the DXB file. The w-colornum word argument is in the range from 0 to
|
||
|
||
256. 0 means color by block, 1-255 are the standard AutoCAD colors,
|
||
|
||
and 256 means color by layer. A color outside the range from 0 to
|
||
|
||
256 sets the color back to the current entity color (you can do this
|
||
|
||
deliberately, and it can be quite handy). The initial entity color
|
||
|
||
of material added by DXBIN is the current entity color.
|
||
|
||
|
||
|
||
All points specified in the DXB file are interpreted in terms of the
|
||
|
||
current UCS at the time the DXBIN command is executed.
|
||
|
||
|
||
|
||
|
||
|
||
Writing DXB Files
|
||
|
||
=================
|
||
|
||
There is no direct AutoCAD command to write a DXB file, but the
|
||
|
||
special ADI plotter driver can write such a file. If you want to
|
||
|
||
create a DXB file from an AutoCAD drawing, configure the ADI plotter
|
||
|
||
and select its DXB file output option.
|
||
|
||
|
||
|
||
|
||
|
||
Initial Graphics Exchange Specification (IGES) Files
|
||
|
||
****************************************************
|
||
|
||
|
||
|
||
Using the commands described in this section, you can instruct
|
||
|
||
AutoCAD to read and write IGES-format interchange files.
|
||
|
||
|
||
|
||
NOTE: The format of IGES files and the mapping performed to
|
||
|
||
translate between AutoCAD drawing information and IGES are described
|
||
|
||
in the separate AutoCAD/IGES Interface Specifications document.
|
||
|
||
|
||
|
||
IGESOUT Command
|
||
|
||
===============
|
||
|
||
You can generate an Initial Graphics Exchange Specification (IGES)
|
||
|
||
interchange file from an existing AutoCAD drawing by means of the
|
||
|
||
IGESOUT command:
|
||
|
||
|
||
|
||
Command: igesout
|
||
|
||
|
||
|
||
When AutoCAD prompts you, respond with a filename or press 5 to
|
||
|
||
accept the default.
|
||
|
||
|
||
|
||
The default name for the output file is the same as that of the
|
||
|
||
current drawing, but with a file type of .igs. If you specify an
|
||
|
||
explicit filename without including a file type, .igs is assumed. If
|
||
|
||
a file with the same name already exists, it is deleted. If FILEDIA
|
||
|
||
is on, and a file with the same name already exists, AutoCAD tells
|
||
|
||
you; allowing you to OK or cancel the deletion.
|
||
|
||
|
||
|
||
IGESIN Command
|
||
|
||
==============
|
||
|
||
An IGES interchange file can be converted into an AutoCAD drawing by
|
||
|
||
means of the IGESIN command:
|
||
|
||
|
||
|
||
Command: igesin
|
||
|
||
|
||
|
||
When AutoCAD prompts you, respond with the name of the IGES file to
|
||
|
||
be loaded.
|
||
|
||
|
||
|
||
To load a complete IGES file, you must use IGESIN in an empty
|
||
|
||
drawing, before any entities have been drawn and before any
|
||
|
||
additional Block definitions, layers, linetypes, text styles, named
|
||
|
||
views, named coordinate systems, or named viewport configurations
|
||
|
||
have been created.
|
||
|
||
|
||
|
||
NOTE: If the drawing you are using as a prototype is not empty, you
|
||
|
||
might find it helpful to open a new drawing using the No
|
||
|
||
Prototype... button of the Create New Drawing dialogue box, as
|
||
|
||
described in chapter 4 of the AutoCAD Reference Manual. You should
|
||
|
||
also be aware that some third-party applications include an acad.lsp
|
||
|
||
or .mnl file that modifies your drawing upon startup.
|
||
|
||
|
||
|
||
If a serious error is encountered, the input process stops and an
|
||
|
||
error message is displayed reporting where the error was found. The
|
||
|
||
partial drawing is not discarded.
|
||
|
||
|