Strings in DXF.TXT


Drawing Interchange and File Formats 
Release 12
Copyright (c) 1982-1990, 1992, Autodesk, Inc.
All Rights Reserved
Chapter 11
Drawing Interchange and File Formats
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 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 [ENTER] 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 [ENTER] 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.
* Linetype table (LTYPE)
* Layer table (LAYER)
* Text Style table (STYLE)
* View table (VIEW)
* User Coordinate System table (UCS)
* Viewport configuration table (VPORT)
* Dimension Style table (DIMSTYLE)
* 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 13--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 14). 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 war.
Table 11-1. Group code ranges
Group Code Range Following Value
0-9 String
10-59 Floating-point
60-79 Integer
140-147 Floating-point
170-175 Integer
210-239 Floating-point
999 Comment (string)
1000-1009 String
1010-1059 Floating-point
1060-1079 Integer
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,
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, 220. 230 X, Y, and Z components of extrusion direction
(fixed)
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,1020,1030 Extended entity data X, Y, and Z coordinates
1011,1021,1031 Extended entity data X, Y, and Z coordinates of
3D world space position
1012,1022,1032 Extended entity data X, Y, and Z components of 3D
world space displacement
1013,1023,1033 Extended entity data X, Y, and Z components of 3D
world space direction
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:
This is a comment.
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
HEADER
<<<<Header variable items go here>>>>
ENDSEC (End HEADER section)
0 (Begin TABLES section)
SECTION
TABLES
TABLE
VPORT
(viewport table maximum item count)
<<<<viewport table items go here>>>>
ENDTAB
TABLE
APPID, DIMSTYLE, LTYPE, LAYER, STYLE, UCS, VIEW, or VPORT
(Table maximum item count)
<<<<Table items go here>>>>
ENDTAB
ENDSEC (End TABLES section)
0 (Begin BLOCKS section)
SECTION
BLOCKS
<<<<Block definition entities go here>>>>
ENDSEC (End BLOCKS section)
0 (Begin ENTITIES section)
SECTION
ENTITIES
<<<<Drawing entities go here>>>>
ENDSEC (End ENTITIES section)
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, 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 d 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
SDIMTOH 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,30 X, Y, and Z drawing extents
upper-right corner (in WCS)
$EXTMIN 10,20,30 X, Y, and Z drawing extents
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,30 Insertion base set by BASE command
(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,30 Maximum X, Y, and Z extents for
paper space
$PEXTMIN 10,20,30 Minimum X, Y, and Z extents for
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,30 Current paper space UCS origin
$PUCSXDIR 10,20,30 Current paper space UCS X axis
$PUCSYDIR 10,20,30 Current paper space UCS Y axis
$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,30 Origin of current UCS (in WCS)
$UCSXDIR 10,20,30 Direction of current UCS's X axis
(in World coordinates)
$UCSYDIR 10,20,30 Direction of current UCSs Yaxis (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,30 Viewing direction (direction from
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 297.
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 value Meaning
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 (dimmd), 46
(dimdle), 47 (dimtp), 48 (dimtm), 140 (dimtxt), 141
(dimcen), 142 (dimtsz), 143 (dimaltf), 144 (dimifac),
145 (dimtvp), 146 (dimtfac), 147 (dimgap), 71 (dimtol),
72 (dimlim), 73 (dimtih), 74 (dimtoh), 75 (dimsel), 76
(dimse2), 77 (dimtad), 78 (dimzin), 170 (dimalt), 171
(dimaltd), 172 (dimtofl), 173 (dimsah), 174 (dimtix),
175 (dimsoxd), 176 (dimcird), 177 (dimcire), 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 value Meaning
1 If set, layer is frozen
2 If set, layer is frozen by default in new
Viewports
3 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 value Meaning
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
(lowerleft 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
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. ff 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 special
name BYBLOCK indicates a floating linetype BYLAYER
38 Elevation (if nonzero). Exists only in output
from versions prior to R11. Otherwise, Z
coordinates are supplied as 3x-groups as part
of each of the entity's defining points 0
39 Thickness (if nonzero) 0
62 Color number (if not BYLAYER). Zero indicates
the BYBLOCK (floating) color. 256 indicates
the BYLAYER color BYLAYER
67 Absent or zero indicates entity is in model
space. One indicates entity is in paper space,
other values are reserved 0
210, These groups are included for each Line, Point,
220, Circle, Shape, Text, Arc, Trace, Solid, Block
230 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 0,0,1
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 value Meaning
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
bitcoded) 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 value Meaning
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 (Yscale 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" Bag 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 258 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 258),
72 (horizontal text justification type -optional 0, see
"Text" on page 258), 74 (vertical text justification
type -optional 0 see group 73 in "Text" on page 258),
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 value Meaning
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 258 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 258), 72
(horizontal text justification type -optional 0, see
"Text" on page 258), 74 (vertical text justification
type -optional 0, see group 73 in "Text" on page 258),
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 value Meaning
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 value Meaning
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 value Meaning
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
Value Meaning
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.
Figure 11-1. Linear dimensioning coordinate group codes
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.
Figure 11-2. Angular dimensioning coordinate group codes
Angular (15,25,35) The vertex of the angle.
(3-point) (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.
Figure 11-3. Angular (3-point) dimensioning coordinate group
codes
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.
Figure 11-4. Diameter dimensioning coordinate group codes
Radius (15,25,35) The point used to pick
the circle/arc to
dimension.
(10,20,30) The center of that
circle.
Figure 11-5. Radius dimensioning coordinate group codes
Ordinate (13,23,33) The point used to select
the feature.
(14,24,34) The point used to locate
the leader end point.
Figure 11-6. Ordinate dimensioning coordinate group codes
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:
* Its origin coincides with the WCS origin.
* 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, 3D These entities do not lie in a
Polyline, 3d vertex, 3D particular plane. All points are
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, Shape, nature. All points are expressed in
Insert, 2D Polyline, 2D Entity coordinates. All of these
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:
* 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.
* 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:
* You cannot reliably find out what UCS was in effect when an
entity was acquired.
* 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.
* 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 (N ) < 1/64) then
Ax = Wy x N (where "x" is the cross-product operator).
Otherwise,
Ax = Wz X N.
Scale Ax to unit length.
The method of getting the Ay vector would be:
Ay = N x 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.
Figure 11-7. Example of extended entity data
*** INSERT FIGURE HERE ***
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 Description
code
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 bytes
long (the 32d byte is reserved for the
null character). 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 1002 An extended data control string can be
string 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 drawing
handle 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 X, Y,
1020, They can be used as a point or vector
1030 record. AutoCAD never alters their
value
World space 1011, Unlike a simple 3D point, the World
space
position 1021, coordinates are moved, scaled, rotated,
1031 and mirrored along with the parent
entity to which the extended data
belongs. The world space position is
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,
rotated,
displacement 1022, and mirrored along with the parent (but
1032 not moved or stretched)
World 1013, Also a 3D point that is rotated and
direction 1023, mirrored along with the parent (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(TM) 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";
Gl% : 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 FORI% = 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:
* A two-byte integer with the least-significant byte first and
the most-significant byte last.
* An eight-byte IEEE double precision floating-point number
stored with the least-significant byte first and the
most-significant byte last.
* 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 (19bytes)
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 8Ox86
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 8Ox87).
l- 32-bit integer with the bytes reversed 8Ox86 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 anteed 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-colomum 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-colomum 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
(ENTER) 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
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.