CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2019 开发者帮助

向对象反应器回调函数 (AutoLISP) 添加活动

2024-5-18 17:50| 发布者: admin| 查看: 10| 评论: 0|原作者: admin|来自: AutoCAD

向对象反应器回调函数 (AutoLISP) 添加活动

在第 6 课中,您注册了两个带有对象反应器事件的回调函数。该函数与反应堆事件相关联,并且与事件相关联。您需要使这些函数执行其预期执行的操作。gp:outline-erased:vlr-erasedgp:outline-changed:vlr-modified

使对象反应器回调函数执行其预期操作

  1. gpreact.lsp 中,进行更改,使其如下所示:gp:outline-erased
    (defun gp:outline-erased (outlinePoly reactor parameterList)
      (setq *reactorsToRemove*
           (cons reactor *reactorsToRemove*))
      (princ)
    ) ;_ end of defun

    这里只执行一个操作。连接到折线的反应器将保存到需要移除的所有反应器的列表中。(切记:尽管 reactor 与图元相关联,但它们是完全独立的对象,并且它们与图元的关系需要像常规 AutoCAD 图元一样仔细管理。

  2. 更改以反映以下代码:gp:outline-changed
    (defun gp:outline-changed (outlinePoly reactor parameterList)
      (if *lostAssociativity*
        (setq *reactorsToRemove*
                                 (cons reactor *reactorsToRemove*))
        (setq *polytochange*     outlinePoly
              *reactorsToChange* (cons reactor *reactorsToChange*))
        )
      (princ)
    )

    有两类函数可以修改折线轮廓。第一类包含那些将破坏路径与其切片的关联性的命令。您检查了此条件并相应地设置了全局变量。在这种情况下,需要擦除图块,然后路径掌握在用户手中。另一类是 STRETCH 命令的夹持模式,其中保留了关联性,您需要在用户完成将顶点拖动到新位置后拉直轮廓。gp:command-will-start*lostAssociativity*

    该变量存储指向折线本身的 VLA-Object 指针。当需要重新计算折线边界时,这将在函数中使用。*polyToChange*gp:command-ended


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-6-27 15:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部