明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2675|回复: 3

做过 dxf 研究的进来

[复制链接]
发表于 2008-4-29 17:39:00 | 显示全部楼层 |阅读模式

最近做毕业设计《dxf文件解读与应用》,我的任务就是读取dxf文件中的二维图元,把它们的坐标等信息存放在解读文件中。
读取图元倒是没有问题,现在我已经做出框架了,并已经能够读取点、线段和圆了。而且通吃R2.5\R2.6\R9\R10\R11-12\R13\R14\2000-2002\2004-2005-2006\2007-2008等各种版本的dxf文件。
程序能够读取dxf文件中的点、线段和圆等图形的坐标等信息,放在配置文件中。
格式如下:

[Point]
X=326.6078477381652
Y=240.5280832292311
[Point]
X=273.248217791049
Y=121.5363578482403
[Line]
StartX=203.7634235075645
StartY=157.2901380635241
EndX=346.8375975232752
EndY=176.0424335210514
[Circle]
X=193.1393992559836
Y=151.4289937780043
Radius=66.34630654827721

虽然程序写的差不多了,但是苦于对AutoCAD不熟悉,导致对一些基本信息还是理解不很透彻,其实就是对dxf文件HEADER段的一些东西还有些疑问。分条说明。

1.关于dxf文件的度量单位读取问题(公制 or 英制)。
经过研究,在R14到autocad 2008版本的dxf文件中可以直接读取HEADER段的标题变量$measurement来获得度量单位,该变量的值为0时为英制,为1时是公制。
但是在R14以下的dxf文件中却没有变量$measurement。导致一些问题,经过分析,发现在R11、R12、R13版本的dxf中可以读取标题变量$DIMSTYLE来区分度量单位,该变量为值为ISO-25时为公制,为STANDARD时是英制。
但是新的问题又来了,在R2.5、R2.6、R9、R10版本的dxf中这两个变量都不存在。晕啊。。
请熟悉的朋友说明一下这种方法是否正确。

2.图纸大小问题。怎么读取?
我现在用的方法是读取HEADER段标题变量$EXTMAX得到图形范围右上角点的坐标,再读取$EXTMIN得到图形范围左下角点的坐标,然后计算出图纸大小。由于一直没有找到相关资料,这个问题到现在都是心里的一块石头。希望了解的朋友详细告知。

3.dxf或者说cad的坐标系问题,还有比例问题
因为后面有人要用我的程序生成数据,例如,要用我生成的配置文件中的圆去打孔,就涉及到一个坐标问题和比例问题,
比如上面的圆
[Circle]
X=193.1393992559836
Y=151.4289937780043
Radius=66.34630654827721

这是直接从dxf中读取的数据,X是圆心的X坐标,Y是圆心的Y坐标,Radius是圆的半径。
现在我就想问上面的数据是绝对数据么?对cad的比例不了解,如果cad里画图的时候用的比例不是1:1的话,那么生成的dxf文件的数据是相对的,还是按比例换算好的了??也就是说dxf文件中的数据都是绝对数据么??
还有别人读取这个圆的数据后,怎么确定圆的位置,虽然有坐标,但是这个坐标系是怎么建立的。是约定俗成的还是在dxf文件中有相应的信息说明。

就这几个问题了,请熟悉的朋友指点一下。 非常感谢。
发表于 2008-9-4 09:56:00 | 显示全部楼层

实际上,我的理解这个坐标是wcs坐标,就是世界坐标系。

不管,放大缩小始终是不变的。

只不过在屏幕显示的时候,x,y轴的比例因子,和画布的大小在实时发生变化。

给你一个附件,在网上找到的delphi7源码,主要是解析r12格式的。

放大,缩小,居中,复制出来,都可以。

不过我发现,保存的r12格式,需要作调整,否则用autocad2000不能打开。

这个李子,主要就是坐标转换这部分,我在网上只找到这一个例子,希望对你有帮助。

发表于 2008-9-4 09:59:00 | 显示全部楼层
再试一次
发表于 2008-9-4 10:01:00 | 显示全部楼层

没办法,怎么传也不成功。

你只能自己找了, dxf_3_0.zip

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

本版积分规则

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

GMT+8, 2024-11-25 15:21 , Processed in 0.177788 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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