关于插入图块的问题
自编的dll文件,采用后期绑定。为了增强兼容性,我插入图块的代码是这样的:If acadapp.Version < 15 Then<BR> Set blockrefobj = acadapp.ActiveDocument.ModelSpace.InsertBlock(InsertionPoint, "block", 1, 1, 0)<BR> Else<BR> Set blockrefobj = acadapp.ActiveDocument.ModelSpace.InsertBlock(InsertionPoint, "block", 1, 1, 1, 0)<BR> End If
原来这样编的dll文件经acad R14~2005测试过,是通过的。但是最近发现,同样这样编写的dll,在某些机器上(2002)却出现了错误,不能插入,不知何故?<BR> 如果原来通过的话,那就是路径问题了,估计出错的机器上面的支持路径里面没有找到含有block名称的文件,,,,,,,,,,,而且上面的条件判断是不是有问题?因为判断以后其实两个语句根本没有什么不同??? Version 属性是个String型的,我这里你的这几句在2004下就过不去。是不是在R14以前这个属性是数字的? 首先,插入的图块是图内的块,不存在找不到的问题。两个语句参数数目不同。
以前在14~2005下试过,是可以正确执行的。现在至少在我机器上的2000下可执行,在有些2002下不能执行(也有2002下能执行的)。2000和2002其实是一个版本,代码应该都是一样的。楼上老兄,你2004下不能通过吗?什么症状?如果前面加上on error resumn next呢?string型也可以比较大小,14<15,a<b。 没有症状,编译不过去。 编译?在vb中?要引用acad库。肯定可以编译的,我现在就编译出来了(VB5+ACAD2000) sorry,我是在vba下试的,类型不匹配。
在vb下我没用2000,用vb6+acad2004在Set blockrefobj = acadapp.ActiveDocument.ModelSpace.InsertBlock(InsertionPoint, "block", 1, 1, 0)<BR>这个地方编译不过去,提示缺少参数。 先判断acad版本,2000以上(>=15)调用的是else部分 "block",1,1,1,0
页:
[1]