明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1409|回复: 4

[求助] 请问各位大虾

[复制链接]
发表于 2003-9-3 17:12:00 | 显示全部楼层 |阅读模式
请问各位大虾,我能否控制CAD 的删除操作,某些数据不能删除,如删除,我要首先得到所选择的对象,我的操作完了以后再删除对象,请问该功能能否实现,怎样实现?谢谢
 楼主| 发表于 2003-9-4 08:17:00 | 显示全部楼层
论坛了没有人吗,太冷清了吧,
发表于 2003-9-4 08:37:00 | 显示全部楼层
我没有完全明白你的意思。好象你想要修改ACAD系统的删除命令执行方式,不要说VBA做不到,在ARX中我曾尝试修改ACAD的系统命令,最终还是失败了。不过写一个自己的删除命令倒是应该能做到的。VBA中可以这样写宏:
Sub MyErase()
  '先得到选择集,或者可以由用户在绘图区域选择对象
  
  ‘完成你的操作

  For Each 对象 In 选择集
    对象.Erase
  Next 对象

End Sub
发表于 2003-9-4 08:47:00 | 显示全部楼层
Document文档有一个ObjectErased事件,可以捕获删除。
Private Sub AcadDocument_ObjectErased(ByVal ObjectID As Long)
    MsgBox "The ID of the object deleted is: " & ObjectID

    Dim tempObj As AcadObject
    Set tempObj = ThisDrawing.ObjectIdToObject(objectID)
    if 如果不满足条件 then
     ThisDrawing.SendCommand "_u" & vbCr
    end if
End Sub
 楼主| 发表于 2003-9-4 09:53:00 | 显示全部楼层
该事件内我写过代码,不过此时已经不能再取出删除的对象
set tempObj = ThisDrawing.ObjectIdToObject(objectID) 出错
错误提示
   方法 'ObjectIdToObject' 作用于对象 'IAcadDocument' 时失败
你那里不出错吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 14:48 , Processed in 0.185634 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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