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 + -
显示快捷键?