明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 220|回复: 3

帮我写个反应器

[复制链接]
发表于 2017-12-25 08:02 | 显示全部楼层 |阅读模式
20明经币
要求两图元位置互相关联,移动其中一个图元,另一个图元随之移动,删除一个图元,另一个图元随之删除,谢谢

发表于 2017-12-25 22:50 来自手机 | 显示全部楼层
不用反应器,直接group命令就行
回复

使用道具 举报

 楼主| 发表于 2017-12-26 07:44 | 显示全部楼层
xinxirong 发表于 2017-12-25 22:50
不用反应器,直接group命令就行

谢谢,不想用组或块的形式实现,希望学习一下反应器
回复

使用道具 举报

发表于 2017-12-31 13:02 | 显示全部楼层
本帖最后由 ljq 于 2017-12-31 13:04 编辑

1、建立fyq类,代码如下:
'声明ACADent为带事件的acad实体对象
Public WithEvents ent1 As AcadCircle
Public WithEvents ent2 As AcadCircle

'在实体修改事件中增加提示框---显示多段线面积
Private Sub ent1_Modified(ByVal pObject As AutoCAD.IAcadObject)
    On Error Resume Next
    ent2.Center = ent1.Center
    ent2.Radius = ent1.Radius + 30
    If Err.Number = -2145386420 Then ent2.Delete
End Sub
'在实体修改事件中增加提示框---显示多段线面积
Private Sub ent2_Modified(ByVal pObject As AutoCAD.IAcadObject)
    On Error Resume Next
    ent1.Center = ent2.Center
    ent1.Radius = ent2.Radius - 30
    If Err.Number = -2145386420 Then ent1.Delete
End Sub

2、在模块中写代码如下:
Public Y As New fyq
'对象层事件应用
Sub ent_event1()
    Dim cc1 As AcadCircle, cc2 As AcadCircle
    ThisDrawing.Utility.GetEntity cc1, pt, "dsd"
    cc1.color = acRed
    Set Y.ent1 = cc1
    ThisDrawing.Utility.GetEntity cc2, pt, "dsd"
    cc2.color = acGreen
    Set Y.ent2 = cc2
End Sub

3、执行模块中ent_event1宏命令,在图中任选2个圆即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2018-4-26 04:28 , Processed in 0.191820 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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