移动应用的可用性设计有感——Just Use It
2013-07-02 14:52
309 查看
随CAD与CAM技术的不断发展,DXF文件作为一种通用格式在CAD与CAM之间传递应用,但由于不同软件之间的结构或处理方式的差异,使得DXF文件在读取中经常会出现一些故障。现将DXF文件的结构与表达关系分析如下,希望对需要处理DXF文件的读者有所帮助。
一、DXF文件结构
DXF文件是一个顺序文件,主要是由:标题段、类段、表段、块段、实体段、对象段六段组成;各段由”0” “SECTION”
开始, “0” “ENDSEC”结束。介绍如下:
1、标题段:主要描述图形的基本信息,由AUTOCAD系统变量组成,包括一个变量名和变量值。
例:(标题段)
0
SECTION
2
HEADER
9
......
0
ENDSEC
2、类段:它由程序自己定义的各种类,类的具体内容在后面的各段中。
例:(类段)
0
SECTION
2
CLASSES
......
0
ENDSEC
3、表段:它有四个表(线型表、图层表、字样表、视图表)构成。
例:
0
SECTION
2
TABLES
注:线型表
0
TABLE
2
LTYPE
......
0
ENDTAB
注:图层表
0
TABLE
2
LAYPE
......
0
ENDTAB
注:字样表
0
TABLE
2
STYLE
......
0
ENDTAB
注:视图表
0
TABLE
2
VIEW
......
0
ENDTAB
0
ENDSEC
4、块段:它由图形中块的各个参数构成。
例:
0
SECTION
2
TABLES
......
0
ENDSEC
5、实体段:它描述了实体中所有信息(如实体名称,所在图层,线型,颜色、坐标尺寸),它是所有段中能直观表现图形特征的段。
例:
0
SECTION
2
ENTITIES
0
LINE(线)
……
ENDSEC
6、对象段:包含图形中的非图形状态。
例:
0
SECTION
2
OBJECTS
0
ENDSEC
DXF图形以“0” “EOF”结束。
二、DXF文件段数据组成。
DXF文件各段均由组构成,每个组分为两行数据,第一行为组码,由自然数构成,表示第二行代码的含义。一般来说常用组码的含义是固定的,但是有些组代码会因表达环境的不同而有多个含义。在分析时需要根据不同的段和不同的表达而判断。(0:表示事物开始,1:表示事物属性中的值,2:表示事物的名字,3~5:表示事物解释
0:表示一个开始,如一个块、表、图层、实体等。6、7、8表示固定类型。如线形、图层。10以上的是用到实体段的居多,有多个含义,要具体分析。
三、DXF文件的读取错误及分析解决。
1、 出现图形读不出来或者缺少,主要原因是因为程序在读取中类建立得不完善,导致有些类数据丢失。
2、 读出来的图形多线或与原图不符,主要是读取中把其他类的读入到自己的类中造成的。
3、 读出来的图形边界不完整,主要是在编程中没有考虑数据范围,导致只能读取部分。
综上所述,要使图形读入完整,建议导出前光滑后炸开,这样所以的图形都变成小块后,读入错误会大大降低。
一、DXF文件结构
DXF文件是一个顺序文件,主要是由:标题段、类段、表段、块段、实体段、对象段六段组成;各段由”0” “SECTION”
开始, “0” “ENDSEC”结束。介绍如下:
1、标题段:主要描述图形的基本信息,由AUTOCAD系统变量组成,包括一个变量名和变量值。
例:(标题段)
0
SECTION
2
HEADER
9
......
0
ENDSEC
2、类段:它由程序自己定义的各种类,类的具体内容在后面的各段中。
例:(类段)
0
SECTION
2
CLASSES
......
0
ENDSEC
3、表段:它有四个表(线型表、图层表、字样表、视图表)构成。
例:
0
SECTION
2
TABLES
注:线型表
0
TABLE
2
LTYPE
......
0
ENDTAB
注:图层表
0
TABLE
2
LAYPE
......
0
ENDTAB
注:字样表
0
TABLE
2
STYLE
......
0
ENDTAB
注:视图表
0
TABLE
2
VIEW
......
0
ENDTAB
0
ENDSEC
4、块段:它由图形中块的各个参数构成。
例:
0
SECTION
2
TABLES
......
0
ENDSEC
5、实体段:它描述了实体中所有信息(如实体名称,所在图层,线型,颜色、坐标尺寸),它是所有段中能直观表现图形特征的段。
例:
0
SECTION
2
ENTITIES
0
LINE(线)
……
ENDSEC
6、对象段:包含图形中的非图形状态。
例:
0
SECTION
2
OBJECTS
0
ENDSEC
DXF图形以“0” “EOF”结束。
二、DXF文件段数据组成。
DXF文件各段均由组构成,每个组分为两行数据,第一行为组码,由自然数构成,表示第二行代码的含义。一般来说常用组码的含义是固定的,但是有些组代码会因表达环境的不同而有多个含义。在分析时需要根据不同的段和不同的表达而判断。(0:表示事物开始,1:表示事物属性中的值,2:表示事物的名字,3~5:表示事物解释
0:表示一个开始,如一个块、表、图层、实体等。6、7、8表示固定类型。如线形、图层。10以上的是用到实体段的居多,有多个含义,要具体分析。
三、DXF文件的读取错误及分析解决。
1、 出现图形读不出来或者缺少,主要原因是因为程序在读取中类建立得不完善,导致有些类数据丢失。
2、 读出来的图形多线或与原图不符,主要是读取中把其他类的读入到自己的类中造成的。
3、 读出来的图形边界不完整,主要是在编程中没有考虑数据范围,导致只能读取部分。
综上所述,要使图形读入完整,建议导出前光滑后炸开,这样所以的图形都变成小块后,读入错误会大大降低。
相关文章推荐
- 移动应用的可用性设计有感——Just Use It
- 【高效算法设计——跳跃枚举】Uva 11093 Just Finish it up
- 10条可用性方面的启发来源:useit.com
- ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings
- 技术人生:Knowing when or where it’s appropriate to use a technique or tool is just as important as knowing how to use it.
- Atitit.收银机小票打印功能的设计 java php c#.net版本
- Atitit.Base64编码原理与实现设计
- Just do it!
- Don‘t talk.Just do it.
- 编程设计有感
- It is just a test.
- 【编程高手】,不想再崇拜,我们也可以,just do it
- It is currently in use by another gradle instance
- IT忍者神龟之数据库设计规范
- 贴心设计:打造高可用性的移动产品
- ValueError: Attempt to reuse RNNCell <tensorflow.contrib.rnn.python.ops.core_rnn_cell_impl.BasicLSTMCell object at 0x7f1a3c448390> with a different variable scope than its first use.解决方法
- The Constructor Date(String) is Deprecated since of JDK 1.1 you should not use it
- 设计阶段如何画用例图(Use-Case Diagram) 推荐
- 移动应用设计的10个最大趋势
- Atitit.加密算法ati Aes的框架设计v2.2