CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

对更多用户调用的命令做出反应

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

在编写基于 Reactor 的应用程序时,您需要处理任何对对象产生重大影响的命令。程序设计活动之一应该是查看所有可能的 AutoCAD 编辑命令,并确定应用程序应如何响应每个命令。在第 6 课末尾显示的反应堆跟踪表的格式非常适合此目的。调用您希望用户使用的命令,并记下应用程序应响应的行为类型。要计划的其他操作包括

  • 确定用户发出撤消和重做命令时要执行的操作。
  • 确定当用户在擦除与反应器链接的实体后发出 OOPS 命令时要执行的操作。

为了防止一个非常复杂的主题变得非常非常复杂,本教程不会试图涵盖应该涵盖的所有可能性,并且本课程中的功能保持在绝对最低限度。

即使您不会为这些额外命令构建完整的功能,也要检查一些额外的编辑功能需要您执行的操作:

  • 如果用户拉伸折线边界(使用 STRETCH 命令),应该会发生几件事。它可以向任何方向拉伸,而不仅仅是在长轴或短轴上,因此边界最终可能会形成非常奇怪的形状。此外,您还需要考虑拉伸了多少个顶点。仅拉伸一个折点的情况将导致折线与移动两个顶点的折线完全不同。在任何情况下,一旦确定边界所需的调整,就必须擦除切片并重新计算新位置。
  • 如果用户移动折线边界,则应擦除所有切片,然后在新位置重新绘制。这是一个相当简单的操作,因为折线边界没有改变其大小或形状。
  • 如果用户缩放折线边界,则需要做出决定。是否也应放大切片,以便路径包含相同数量的切片?或者,磁贴大小是否应保持不变,应用程序应添加或删除磁贴,具体取决于折线是放大还是缩小?
  • 如果用户旋转折线边界,则应擦除所有切片,然后以新方向重新绘制。

但是,首先,只需计划以下内容:

  • 在命令启动时警告用户,选定的编辑命令(如、或)将对花园路径产生不利影响。stretchmoverotate
  • 如果用户继续,请擦除图块,不要重新绘制它们。
  • 从路径轮廓中移除反应器。
注意:除了用户调用的AutoCAD命令之外,还可以通过AutoLISP或ObjectARX®应用程序修改或删除实体。花园路径教程中提供的示例不涉及花园路径折线边界的编程操作,例如通过(<折线实体>)。在这种情况下,编辑器反应器事件和不会被触发。entdel:vlr-commandWillStart:vlr-commandEnded

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 14:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部