xdata codes

Discussion in 'AutoCAD' started by elefebvre, Jun 14, 2004.

  1. elefebvre

    elefebvre Guest

    where can i find a list with all the possible XDATA codes and what type they accept?

    Emmanuel
     
    elefebvre, Jun 14, 2004
    #1
  2. elefebvre

    Jürg Menzi Guest

    Hi Emmanuel

    From Visual LISP Developer's Guide -> Using the AutoLISP Language -> Using
    AutoLISP to Manipulate AutoCAD Objects -> Extended Data--xdata -> Organization
    of Extended Data:

    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) and must adhere to the rules for
    symbol table names (such as layer names). An application name can contain
    letters, digits, and the special characters $ (dollar sign), - (hyphen), and _
    (underscore). It cannot contain spaces.

    Layer Name
    1003. Name of a layer associated with the xdata.

    Database Handle
    1005. Handle of an entity in the drawing database.

    3D Point
    1010. Three real values, contained in a point.

    Real
    1040. A real value.

    Integer
    1070. A 16-bit integer (signed or unsigned).

    Long
    1071. A 32-bit signed (long) integer. If the value that appears in a 1071 group
    is a short integer or real value, it is converted to a long integer; if it is
    invalid (for example, a string), it is converted to a long zero (0L).
    Note:
    AutoLISP manages 1071 groups as real values. If you use entget to retrieve an
    entity's definition list that contains a 1071 group, the value is returned as a
    real, as shown in the following example:
    (1071 . 12.0)
    If you want to create a 1071 group in an entity with entmake or entmod, you can
    use either a real or an integer value, as shown in the following example:
    (entmake '((..... (1071 . 12) .... )))
    (entmake '((..... (1071 . 12.0) .... )))
    (entmake '((..... (1071 . 65537.0) .... )))
    (entmake '((..... (1071 . 65537) .... )))
    But AutoLISP still returns the group value as a real:
    (entmake '((..... (1071 . 65537) .... )))
    The preceding statement returns the following:
    (1071 . 65537.0)
    ObjectARX always manages 1071 groups as long integers.

    Several other extended data groups have special meanings in this context (if the
    application chooses to use them):

    Control String
    1002. An xdata control string can be either "{" or "}". These braces enable the
    application to organize its data by subdividing it into lists. The left brace
    begins a list, and the right brace terminates the most recent list. Lists can be
    nested.
    Note:
    If a 1001 group appears within a list, it is treated as a string and does not
    begin a new application group.

    Binary Data
    1004. Binary data that is organized into variable-length chunks, which can be
    handled in ObjectARX with the ads_binary structure. The maximum length of each
    chunk is 127 bytes.
    Note:
    AutoLISP cannot directly handle binary chuncks, so the same precautions that
    apply to long (1071) groups apply to binary groups as well.

    World Space Position
    1011. Unlike a simple 3D point, the WCS coordinates are moved, scaled, rotated,
    and mirrored along with the parent entity to which the extended data belongs.
    The WCS position is also stretched when the STRETCH command is applied to the
    parent entity and when this point lies within the select window.

    World Space Displacement
    1012. A 3D point that is scaled, rotated, or mirrored along with the parent, but
    not stretched or moved.

    World Direction
    1013. A 3D point that is rotated or mirrored along with the parent, but not
    scaled, stretched, or moved. The WCS direction is a normalized displacement that
    always has a unit length.

    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.

    Cheers
     
    Jürg Menzi, Jun 14, 2004
    #2
  3. elefebvre

    Jürg Menzi Guest

    Hi Emmanuel

    Forgot to mention some important additional points (missing in help):

    1003: Layer name must exist in database
    1005: Handle must exist in database
    1071: since A2k also an Integer in LISP

    Cheers
     
    Jürg Menzi, Jun 14, 2004
    #3
  4. elefebvre

    elefebvre Guest

    thanks Jürg !! very helpful!
     
    elefebvre, Jun 15, 2004
    #4
  5. elefebvre

    Jürg Menzi Guest

    Hi Emmanuel

    Welcome... ¦-)

    Cheers
     
    Jürg Menzi, Jun 15, 2004
    #5
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.