乐筑天下

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

[编程交流] 在differe上重复命令

[复制链接]

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 11:17:37 | 显示全部楼层 |阅读模式
为了将一些lisp文件(以编程方式)添加到我的启动套件中,我尝试修改我在上面找到的代码:
 
http://thatcadguy.blogspot.com/2010/02/startuplsp-adding-to-autocads-startup.html
 
所有的功劳都归功于作者,我相信《杰克》。
 
然而,该代码只适合添加一个文件。
 
这是原始代码:
 
  1. (defun addToStartupSuite  (filename
  2.      /
  3.      regpath
  4.      revision
  5.      version
  6.      default
  7.      ct
  8.      numstartup
  9.      n)
  10. (setq regpath  "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD"
  11. revision (vl-registry-read regpath "CurVer")
  12. version  (vl-registry-read
  13.     (setq regpath (strcat regpath "\" revision))
  14.     "CurVer")
  15. default  (vl-registry-read
  16.     (setq regpath (strcat regpath "\" version "[url="file://profiles/"]\\Profiles[/url]")))
  17. regpath  (strcat regpath "\" default "[url="file://dialogs//Appload//Startup"]\\Dialogs\\Appload\\Startup[/url]")
  18. ct  1
  19. )
  20. (if (setq numstartup (vl-registry-read regpath "NumStartup"))
  21.    (progn
  22.      (setq n (1+ (atoi numstartup)))
  23.      (while (and
  24.        (< ct n)
  25.        (/= filename
  26.     (vl-registry-read regpath (strcat (itoa ct) "Startup")))
  27.        )
  28. (setq ct (1+ ct))
  29. )
  30.      )
  31.    (setq n 1)
  32.    )
  33. (if (= n ct)
  34.    (progn
  35.      (vl-registry-write
  36. regpath
  37. (strcat (itoa n) "Startup")
  38. filename)
  39.      (vl-registry-write regpath "NumStartup" (itoa n))
  40.      )
  41.    )
  42. )

 
有一个选项可以这样做:
 
  1. (defun c:test ( / )
  2. (addToStartupSuite  "LispFile1.lsp")
  3. (addToStartupSuite  "LispFile2.lsp")
  4. (addToStartupSuite  "LispFile3.lsp")
  5. (addToStartupSuite  "LispFile4.lsp")
  6. (addToStartupSuite  "LispFile5.lsp")
  7. (princ)
  8. )
  9. (princ)

 
但我相信这可以做得更短/更有效。
 
太糟糕了,我找不到/记不起怎么做这种动作。
 
我的尝试是:
 
(defun c:测试(/)
(应用“addToStartupSuite”
'(
“lispfile1.lsp”
“lispfile2.lsp”
“lispfile3.lsp”
“lispfile4.lsp”
“lispfile5.lsp”
)
)
(普林斯)
)
(普林斯)
 
但这显然不起作用。
 
我读过“foreach”和“mapcar”,因为我认为这是一个解决方案。
 
但是没有,我再一次输掉了这场战斗。。。。
这方面有什么帮助/想法吗?
 
提前谢谢。
 
(注:这里是你的意思“不喜欢代码中的标签…”
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:24:34 | 显示全部楼层
两个选项。。。
 
  1. (foreach f '("lispfile1.lsp" "lispfile2.lsp" "lispfile3.lsp" "lispfile4.lsp" "lispfile5.lsp")
  2. (addToStartupSuite f)
  3. )
  4. (mapcar (function addToStartupSuite)
  5.        '("lispfile1.lsp" "lispfile2.lsp" "lispfile3.lsp" "lispfile4.lsp" "lispfile5.lsp")
  6. )

我会选择后者。
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 11:29:18 | 显示全部楼层
谢谢Alanjt,谢谢你的回答!
有了这个(以及最近的所有其他答案),我现在手头有很多事情要做:-)
 
您的帮助舒尔帮助了我。
 
编辑:测试了代码,它的工作方式正是我喜欢的!!
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:35:21 | 显示全部楼层
很高兴听到。
 
祝你快乐。
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 11:36:58 | 显示全部楼层
Alanjt,
 
我仍然需要你的帮助。。。
这让我感到困扰:例程可以工作,它将lisp的名称放在启动套件中,但没有路径,所以它不工作。。。hmpf。。
 
所以我想,添加路径:
 
  1. (defun test ()
  2.    (mapcar (function addtostartupsuite)
  3.     '(
  4.       (strcat(getenv "programfiles") "\\MarcoW\" "testfile1.lsp")
  5.       (strcat(getenv "programfiles") "\\MarcoW\" "testfile2.lsp")
  6.       (strcat(getenv "programfiles") "\\MarcoW\" "testfile3.lsp")
  7.       )
  8.    )
  9.    (princ)
  10. )

 
但是我得到了这个错误:
 
 
这会在哪里出错?
非常感谢您的帮助!!
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:42:58 | 显示全部楼层
将“(更改为(列表
 
'(a;sdk)内容将不会被评估。
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 11:47:49 | 显示全部楼层
反应前6分钟。。。。相当快!!
 
艾伦,这就成功了。。。然而,现在lisp例程在启动套件中是“visial”的,但它们没有加载。你能理解我的意思吗?
 
Lisp出现在启动套件中,包括路径,但如果我尝试使用我的函数,它将不起作用。手动加载有效。
 
当然,这是我所不知道的,所以如果你能进一步帮助我,我将非常高兴。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:50:04 | 显示全部楼层
大家都知道创业套件有问题。你有没有试过用阿卡多克来装。lsp文件?
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 11:57:56 | 显示全部楼层
是的,我读过创业套件“不是最好的选择”。我还读到了阿卡多克。lsp文件。
 
但我从未尝试过。
我以为这是AutoCAD附带的现有文件,我不想把它搞砸。因此,我保持原样。
我错了吗?
 
也许现在这是一个更好的解决方案,我应该试着这样做。。。我能说的就是我需要用谷歌搜索一下,因为我不知道你在说什么。
 
有一个示例/想法/提示/完整的lisp,包括所有的细节,就像我想要的那样,而不需要我进一步的实验?
(最后一个当然是个笑话:-)
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:03:18 | 显示全部楼层
阿卡多克。lsp不符合标准。但是,如果AutoCAD在支持路径中找到一个,它会将其加载到每个图形中。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 06:28 , Processed in 1.153199 second(s), 72 queries .

© 2020-2025 乐筑天下

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