求助:在AcadDocument_ObjectAdded函数中怎样把Object参数赋给AcadBlockReference类型变量,以判断插
入的块参照的名称?
我想用VBA实现下面的功能:
当用户手动或者用其它工程(例如天正系列软件)向图形中插入一个特定的块(块名称
为"chuanghu",表示窗户)时,我的程序能检测到这个事件,并进行一些额外的处理(比如,让用户在命令行输
入块的高度,以方便以后的计算)
于是我实现AcadDocument_ObjectAdded(ByVal Object As Object)函数.但是该函数的执行去存
在下面的问题:
当用户手动插入块(执行CAD的"插入/块"菜单)时,AcadDocument_ObjectAdded函数运行没有问题,
能够判断出添加的时块参照,并能读取改块参照的块名称;但是当使用VBA程序,调用InsertBlock函数插入
块时,AcadDocument_ObjectAdded函数中部门把传入的参数Object赋值给一个AcadBlockReference变
量....程序会执行到Set ss = Object时出现错误
"运行时错误13,类型不匹配"...
我的代码贴出来,如下,请各位高手看看,诊断下,不胜感激:
Private Sub AcadDocument_ObjectAdded(ByVal Object As Object) Dim cla As String cla = Object.ObjectName If cla = "AcDbBlockReference" Then Dim ss As AcadBlockReference Set ss = Object Dim nm As String nm = ss.Name ThisDrawing.Utility.Prompt vbNewLine & "ok! 块添加到图形中" & "块名称:" & nm End If End Sub
|