在vba里,可以有多种途径生成dxf文件。
1 比较“正统”的4个方法:
a. saveas 在里面可以选择版本,比如dxf2000格式等。 如 ThisDrawing.SaveAs ...
b. export 无法选择版本。 如 ThisDrawing.Export "a.dxf",abc 注:abc系一个选择集,但是export成dxf格式是忽略选择集的,你任选一个选择集就好了。总是输出整个文件。
c wblock.这个是把一个选择集输出成dxf。可以很方便的在选择集中自定义好要输出的内容。 如 ThisDrawing.Wblock "a.dxf",abc
d objectDBX 这个当然也可以做到。在vba里加载DBX类库后,用dxfout方法就可以了。 如: Dim ob As Object Set ob = CreateObject("ObjectDBX.AxDbDocument.16") ob.DxfOut "c:\2.dxf"
2 其他方法 比如用sendcommand,调用lisp或者arx的输出dxf模块,甚至于自己用文本形式创建一个dxf文件。。。。。。
3 前面所述4个dxf生成办法所得到文件的简单比较 。
a saveas和objectDBX生成的dxf体积最大,export明显减小,wblock生成的最小。肯定是省略了很多默认的内容。 b 即使选择AutoCAD最高的精度输出形式--16位小数,各个dxf文件在例如坐标等的浮点小数值仍有不同。一般最末 1-2位会有差异。 c 不同办法生成的dxf,其5组码,即句柄一般是不一样的。 d 有的时候,在dxf文件中记录实体的顺序也会变化。其他比如class,tables以及某些系统变量的值多少都会有差异。
下面是小弟的问题: 如果在不用saveas的前提下,指定生成dxf文件的版本? 前文所说的三个办法好像都无法指定dxf文件的版本,小弟才疏学浅,也没在dxf文件中发现版本号的记录地。 我的想法是能在程序中指定dxf文件的生成版本,但是不能用saveas。 请问这个可以做到吗?
请各位指教我! 谢谢。
|