明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1453|回复: 8

[求助]还是反应器的问题

[复制链接]
发表于 2007-10-29 07:25 | 显示全部楼层 |阅读模式

      我为一条多段线指定了一个反应器,在退出反应器后,又要自动执行一个LISP程序xxxx,用以判断多段线在执行反应器期间是否修改了多段线,如果修改了多段线,则重新生成多段线,可是不知道怎样来调用这一修改多段线程序xxxx。

    看CAD的帮助好像是要用vlr-command-reactor来定义一个命令反应器,但是不知道怎么做,请大家指点。

下面是vlr-command-reactor函数的帮助文件:

语法(vlr-command-reactor data callbacks)

功能   构造 AutoCAD 命令反应器,对命令事件给出通知。

说明   1)参数 data 为任何要与反应器对象相关联的 AutoLISP 数据。若没有数据则为 nil。(这个参数该怎么指定)

2)参数 callbacks 为表,其中包含下列格式的点对:

(event-name . callback_function)

在这里,event-name 是下表命令反应器事件中的符号之一,callback_function 为符号,代表事件发生时要调用的函数。每个回调函数都接受如下两个参数:

   reactor_object  调用回调函数的 VLR 对象

   list  包含单个元素的表,字符串表示命令名

返回值:

reactor_object 参数。   

命令反应器事件

      事件名                    说明

:vlr-unknownCommand        发出了 AutoCAD 未知的命令。

:vlr-commandWillStart      已调用某 AutoCAD 命令。

:vlr-commandEnded          已完成某 AutoCAD 命令。

:vlr-commandCancelled      已取消某 AutoCAD 命令。

:vlr-commandFailed         无法完成某 AutoCAD 命令。

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-10-29 12:03 | 显示全部楼层

是不是考虑用MSITStore:C:\AutoCAD2006\help\acad_dev.chm::/acad_alr.chm::/ALR.default.402.htm">vlr-object-reactor  ?

:vlr-modified

The object has been modified. If the modification was canceled, also :vlr-cancelled and :vlr-modifyUndone will be fired.

发表于 2007-10-29 12:19 | 显示全部楼层
callbacks里面的callback_function就是你的回调函数
发表于 2007-10-29 12:59 | 显示全部楼层
看來是禁止修改物件的程序!
 楼主| 发表于 2007-10-29 14:36 | 显示全部楼层

我的多段线已经绑定了一个反应器,所以在反应器执行期间,是不能修改多段线的,要修改多段线,只有在退出反应器时运行XXXX程序,来修改多段线,

我知道(event-name . callback_function) 的 callback_function就是XXXX程序,可是对于DATA却不知道怎么指定。

发表于 2007-10-29 17:09 | 显示全部楼层
看不懂你要甚麼?
发表于 2007-10-29 19:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2007-10-30 00:50 | 显示全部楼层

首先对不起,没有说明白。

我的要求是:
    在多段线的第一个点拖向右边时(即第一点的X坐标大于第二点的X坐标时),要修改多段线的第三点坐标,第三点就和图上的注记文字一样,摆向右边,距离不变。
    多段线已经绑定反应器,函数是(pline_txt1),在反应器运行期间是不可以修改多段线的,所以,需要在退出(pline_txt1)函数时,紧接着再运行一段修改多段线的程序(pline_xg)。关键的问题是我不知道怎么来自动运行这个多段线的修该程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2007-10-30 12:28 | 显示全部楼层

1.在PLINE_TXT1程序隨便用個變數記錄pline已改變,再關閉pline的:vlr-modified反應器

2.再用:vlr-commandended更改第3點,再打開pline的:vlr-modified反應器,清除變數記錄

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

本版积分规则

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

GMT+8, 2024-5-18 05:35 , Processed in 0.213574 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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