部署公司LISP、autolo
我在AU上观看了关于部署AutoLisp的演示。http://au.autodesk.com/au-online/classes-on-demand/class-catalog/classes/year-2015/autocad/it9952#chapter=0
这让我提出了一些问题,因为我将部署公司autoLisps。我最感兴趣的是“自动加载”。他提到,如果要加载多个LISP,则可能会增加图形加载时间。他提到使用autoload函数在调用LISP时加载LISP。
有人有这样做的经验吗?您如何处理几个LISP共享的子例程?
我目前正计划使用*。mnl文件扩展名,用于加载带有CUI的公司LISP。我能填一下吗。带有指向实际lisp的自动加载行的mnl文件?
此外,我应该仍然只有一个包含所有程序的lisp,还是应该将它们分解为单个程序。lsp文件?再说一遍,我该如何处理子程序?我不喜欢在不同的lisp文件中复制子例程。[
提前感谢您的意见 AUTODESK KNOWLEDGE NETWORK:About Auto Loading and Running AutoLISP例程很好地描述了所有选项。
我通常将我的例程保存在带有描述性名称的单独文件中,以便根据需要轻松查找和更新。 根据需要加载Lisp有多种方法,我们的方法是个性化的,这使得调试和修改更容易测试,但常见的方法在库中。不确定为什么要通过mnl加载所有Lisp,而不仅仅是按需加载或按照下面的示例加载。如果我们有一个我们不经常使用的lisp,它没有加载,它是通过菜单加载的。我们的库lisp完全与Acaddoc分离。lsp等
在我们的lisp库中,引用Autodesk的话,我们有多条“自动加载”行
对于常见的“library”类型的Lisp,我将更多的内容转移到了deman加载,因此即使是这些Lisp也没有预加载。
; demand load if defun not loaded
; put somewhere near start of lisp, use in any program
; this example AH:getval2 not found so load lisp before continuing
; getvals3 is a multiple dcl entry dialouge
(if (not AH:getval2) (load "getvals3"))
自动加载示例这些在lisp中,我们称之为自动加载。lsp目前有36个。
(autoload "COPY0" '("COPY0"))
(autoload "COPYCOMMAND" '("ZZZ"))
(autoload "COVER" '("COVER"))
(autoload "p2p" '("p2p"))
(autoload "DRAWXFALL" '("DRAWXFALL"))
(autoload "DRAWPIPE" '("DRAWPIPE"))
菜单代码
[->LISP1 A-B]
^C^C(LOAD "1-4 POINTS")
^C^C(LOAD "add-to-levels")
^C^C(LOAD"Add-pits-drain")
^C^C(LOAD "Allbylayer")
.........
所以,如果一个例程有子例程,你还是把它们保存在各自的文件中?
我使用MNL文件,因为它将自动加载网络上的CUI。这样,如果我更改服务器上的mnl文件,它将在每台计算机上自动更新。
我还没有尝试过,但我只想使用autoload来要求加载lisps。
如果我使用阿卡多克。lsp如何添加新函数?我必须走遍每一台电脑,更新阿卡多克吗。lsp文件? 我想你可以把阿卡多克联系起来。lsp,但所有用户都需要将此位置添加到他们的支持路径中。
使用mnl的优点是允许用户使用acaddoc。lsp用于自定义lisp或自身设置。AutoCAD仅加载第一个acad。lsp,阿卡多克。lsp和acad。它找到的rx文件。
我一直在努力让自动加载工作。似乎我不允许使用带有lisp文件名的路径,即“L:\\CAD\\CUI\\LISPS\\mylisp.lsp”。当我尝试时,得到这个错误
看起来我的支持路径中必须有lisp文件夹。我不能使用相对路径对吗? 从我上面发布的链接:
注意:从基于AutoCAD 2014的产品开始,自定义应用程序必须在安全模式下工作;当SECURELOAD系统变量设置为1或2时。在安全模式下运行时,程序仅限于加载和执行包含来自受信任位置的代码的文件;受信任位置由TRUSTEDPATHS系统变量指定。
我建议将其全部保存在一个文件夹中,并将其包括在支持文件支持路径和受信任的位置中,以确保您的办公室安全,并使加载文件更容易。这样设置时,不需要包括路径。 一个小秘密,试试你的支持途径,像这样。。注意双点。。这意味着在搜索路径中包含较低的目录,您不需要全部添加它们。
我们运行一个网络服务器安排,我们有默认的cui和来自服务器的菜单化cuix。因此,如果我们更改服务器mnu的“源代码”,我会将其菜单加载,然后当其他人下次打开其Autocad时,它会在服务器上生成一个新的Cuix。新菜单将自动加载,无需用户交互,因此它们始终是最新的。
我们所有的Lisp都在一个目录中的服务器上。重新定义如果它被多个lisp使用,那么它使一个库lisp ie使用if not to load,如果它是专门为一个任务编写的定义,它位于正确的lisp中而不是外部,那么这个lisp也可以调用库例程。
页:
[1]
2