CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

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

2023-1-5 06:33| 发布者: admin| 查看: 294| 评论: 0|来自: AutoCAD

在第 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

    这里只执行一个操作。连接到折线的反应堆将保存到需要移除的所有反应堆的列表中。(请记住:尽管反应器附加到实体,但它们完全是单独的对象,并且需要像管理常规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 对象指针。这将在函数中用于重新计算折线边界时。*polyToChange*gp:command-ended


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 16:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部