Extension Dictionary and Persistent Reactors
Advanced DXF Issues
Object Coordinate Systems (OCS)
Extended data (xdata) is created
by AutoLISP or ObjectARX applications. If an entity contains extended
data, it follows the entity's normal definition data. The group
codes 1000 through 1071 describe extended data. The following is
an example of an entity containing extended data in DXF format.
Normal entity definition
data:
0
INSERT
5
F11
100
AcDbEntity
8
TOP
100
AcDbBlockReference
2
BLOCK_A
10
0.0
20
0.0
30
0.0
Extended entity definition
data:
1001
AME_SOL
1002
{
1070
0
1071
1.95059E+06
1070
519
1010
2.54717
1020
2.122642
1030
2.049201
1005
ECD
1005
EE9
1005
0
1040
0.0
1040
1.0
1000
MILD_STEEL
The group code 1001 indicates the beginning
of extended data. In contrast to normal entity data, with extended
data the same group code can appear multiple times,
and order is
important.
Extended data is grouped
by registered application name. Each registered application group
begins with a 1001 group code, with the application name as the
string value. Registered application names correspond to APPID symbol
table entries.
An application can use as
many APPID names as needed. 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 group, the sequence of extended
data groups and their meaning is defined by the application.
The extended data
group codes are listed in the following table.
Extended data group codes
and descriptions
|
Entity name
|
Group code
|
Description
|
String
|
1000
|
Strings in extended data
can be up to 255 bytes long (with the 256th byte reserved for the
null character)
|
Application name
|
1001
also a string value
|
Application names can be
up to 31 bytes long (the 32nd byte is reserved for the null character)
NoteDo
not add a 1001 group into your extended data because AutoCAD assumes
it is the beginning of a new application extended 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 the right brace terminates
the most recent list. Lists can be nested
When AutoCAD reads the
extended data for a particular application, it checks to ensure
that braces are balanced
|
Layer name
|
1003
|
Name of the layer associated
with the extended data
|
Binary data
|
1004
|
Binary data is organized
into variable-length chunks.
The maximum length of each chunk is 127 bytes. In ASCII DXF files,
binary data is represented as a string of hexadecimal digits, two
per binary byte
|
Database handle
|
1005
|
Handles of entities in the
drawing database
NoteWhen
a drawing with handles and extended data handles is imported into
another drawing using INSERT, INSERT *, XREF Bind, XBIND, or partial
OPEN, the extended 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 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, 1020, 1030
|
Three real values, in the
order X, Y, Z. They
can be used as a point or vector record. AutoCAD never alters
their value
|
World space position
|
1011, 1021, 1031
|
Unlike a simple 3D point,
the world space coordinates are moved, 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 displacement
|
1012, 1022, 1032
|
Also a 3D point that is scaled,
rotated, and mirrored along with the parent (but is not moved or
stretched)
|
World direction
|
1013, 1023, 1033
|
Also a 3D point that is rotated
and mirrored along with the parent (but is 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
|