明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2100|回复: 7

关于插入图块的问题

[复制链接]
发表于 2005-6-8 21:08:00 | 显示全部楼层 |阅读模式
自编的dll文件,采用后期绑定。为了增强兼容性,我插入图块的代码是这样的: If acadapp.Version < 15 Then
Set blockrefobj = acadapp.ActiveDocument.ModelSpace.InsertBlock(InsertionPoint, "block", 1, 1, 0)
Else
Set blockrefobj = acadapp.ActiveDocument.ModelSpace.InsertBlock(InsertionPoint, "block", 1, 1, 1, 0)
End If 原来这样编的dll文件经acad R14~2005测试过,是通过的。但是最近发现,同样这样编写的dll,在某些机器上(2002)却出现了错误,不能插入,不知何故?
发表于 2005-6-9 08:57:00 | 显示全部楼层
如果原来通过的话,那就是路径问题了,估计出错的机器上面的支持路径里面没有找到含有block名称的文件,,,,,,,,,,,而且上面的条件判断是不是有问题?因为判断以后其实两个语句根本没有什么不同???
发表于 2005-6-9 09:48:00 | 显示全部楼层
Version 属性是个String型的,我这里你的这几句在2004下就过不去。是不是在R14以前这个属性是数字的?
 楼主| 发表于 2005-6-9 21:18:00 | 显示全部楼层
首先,插入的图块是图内的块,不存在找不到的问题。两个语句参数数目不同。


以前在14~2005下试过,是可以正确执行的。现在至少在我机器上的2000下可执行,在有些2002下不能执行(也有2002下能执行的)。2000和2002其实是一个版本,代码应该都是一样的。楼上老兄,你2004下不能通过吗?什么症状?如果前面加上on error resumn next呢?string型也可以比较大小,14&lt;15,a&lt;b。
发表于 2005-6-10 18:13:00 | 显示全部楼层
没有症状,编译不过去。
 楼主| 发表于 2005-6-10 19:20:00 | 显示全部楼层
编译?在vb中?要引用acad库。肯定可以编译的,我现在就编译出来了(VB5+ACAD2000)
发表于 2005-6-13 10:30:00 | 显示全部楼层
sorry,我是在vba下试的,类型不匹配。 在vb下我没用2000,用vb6+acad2004在Set blockrefobj = acadapp.ActiveDocument.ModelSpace.InsertBlock(InsertionPoint, "block", 1, 1, 0)
这个地方编译不过去,提示缺少参数。
 楼主| 发表于 2005-6-14 19:25:00 | 显示全部楼层
先判断acad版本,2000以上(&gt;=15)调用的是else部分 "block",1,1,1,0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 15:47 , Processed in 0.189132 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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