组合Lisp例程
也许我对Lisp程序这个东西太陌生了,但我已经通过了很多论坛,对于外行,也就是我来说,似乎没有什么能真正解释清楚。我的公司对LISP似乎也很陌生,但他们有一个LISP的“主”列表,他们已经使用了一段时间。此列表加载到每个人的CAD中。我发现还有其他几个我想添加到这个主列表中,但我不知道它们是如何分离和加载的。
我们的想法是用新命令更新这个主列表,让其他人能够在下次加载原始lisp时再次启动CAD时使用这些命令。是否有加载其他位置的快速例程?
我得到了这种风格的线路,并告诉它会做这样的事情,但我一定还是做错了什么
(load "brkblk")
(load "BreakObjects18")
(load "CCC")
(load "Copy2DrawingsV1-2")
(load "Copy2LayoutsV1-1")
(load "DoubleOffsetV1-1")
(load "Dynamic-Offset")
(load "MCOPY")
(load "QuickDimAligned-QDA")
(load "ROT2ENT")
(princ (load "BreakObjects18" "\nBreakObjects18.LSP file not loaded.."))
(princ (load "CCC" "\nCCC.LSP file not loaded.."))
(princ (load "Copy2DrawingsV1-2" "\nCopy2DrawingsV1-2.LSP file not loaded.."))
(princ (load "Copy2LayoutsV1-1" "\nCopy2LayoutsV1-1.LSP file not loaded.."))
(princ (load "DoubleOffsetV1-1" "\nDoubleOffsetV1-1.LSP file not loaded.."))
(princ (load "Dynamic-Offset" "\nDynamic-Offset.LSP file not loaded.."))
(princ (load "MCOPY" "\nMCOPY.LSP file not loaded..."))
(princ (load "QuickDimAligned-QDA" "\nQuickDimAligned-QDA.LSP file not loaded..."))
(princ (load "ROT2ENT" "\nROT2ENT.LSP file not loaded..."))
谢谢你的耐心,
-诺布尔 我使用这个场景;比如说ycopy。lsp包含c:ycopy的定义
(defun c:yc () (if (not c:ycopy) (load "YCOPY"))(c:ycopy))
这样,您就可以按需使用资源来定义快捷键。
我的acad(文档)中有大约400个这样的文件。lsp文件
你需要为每一个例行程序做一个单独的defun。
你总可以有一个大图书馆。包含许多例程但必须在每个会话中完全加载的lsp文件。浪费资源(IMO)更不用说很难调试。
-大卫 嗨,诺布尔
我对这一切也是新手,但我想你可能想看看Acad。Lsp文件
关于这一点,有很多资源,请访问:
http://www.afralisp.net/autolisp/tutorials/loading-autolisp-files.php
http://lee-mac.com/autoloading.html
我希望这有帮助。
干杯
安迪 请注意,因为David的示例使用了两个字母的名称“YC”,而不是用lisp名称替换ACAd命令。
acad除外。pgp,我知道没有其他核心ACAD命令只有2个字母长。也许是新的? 我的问题是你只能通过键盘访问吗?
如果您使用菜单或工具栏,则可以要求加载不在主lisp中的单个lisp。我对一个100多个lisp的大方案采取了不同的方法。我有一个通用的函数库,可以自动加载一些东西,比如动态设置正确的层。每个lisp都是从菜单中调用的,但一旦加载,就可以通过键盘再次调用。很难记住每个lisp的关键代码,因此菜单。 大卫,
在命令提示下键入“BH”时会发生什么情况。 大多数快捷命令都列在acad中。pgp非常确定BH边界图案填充是express的一部分,因此不在acad中。所以你们两个都是对的。 是的,看起来像是acad之外的一条捷径。pgp公司
还有很多这样的双字母快捷方式(对不起,我没有列表),作为预防措施,OP应该在使用双字母名称命名LISP函数之前测试任何特定双字母快捷方式的存在性。
我不相信这两个字母的命令是express工具的一部分,因为它们也适用于BricsCAD。
布鲁斯
页:
[1]
2