做过 dxf 研究的进来
<p>最近做毕业设计《dxf文件解读与应用》,我的任务就是读取dxf文件中的二维图元,把它们的坐标等信息存放在解读文件中。 <br/>读取图元倒是没有问题,现在我已经做出框架了,并已经能够读取点、线段和圆了。而且通吃R2.5\R2.6\R9\R10\R11-12\R13\R14\2000-2002\2004-2005-2006\2007-2008等各种版本的dxf文件。 <br/>程序能够读取dxf文件中的点、线段和圆等图形的坐标等信息,放在配置文件中。 <br/>格式如下: </p><dl class="code"><dt><!--Element not supported - Type: 8 Name: #comment--><br/>X=326.6078477381652<br/>Y=240.5280832292311<br/><br/>X=273.248217791049<br/>Y=121.5363578482403<br/><br/>StartX=203.7634235075645<br/>StartY=157.2901380635241<br/>EndX=346.8375975232752<br/>EndY=176.0424335210514<br/><br/>X=193.1393992559836<br/>Y=151.4289937780043<br/>Radius=66.34630654827721<br/><br/>虽然程序写的差不多了,但是苦于对autocad不熟悉,导致对一些基本信息还是理解不很透彻,其实就是对dxf文件HEADER段的一些东西还有些疑问。分条说明。 <br/><br/>1.关于dxf文件的度量单位读取问题(公制 or 英制)。 <br/>经过研究,在R14到autocad 2008版本的dxf文件中可以直接读取HEADER段的标题变量$measurement来获得度量单位,该变量的值为0时为英制,为1时是公制。 <br/>但是在R14以下的dxf文件中却没有变量$measurement。导致一些问题,经过分析,发现在R11、R12、R13版本的dxf中可以读取标题变量$DIMSTYLE来区分度量单位,该变量为值为ISO-25时为公制,为STANDARD时是英制。 <br/>但是新的问题又来了,在R2.5、R2.6、R9、R10版本的dxf中这两个变量都不存在。晕啊。。 <br/>请熟悉的朋友说明一下这种方法是否正确。 <br/><br/>2.图纸大小问题。怎么读取? <br/>我现在用的方法是读取HEADER段标题变量$EXTMAX得到图形范围右上角点的坐标,再读取$EXTMIN得到图形范围左下角点的坐标,然后计算出图纸大小。由于一直没有找到相关资料,这个问题到现在都是心里的一块石头。希望了解的朋友详细告知。 <br/><br/>3.dxf或者说cad的坐标系问题,还有比例问题 <br/>因为后面有人要用我的程序生成数据,例如,要用我生成的配置文件中的圆去打孔,就涉及到一个坐标问题和比例问题, <br/>比如上面的圆 <br/></dt><dt><!--Element not supported - Type: 8 Name: #comment--><br/>X=193.1393992559836<br/>Y=151.4289937780043<br/>Radius=66.34630654827721</dt><dt><br/>这是直接从dxf中读取的数据,X是圆心的X坐标,Y是圆心的Y坐标,Radius是圆的半径。 <br/>现在我就想问上面的数据是绝对数据么?对cad的比例不了解,如果cad里画图的时候用的比例不是1:1的话,那么生成的dxf文件的数据是相对的,还是按比例换算好的了??也就是说dxf文件中的数据都是绝对数据么?? <br/>还有别人读取这个圆的数据后,怎么确定圆的位置,虽然有坐标,但是这个坐标系是怎么建立的。是约定俗成的还是在dxf文件中有相应的信息说明。 <br/><br/>就这几个问题了,请熟悉的朋友指点一下。 非常感谢。<br/></dt></dl> <p>实际上,我的理解这个坐标是wcs坐标,就是世界坐标系。</p><p>不管,放大缩小始终是不变的。</p><p>只不过在屏幕显示的时候,x,y轴的比例因子,和画布的大小在实时发生变化。</p><p>给你一个附件,在网上找到的delphi7源码,主要是解析r12格式的。</p><p>放大,缩小,居中,复制出来,都可以。</p><p>不过我发现,保存的r12格式,需要作调整,否则用autocad2000不能打开。</p><p>这个李子,主要就是坐标转换这部分,我在网上只找到这一个例子,希望对你有帮助。</p> 再试一次 <p>没办法,怎么传也不成功。</p><p>你只能自己找了, dxf_3_0.zip</p>
页:
[1]