CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2019 开发者帮助

更新存根函数

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

更新存根函数

您现在已经修改了该函数。每当修改存根函数时,都应该始终检查以下几点:gp:getDialogInput

  • 声明有变化吗?也就是说,该函数是否仍然采用相同数量的参数?defun
  • 该函数是否返回不同的内容?

在 的情况下,这两个问题的答案都是肯定的。该函数现在接受路径宽度的参数(用于设置默认的图块大小和间距)。现在,该函数的存根版本返回的值不是返回,而是返回包含四个新值的关联列表。gp:getDialogInputTgp:getDialogInput

这两项更改都会影响调用函数的代码和处理函数返回值的代码。将 gpmain.lsp 中以前版本的函数替换为以下代码:C:GPath

(defun C:GPath (/ gp_PathData gp_dialogResults)
  ;; Ask the user for input: first for path location and
  ;; direction, then for path parameters.  Continue only if you
  ;; have valid input.  Store the data in gp_PathData.
  (if (setq gp_PathData (gp:getPointInput))
    (if (setq gp_dialogResults (gp:getDialogInput (cdr(assoc 40
                               gp_PathData))))
      (progn
        ;; Now take the results of gp:getPointInput and append this
        ;; to the added information supplied by gp:getDialogInput.
        (setq gp_PathData (append gp_PathData gp_DialogResults))

        ;; At this point, you have all the input from the user.
        ;; Draw the outline, storing the resulting polyline
        ;; "pointer" in the variable called PolylineName.
        (setq PolylineName (gp:drawOutline gp_PathData))
      ) ;_ end of progn
      (princ "\nFunction cancelled.")

    ) ;_ end of if
    (princ "\nIncomplete information to draw a boundary.")

  ) ;_ end of if
  (princ)  ; exit quietly

) ;_ end of defun

看一下主函数修订版中的粗体线。要使程序正常工作,有两个基本更改:C:GPath

  • 调用函数时,将路径宽度传递给它。这是通过提取与关联列表的键 40 索引关联的值来完成的。gp:getDialogInputgp_PathData
  • 返回的关联列表被分配给一个名为 的变量。如果此变量具有值,则需要将其内容追加到已存储在 中的关联列表值。gp:getPointInputgp_dialogResultsgp_PathData

由于替换了存根版本中的占位符,代码中还发生了其他更改。最简单的方法是从在线教程中复制此代码并将其粘贴到您的文件中。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-12-15 22:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部