明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1386|回复: 3

[求助]高手请进(还是事件问题)

[复制链接]
发表于 2004-11-30 14:53:00 | 显示全部楼层 |阅读模式
工作中遇到一些困难,大家帮忙看看。谢谢先。
我做的是一个物体的三视图,每个视图里都有一些相关联的spline对象。在绘制这些spline时已经用全局变量a(i) 保存了它们的objectID。 现在我想做的是通过Doc_modify事件过程,改变其中一个视图的一个spline对象的fitpoint点,从而自动改变另外两个视图的与其相关联的spline对象(删除原有的,重新绘制新的) 有两个问题:
1。Public Sub Doc_ObjectModified(ByVal Obj As Object)
在事件中,用if Obj.objectID=a(i),发现竟然没有相同的。后来调试了一下,发现同一个spline对象的ObjectID竟然不相同。 这究竟是怎么回事? 问题可能出在那?

2。我的本意是改变一个spline的控制点,从而改变相关的样条。 经斑竹efan提示,这样会出现循环调用的情况(改变相关的样条,又触发了事件)请问如何解决。
发表于 2004-11-30 15:03:00 | 显示全部楼层
1、用Handle试试 2、可以这样,设置一个全局变量防止循环调用 Private Judge As Boolean Private Sub AcadDocument_ObjectModified(ByVal Object As Object)
If Not Judge Then
Judge = True

'这里是你的处理代码

Judge = False
End If
End Sub
 楼主| 发表于 2004-11-30 15:28:00 | 显示全部楼层
十分感谢飞狐斑竹。 第一个问题我发现原因了。 我为了利用相对坐标绘图方便,把每一个视图做为块,绘制完毕又分解了。这样分解前后的spline的objectID 和handle就都不同了。 但是有些迷惑的是,样条的名称没有改变,难道说分解前后,就不是同一个对象了?那么再进行相应的操作岂不是没有用了? 这样再如何通过搜索objectId和handle
得到原先的对象?
发表于 2004-11-30 15:40:00 | 显示全部楼层
分解前后确实不是同一个对象了,块参照解后,块内的实体是重生成的


可以分解前给曲线附扩展数据,分解后扩展数据不会丢失
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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