明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1870|回复: 5

求助:关于DXF文件格式

[复制链接]
发表于 2005-9-17 10:24:00 | 显示全部楼层 |阅读模式

要做一个对AutoCAD中所使用的DXF文件格式的一个转换程序,因为DXF文件格式既能描绘二维图形也能描述三维实体,而要转换成的目标文件格式只能描述二维矢量图形,所以先要确定要转换的DXF文件描述的是三维图形还是二维的,由此做出相应的处理。在这里想要问下各位:

(1)在DXF文件格式里,二维和三维的区分是在源码中某一处通过某个组码有专门的区分,还是仅仅是如果是三维的话,每个Z坐标有对应的数值,而如果是二维的话,每个Z坐标数值都为0 ?

(2)同时还想问一下,DXF文件中Image这个实体,它在源码中是怎么被描述的?是通过描述每一个像素点的位置来组成这样一幅图像的吗?

发表于 2005-9-17 15:28:00 | 显示全部楼层
如果仅仅转换个别组码还比较简单。对象复杂了就得深入研究了。
发表于 2005-9-17 22:31:00 | 显示全部楼层

1、不用管二维三维,读取DXF时只读取可识别实体的X、Y坐标即可。

2、一般IMAGE文件只启记录文件名。

 楼主| 发表于 2005-9-19 08:59:00 | 显示全部楼层

但是对于一个三维的DXF图形文件表示,若是想要写入二维的图形目标文件,单单忽略掉其Z坐标值,认为写入x,y值就够了,这样不妥吧?

我的想法是有没有什么地方可以区分二维三维的DXF图形,若能区分,对于二维的当然是直接取x,y坐标值,对于三维的要么提示是三维的图形不做处理,不然复杂点的话应该是做三视图一类的变换之后再处理吧?

发表于 2005-9-19 14:28:00 | 显示全部楼层

三维实体的组码可以不读,只读ARC、CIRCLE、LINE、POLYLINE即可。或者凡是Z坐标不为零的忽略。

顺便问一下,楼主读DXF是做什么转换?

 楼主| 发表于 2005-9-20 09:45:00 | 显示全部楼层

line,circle,ellipse,lwpolyline,arc,text,mtext这些图元组码已经转换了~如果说“凡是Z坐标不为0的忽略”,这样子转换出来的图形同原来的图象相比,必然丢失了太多信息会造成图形较大层面上的失真,还不如如果判断到源DXF文件包含到三维实体,就放弃对整个源DXF图像的处理,仅仅给出用户提示说明。

在这种情况下,要考虑的事情自然就变成:如果说DXF源文件在某一处有专门的组码来对其是二维DXF文件还是三维DXF文件作说明的话,这样我的程序只需读取那个组码值即可直接判断。但如果没有的话,恐怕我只有一一读取实体,然后判断它是不是存在着实体其Z值不为0的,一旦判断到就结束整个程序放弃处理……(傻不傻啊~)

现在还要处理dimension,image,insert还有复杂曲线等……要死了T-T

顺便回楼上的,是做DXF文件至SVG的转换~

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 06:36 , Processed in 0.162428 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表