Lee Mac 发表于 2022-7-6 09:59:38

教程:加载程序Aut

我终于开始写这篇教程,希望它涵盖了用户在启动时加载程序这一主题上可能需要知道的一切。
 
自动加载程序
 
一如既往,如果您有任何改进建议、批评意见或确实发现内容中的错误,欢迎您提供反馈。
 
享受
 

pBe 发表于 2022-7-6 10:11:20

很好的教程李。
谢谢你的教训,我的朋友
 
问你一个问题。
是否建议加载编程为加载时运行的lisp,而不是作为当前活动lisp的子对象?
 
(defun c:Drawline ()
(setq ...)
      (if ()
   (load "C:\\My Folder\\MyProgram\\ChangeProgram")
   )
)

(defun c:ChangeMe ()
(...
   ...)
);defun
(c:ChangeMe)

 
还是这样更好?
 

;;ACADDOC.lsp
(.......
(autoload "LineProgram" '("DrawLine"))
(autoload "ChangeProgram" '("ChangeMe"))
(.....

 
 

(defun c:Drawline ()
(setq ...)
      (if ()
   (ChangeMe)
   )
)

 
或者两者都没有?
或者更好地坚持使用工具箱函数中的子程序?
 
这是我收集的“Vlisp编码的坏习惯:不要这样做”中的一些

Lee Mac 发表于 2022-7-6 10:14:22

谢谢pBe
 
关于你的问题,如果LISP编程为加载时自动运行,那么使用“自动加载”将导致LISP运行两次,因为自动加载功能也会在加载后调用程序。
 
我想这取决于你想要什么样的行为。例如,对于某些反应器,您可能希望它们在打开新图形时在后台加载和运行,因此将其编程为在加载时运行,然后使用ACADDOC中的“加载”功能。lsp可能是最简单的解决方案。
 
然而,如果您只是想加载一个普通的程序,在用户需要时在命令行调用它,那么我只会使用ACADDOC中的“自动加载”功能。lsp将为您处理第一次加载(否则,可能编写您自己的自动加载函数,如此处所示)。
 

Fnuik 发表于 2022-7-6 10:22:21

另一个id是当你有一个CUI文件和相应的。在同一文件夹中具有相同名称的MNL(Lisp)文件,MNL文件将与cui文件一起自动加载。
 
我就是这么做的

Bhanson 发表于 2022-7-6 10:29:28

谢谢你的指导。
 
不过我确实有个问题。在ACADDOC中使用自动加载命令是否有利。lsp在测试新代码时,以便每次我输入函数名时,它都会重新加载文件以及自我打开图形以来所做的任何更改?
 
只是想知道。
谢谢

Lee Mac 发表于 2022-7-6 10:34:39

 
不客气
 
 
Autoload不会在每次键入命令语法时“重新加载”函数-它只会在用户第一次键入命令时加载文件一次。
 
为什么不使用VLIDE编辑/重新加载代码?

Bhanson 发表于 2022-7-6 10:39:10

谢谢,我已经自学AutoLisp大约一年了,但是有很多小技巧我还没有学会。

Lee Mac 发表于 2022-7-6 10:45:25

 
VLIDE确实是一个不错的选择——即使你只是想使用AutoLISP而不是进入Visual——它有很好的调试功能,帮助文档只需点击一下。
 

alanjt 发表于 2022-7-6 10:52:15

见鬼,我之所以使用它,只是因为它具有自动格式化功能,您可以将其直接加载到AutoCAD中进行测试等等。

Lee Mac 发表于 2022-7-6 10:59:18

 
确切地我有时使用Notepad++,因为它有更多的格式化技巧,但主要是VLIDE,因为可以直接加载某些内容。
页: [1] 2
查看完整版本: 教程:加载程序Aut