dailixin 发表于 2003-10-10 20:38:00

使用SendCommand方法时怎么控制选择内容?

在VBA二次开发中遇到如下问题:采用SendCommand方法向命令栏发送命令,该命令下一步要求选择一个实体,选择玩实体后选择曲面,怎么发送?我的程序如下:acadApp.ActiveDocument.SendCommand "_amsolcut" & vbCr & "SolidObj1" & vbCr & "surf",其中amsolcut命令为曲面切割AutoCAD命令,该命令要求选择一个实体,然后选择一个曲面,可以更改切割方向。怎么实现该命令?我发送amsolcut命令成功,但是发送实体和曲面均告失败,请各位高手指教,多谢多谢。

efan2000 发表于 2003-10-10 20:57:00

SendCommand传递的对象是Lisp中的实体,而不是VBA的实体,这一点两者是不一样的。因而必须使用Lisp的函数Handent来转化对象。
如:"SolidObj1"必须使用"(Handent """ & SolidObj1.Handle & """)"来代替。

dailixin 发表于 2003-10-10 21:06:00

多谢版主指教,但是handent 后面是该实体在AutoCAD中的句柄,而不是VBA中定义的变量,怎么获得句柄,SolidObj1.Handle能获得句柄么?

efan2000 发表于 2003-10-10 21:10:00

在VBA中,都是使用Handle属性来返回某一实体的句柄。

dailixin 发表于 2003-10-10 21:21:00

Surf是建立的NURBS曲面,不是实体,怎么得到句柄?从AutoCAD中能够看到它的句柄,在VBA中没有这个属性,这个怎么办?

dailixin 发表于 2003-10-10 21:31:00

CreateSurface方法建立的实体是什么实体?3Dface还是其它实体?mapp.ActiveDocument.Utility.CreateSurface bndSurf, bounds 该语句产生了一个曲面,怎么获得该曲面的句柄?

efan2000 发表于 2003-10-10 22:05:00

这个是不是MDT中的对象?
没有使用过这套软件,看看它的帮助文档吧。

dailixin 发表于 2003-10-11 09:01:00

是的,MDT中的对象。它的VBA开发帮助文档非常少,据说经销商那里有,昨天和经销商联系了一下,他说有的,可是必须购买正版的,我现在用的就是正版的,不过不是从那个经销商那里得到的,他不给开发文档。必须在他那里进行软件升级。
页: [1]
查看完整版本: 使用SendCommand方法时怎么控制选择内容?