isff.txt

来自「支持各种栅格图像和矢量图像读取的库」· 文本 代码 · 共 2,219 行 · 第 1/5 页

TXT
2,219
字号
                   * 0. Solid (SOL)                    * 1. Dotted (DOT)                    * 2. Medium dashed (MEDD)                    * 3. Long-dashed (LNGD)                    * 4. Dot-dashed (DOTD)                    * 5. Short-dashed (SHD)                    * 6. Dash double-dot (DADD)                    * 7. Long dash-short dash (LDSD)     Point coordinates-----------------MicroStation is based on a 32-bit integer design plane. Point coordinates  are specified as two or three long integers (for 2D and 3D design files,  respectively). Coordinate definitions are assigned by the following C  structures  2D   typedef struct      {      long     x                             ;      long     y                             ;      } Point2d                              ; 3D   typedef struct      {      long     x                             ;      long     y                             ;      long     z                             ;      } Point3d                              ; Sometimes a point that is not within the design plane needs to be  specified. For example, the center point for an arc may be far from the  design plane, although the design plane must completely contain the arc.  In these cases, points are specified as two or three double-precision  (64-bit), floating point values: 2D   typedef struct      {      double      x                          ;      double      y                          ;      } Dpoint2d                             ; 3D   typedef struct      {      double      x                          ;      double      y                          ;      double      z                          ;      } Dpoint3d                             ; Rotation angle (2D) and quaternion (3D)---------------------------------------In 2D design files, rotation is represented by a value, angle, that is  counterclockwise from the X-axis. Angle is a long integer with the  lower-order bit equal to .01 seconds. The conversion from angle to degrees  is expressed as follows *  Degrees = Angle/360000     In 3D design files, an element's orientation is represented by the  transformation matrix to design file coordinates. These transformations  are stored in a compressed format called quaternions. Quaternions store a  3x3 ortho-normal transformation matrix as four values rather than nine.  The mdlRMatrix_toQuat function (MDL) and the trans_to_quat routine  (MicroCSL) generate a quaternion from a transformation matrix. The  mdlRMatrix_fromQuat function (MDL) and the quat_to_trans routine  (MicroCSL) generate a transformation matrix from a quaternion. See the  documentation for these functions for details.  Attribute linkage data----------------------Any element can optionally contain auxiliary data commonly referred to as  attribute data or attribute linkage data. This data can consist of a link  to an associated database or any other information that pertains to the  element.  Attribute data that is not associated with DMRS or a  MicroStation-supported database such as Oracle is referred to as a user  linkage. A user linkage can co-exist with a database linkage or other user  linkages. MicroStation does not attempt to interpret user linkages; these  linkages are, however, maintained when MicroStation modifies an element.  When an element with a user linkage is copied, the linkage is also copied.  Therefore, multiple linkages can occur.  The format of user linkages is described below. As with other linkages,  when user linkages are present, the A-bit must be set in the properties  word. Individual user linkages cannot exceed 256 words. Multiple user  linkages can be attached to an element. The combined length of an element  and its linkages must not be greater than 768 words. Considering  worst-case element lengths, the length of the linkage area should not  exceed 140 words.  User linkages consist of a header word, a user ID word, and user-defined  data. The  U-bit in the linkage header is set to indicate that the linkage is a user  linkage. The ID word should be unique to the software package to which the  linkage applies.  Level Symbology (Type 10)-------------------------Stores the symbology (color, line style, and line weight) that elements on  a level display with in a view for which Level Symbology is on.  The values of the range are zero.  If the high bit in the next-to-last word of the range is set, then the low  three bits are flags for selectively using the three components of the  level symobology words. *  If bit 0 is clear, then use style (line code). *  If bit 1 is set, then use line weight. *  If bit 2 is set, then use color.     If the high bit in the next-to-last word of the range is clear, the color,  line weight, and line style are used.  The format of each level symbology word is the same as that for Element  symbology.  Library Cell Header (Type 1)----------------------------Library cell header elements contain information needed to create a cell in  a design file. They are found only in cell libraries.  The celltype member indicates the following types of cells:    0. Graphic cell    1. Command menu cell    2. Cursor button menu cell    3. Function key menu cell (not supported by MicroStation)    4. Matrix menu cell    5. Tutorial cell    6. Voice menu cell (not supported by MicroStation)     The C definition is as follows:   typedef struct      {      Elm_hdr           ehdr                 ;            /* element header */      short          celltype                ;           /* cell type */      short          attindx                 ;            /* attribute linkage */      long           name                    ;            /* Radix-50 cell name */      unsigned short          numwords       ;           /* # of words in description */      short          properties              ;            /* properties */      short          dispsymb                ;           /* display symbology */      short          class                   ;           /* cell class (always 0) */      short          levels[4]               ;          /* levels used in cell */      short          descrip[9]              ;            /* cell description */      } Cell_Lib_Hdr                         ;    Cell descriptions in cell libraries Cell descriptions in cell libraries-----------------------------------Each cell description in a cell library is a complex element that contains  a library cell header (type 1) followed by component graphic elements.  A cell definition can be nested -- included in another cell. A nested cell  definition is stored as a cell header (type 2) that points to a library  cell header (type 1). The component elements of a nested cell are not  repeated.  When the user places a cell in the design file in IGDS and versions of  MicroStation prior to Version 4.0, or as an unshared cell in MicroStation  Version 4.0 or later versions, it is placed as a cell header (type 2)  followed by its component elements. Each nested cell definition is placed  with its cell header (type 2) followed by its component elements.  In MicroStation Version 4.0 or later versions, when the user places the  cell in the design file as a shared cell: *  If there is no shared cell definition element for that cell in the     design file, one is created. *  If there is a shared cell definition element for that cell in the     design file, a shared cell instance element is placed in the design. *  If the cell contains a nested cell and the nested cell is not defined     as a shared cell in the design file, a shared cell definition element     is created for the nested cell. If the cell contains a nested cell and     a shared cell definition is in the design file, a shared cell instance     element is created.     Note:  Shared cell definition and shared cell instance elements are not described  in this appendix. They cannot be manipulated directly and must be accessed  with MDL built-in functions.  Cell Header (Type 2)--------------------A cell header element begins *  A nested cell definition in a cell library. *  A cell placed in a design file in IGDS and versions of MicroStation     prior to version 4.0. *  An unshared cell placed in a design file in MicroStation Version 4.0     and later versions.     2D:   typdef struct      {      Elm_hdr           ehdr                 ;         /* element header */      Disp_hdr          dhdr                 ;         /* display header */      unsigned short          totlength      ;       /* total length of cell */      long           name                    ;         /* Radix 50 name */      short          class                   ;        /* class bit map */      short          levels[4]               ;       /* levels used in cell */      Point2d           rnglow               ;       /* range block low */      Point2d           rnghigh              ;         /* range block high */      Trans2d           trans                ;        /* transformation matrix */      Point2d           origin               ;       /* cell origin */       } Cell_2d;        3D:   typedef struct      {      Elm_hdr           ehdr                 ;         /* element header */      Disp_hdr          dhdr                 ;         /* display header */      unsigned short          totlength      ;       /* total length of cell */      long           name                    ;         /* Radix 50 name */      short          class                   ;        /* class bit map */      short          levels[4]               ;       /* levels used in cell */      Point3d           rnglow               ;       /* range block low */      Point3d           rnghigh              ;         /* range block high */      Trans3d           trans                ;        /* transformation matrix */      Point3d           origin               ;       /* cell origin */       } Cell_3d;        Each cell header contains an origin (in design file coordinates) and a  transformation matrix that describe all manipulations (rotation and  scaling) from the cell library definition to the current design file  orientation. The transformation matrix is a 2x2 or 3x3 matrix stored as a  long integer with the lower-order bit equal to 4.6566E-6 (10,000231).  Note:  Shared cells are stored in the design file as shared cell definition and  shared cell instance elements. These elements are not described in this  appendix. They cannot be manipulated directly and must be accessed with  MDL built-in functions.  .   Offset                                                     Offset    cell_3d.totlength  cell_3d.name    cell_3d.class  cell_3d.levels        cell_3d.rnglow                                                                               cell_3d.rnghigh                    cell_3d.trans                                                                                          Linkage                    cell_3d.origin                                                                              Linkage     Line Elements (Type 3)----------------------Line elements consist of the header information and design plane  coordinates of the line endpoints. 2D:   typedef struct      {      Elm_hdr        ehdr                    ;      /* element header */      Disp_hdr       dhdr                    ;      /* display header */      Point2d        start                   ;     /* starting point */      Point2d        end                     ;    /* ending point */       } Line_2d;        3D:   typedef struct      {      Elm_hdr        ehdr                    ;      /* element header */      Disp_hdr       dhdr                    ;      /* display header */      Point3d        start                   ;     /* starting point */      Point3d        end                     ;    /* ending point */       } Line_3d;         Offset                                                     Offset    line_3d.start            line_3d.end           Linkage                                                                          Linkage       Line String (Type 4), Shape (Type 6), Curve (Type 11), and B-spline Pole  Element (Type 21)---------------------------------------------------------------------------Line string, shape, curve, and B-spline pole elements are represented  similarly in the design file. The header information is followed by the  number of vertices and then the coordinates of each vertex. A maximum of  101 vertices can be in an element of these types. In a shape, the  coordinates of the last vertex must be the same as the first vertex. For  curves, two extra points at the beginning and end of the vertex list  establish the curvature at the ends. Thus, a curve can have just 97  user-defined points. 2D:   typedef struct      {      Elm_hdr        ehdr                    ;         /* element header */      Disp_hdr       dhdr                    ;         /* display header */      short       numverts                   ;        /* number of vertices */      Point2d        vertice[1]              ;         /* points */      } Line_String_2d                       ; 3D:   typedef struct      {      Elm_hdr        ehdr                    ;         /* element header */      Disp_hdr       dhdr                    ;         /* display header */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?