CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

修改对 gp:计算和绘制磁贴的其他调用

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

在反应器回调中,硬编码字符串作为参数传递给。但是其他时间被调用呢?"ActiveX"gp:Calculate-and-Draw-TilesObjectCreationStylegp:Calculate-and-Draw-Tiles

如果你还记得第 4 课,有人指出,每当你更改存根函数时,你需要问以下问题:

  • 函数调用(调用)是否已更改?也就是说,该函数是否仍然采用相同数量的参数?
  • 该函数是否返回不同的东西?

在构建、优化和更新应用程序时,每当对工作函数进行重大更改时,都需要提出相同的问题。在这种情况下,您需要在项目中查找调用的任何其他函数。Visual LISP 有一个特性可以帮助你做到这一点。gp:Calculate-and-Draw-Tiles

查找项目中对 gp:计算和绘制磁贴的所有调用

  1. 在 Visual LISP 文本编辑器窗口中,双击gpdraw.lsp文件中的单词。gp:Calculate-and-Draw-Tiles
  2. 单击“Visual LISP”菜单中的“搜索查找”。

    由于您预先选择了函数名称,因此它已作为要搜索的字符串列出。

  3. 选择“查找”对话框中“搜索”下列出的“项目”按钮。

    选择此选项时,“查找”对话框将在底部展开,您可以选择要搜索的项目。

  4. 指定当前项目名称,然后单击“查找”按钮。

    Visual LISP 在“查找输出”窗口中显示结果:

  5. 查看“查找输出”窗口中的结果,并确定代码中是否有任何其他位置可以调用。应该只有一个:gpmain.lsp 中的一个位置。gp:Calculate-and-Draw-Tiles
  6. 在“查找输出”窗口中,双击代码调用行。gp:Calculate-and-Draw-Tiles

    Visual LISP 激活一个文本编辑器窗口,并将您直接带到gpmain.ls sp 中的那行代码。代码当前如下所示:

    (setq tilelist (gp:Calculate-and-Draw-Tiles gp_PathData))
  7. 将代码行替换为以下内容:
    (setq tilelist (gp:Calculate-and-Draw-Tiles gp_PathData nil))

    为什么?再看一下伪代码:nil

    If ObjectCreationStyle is nil, assign it from the BoundaryData.

    作为参数传递,使该函数检查用户对如何绘制磁贴的选择(由对话框选择确定并存储在其中)。但是,来自命令结束反应器回调的后续调用将通过强制使用 ActiveX 来覆盖此行为。nilgp:Calculate-and-Draw-Tilesgp_PathData

祝贺!您现在已具备基本的反应器功能。如果您愿意,可以将gpmain.lsp 和 gpdraw.lsp文件从Tutorial\VisualLISP\Lesson7复制到您的工作目录中,并检查已完成的调试代码。

还有很多工作要做,这一切都是从函数中的这段代码片段触发的:gp:Command-ended

(setq NewReactorData
    (gp:RedefinePolyBorder CurrentPoints reactorData)
) ;_ end of setq

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部