zsj888 发表于 2006-11-18 18:54:00

求助:VB进行AutoCAD的二次开发的难题

我在用VB进行的二次开发中,
想在当前模型的指定位置插入两个已经存在.dwg文件,
我使用的是InsertBlock(insertionPoint,fileName,XScale,YScale,ZScale,RotateAngle)进行操作,
但是这只能确定当前模型的基点,而不能确定.dwg文件的基点。
所以往往出现较的偏差。
我的设想是把.dwg文件设置成块,但是不懂得怎么设置。
试了几种办法也不行。
有谁懂得设置?怎么设置?
或者:
把“当前模型的指定位置插入两个已经存在.dwg文件”这个问题解决?
谢谢!

zdfwyh 发表于 2006-11-20 08:46:00

实际上采用InsertBlock就是插入图块,而任何一个已存在的DWG文件都可以看成一个图块,在向当前模型空间插入图块时,只要求提供插入点,而插入点的位置是图块文件的(0,0)点,所以如何插入的图块出现偏差应将图块文件中的图形的基准点移动到(0,0)位置

szliaolj 发表于 2006-11-20 10:17:00

没错,就是这样

zsj888 发表于 2006-11-21 10:40:00

谢谢!
但是,如何我的图形文件量比较大,是否能够通过VB来实现?比如说用FOR EACH。。。?
怎么实现?

zsj888 发表于 2006-11-21 11:13:00

详细点,就是在一个文件夹中的所有文件
可以实现统一更改
用什么语法

iq0050 发表于 2006-11-21 14:29:00

个人实践总结,插入图纸时,是以插入图纸的(0,0,0)点做为基点插入被插入图形空间的.
按照你的想法要定义一个FOLDERS型的变量,把你的插入图纸所在的路径定义好,就可以用其下的FILES集合进行循环了.
Dim FSys As New Scripting.FileSystemObject
Dim DrawFolder As Folder
Dim DrawName As File

'strDwgFolder 图纸路径
If FSys.FolderExists("strDwgFolder") Then
    Set DrawFolder = FSys.GetFolder("strDwgFolder")
    For Each DrawName In DrawFolder.Files
      If                  Then
      ' 插入语句
      End If
    Next
End If

zsj888 发表于 2006-11-21 15:43:00

谢谢,使用中~~
页: [1]
查看完整版本: 求助:VB进行AutoCAD的二次开发的难题