明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2099|回复: 1

vba生成dxf文件方法小议,另有dxf问题请教大家

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

在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。
请问这个可以做到吗?

请各位指教我!
谢谢。

发表于 2006-4-18 21:38:00 | 显示全部楼层
帮助里有Dxf文件的格式,你先看看吧,最近太忙:),没时间研究:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 06:21 , Processed in 0.165375 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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