乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: dnovember99

[编程交流] lisp加载程序

[复制链接]

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:13:01 | 显示全部楼层
好的,我必须坐下来仔细看看你从李·麦克那里寄来的东西,以便更好地理解它。
 
真的,我只是想能够有最好的方式来加载东西,并让它工作。所以不管哪种方式我都可以。这正是我现在想要的。但我会更深入地研究这件事。
 
再次感谢你
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:19:13 | 显示全部楼层
你有没有想过去菜单或工具栏,这些可以找到USB或驱动器等。这样你就不会忘记你所谓的快捷方式。它们按字母顺序按共同主题分组。它只是一个文本文件,因此不需要智能编程。其中一些确实使用了库lisp,但如果没有加载,则很容易强制加载。查看“(如果(不是aH:getvals)”
163942z3m7j8xmsz437xx4.jpg
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
262
发表于 2022-7-5 16:21:24 | 显示全部楼层
我喜欢这种类型的加载Lisp
  1. (defun c:AAA        ()        (load "C:/HasanCAD/AutoCAD/Support/Lisp/AAA.LSP"                ) (c:AAA        ) (princ)) ; text
  2. (defun c:BBB        ()        (load "C:/HasanCAD/AutoCAD/Support/Lisp/ABB.LSP"                ) (c:BBB        ) (princ)) ; text
  3. (defun c:CCC        ()        (load "C:/HasanCAD/AutoCAD/Support/Lisp/CCC.LSP"                ) (c:CCC        ) (princ)) ; text

 
通过使用这种加载方式,在用户调用lisp之前不会加载lisp。
回复

使用道具 举报

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:25:07 | 显示全部楼层
 
 
我确实有点喜欢这个主意。现在,对于“(if(not aH:getvals)”,我将在这一节中查看哪一节?
回复

使用道具 举报

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:28:41 | 显示全部楼层
 
 
 
 
我只是想确保我理解这一点。(抱歉,非常绿色)加载“C:/HasanCAD/AutoCAD/Support/Lisp/AAA.LSP”这将是您要添加到文件中的所述Lisp的文件路径?
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
262
发表于 2022-7-5 16:32:03 | 显示全部楼层
subose有一个名为GetSlope的lisp。LSP和调用lisp的命令是GTS
  1. (defun c:GTS        ()        (load "C:/HasanCAD/AutoCAD/Support/Lisp/GetSlope.LSP"                ) (c:GTS        ) (princ)) ; Get Slope at specified point

这意味着无论何时调用lisp,它都会被加载。
回复

使用道具 举报

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:34:31 | 显示全部楼层
 
这很有道理。
 
非常感谢。
回复

使用道具 举报

48

主题

657

帖子

33

银币

限制会员

铜币
-1
发表于 2022-7-5 16:37:33 | 显示全部楼层
我用这个:
 
  1. (defun c:appreload ()
  2. ;;Load all LISP files in a folder
  3. ;;LISP folder location:
  4. (setq mylispfolder "c:\\Desktop\") ;;change this to suit
  5. (setq myfiles (vl-directory-files mylispfolder "*.lsp" nil)) ;;myfiles is list of files
  6. (setq mylistlength (length myfiles)) ;;count of number of lsp files
  7. (setq acount -1) ;;a counter
  8. (repeat mylistlength
  9.    (setq acount (1+ acount))
  10.    (setq FailedtoLoad (strcat (nth acount myfiles) " failed to load"))
  11.    (load (strcat mylispfolder (nth acount myfiles)) FailedtoLoad) ;;Loads file
  12. )
  13. (princ)
  14. )

 
这将加载指定文件夹中的所有LISP文件。这可能不是最聪明的代码,但对我来说很管用。
 
注意:如果您在启动时运行此程序,请不要从“mylispfolder”位置中包含的LISP文件执行此操作,因为当加载/重新加载该文件并再次运行此例程时,可能会出现无休止的循环。。。再一次。。。如果需要,可以修改此代码以排除要重新加载的文件。
 
 
我主要在尝试操作时使用它-键入appeload要比通过AutoCAD加载修改后的LISP文件快得多
回复

使用道具 举报

48

主题

657

帖子

33

银币

限制会员

铜币
-1
发表于 2022-7-5 16:42:25 | 显示全部楼层
为每个LISP例程编写一行:
  1. (defun c:GTS        ()        (load "C:/HasanCAD/AutoCAD/Support/Lisp/GetSlope.LSP"                ) (c:GTS        ) (princ)) ; Get Slope at specified point

很好地工作,但是假设您有许多LISP例程要加载?(例如,我有一个用于绘制A3的例程,一个用于绘制A2等,以及黑白、PDF彩色和黑白、风景图和肖像图。大约40个例程仅用于绘制,然后还有所有其他的…)。如果可以获得文件夹中所有文件中的所有LISP列表,则可以使用此行修改我的示例(Lee Macs GetSyntax可以在这里提供帮助)。我的将加载文件夹中的所有内容,因此在那里添加一个新文件,它将加载没有其他工作。这只是你需要考虑的另一个想法
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 21:09 , Processed in 0.413594 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表