乐筑天下

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

[编程交流] 菜单和宏

[复制链接]

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:35:50 | 显示全部楼层 |阅读模式
大家好!
 
我需要帮助。
这是我的问题:
我想写一个lisp程序,自动加载菜单文件(mns)并运行2个宏。
我还想修改支持文件搜索路径。
谁能帮帮我吗!
 
谢谢你的回答!
顺致敬意,
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:40:23 | 显示全部楼层
你好
 
你想实现宏的哪些动作?
 
如果要更改支持文件,可以从第一个选项卡中的Autocad选项中进行更改。。
 
当做
 
塔瓦特
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:44:25 | 显示全部楼层
你好
这是我的问题:
用户将使用我的程序(我的功能和菜单),因此我必须自动执行所有操作,因为大多数用户不知道如何修改支持文件搜索路径。
这就是为什么我需要知道如何以编程方式修改支持文件路径,以及如何运行宏。因为如果用户选项是:禁用宏,宏将不会自动运行
 
当做
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:45:33 | 显示全部楼层
 
对于宏,请打开CUI,然后执行新命令,并将代码张贴在宏标记中,不要忘记将此新命令添加到菜单中。
 
您想在支持文件中更改什么????
 
当做
 
塔瓦特
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:49:27 | 显示全部楼层
你好
 
谢谢,但我不知道如何编写运行另一个宏的宏。。。
例如:我制作了菜单,只需要命令来运行“mymacro”。
命令是什么?
^C^C(运行“mymacro”)或什么?
在哪里可以找到有关编写宏的信息?
 
谢谢
 
当做
 
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:52:34 | 显示全部楼层
 
 
请参阅Afralisp上的此链接,它将向您展示如何:http://www.afralisp.net/archive/lisp/install1.htm
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:55:11 | 显示全部楼层
我以前问过你想做什么动作?
根据你所提到的,这表明你在编程方面很出名,这将使初学者有所遵循!!!!!
 
清楚而直接地写下你想要的,这对所有人都有好处,对你的目标也有好处。
 
当做
 
塔瓦特
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:59:34 | 显示全部楼层
好的,我试着把我的问题写清楚:
 
这是一个完全有效的程序,但用户必须做很多事情才能工作。(好的,大多数事情都是第一次,作为一种选择)
 
1) 他/她必须修改支持文件路径
(如果可能的话,我想通过编程实现,我找到了一个命令:addsupportfilepath,但不起作用)
 
2) 在AutoCad文件(.dwg)中有2个宏。它必须运行。
通常,当有人打开包含宏的dwg文件时,系统会询问用户是否要运行它。我的问题是,可能用户单击“否”,或者系统没有询问他,而他忘记了运行宏。。。
所以我必须运行这两个宏。
我已经解决了这个问题。
我写了一个函数:
(命令“-vbarun”“mymacro.whatever”)
 
我问:当我运行我的函数(在函数中)时,我能确定宏是否被找到并成功运行吗?
(当然,在命令行中我看到了,如果发生了什么事情:但用户很愚蠢,他/她没有)
 
我想制作一个菜单,用户只需点击,程序就可以制作这些东西(支持文件,运行宏)。
菜单已完成。
 
我想就这些。
我希望现在问题清楚了。
 
我等待回应!
 
当做
 
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 11:03:15 | 显示全部楼层
我忘了说:我想确定用户是否禁用了宏,如果禁用了,我想启用它。是否可以通过lisp函数实现?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:05:56 | 显示全部楼层
  1. (defun LM:AddSupportPaths ( lst / PreferenceFiles SupportPaths )
  2. ;; © Lee Mac  ~  14.06.10
  3. ;; (AddSupportPaths '("C:\\Folder" "C:\\Folder\\Subfolder" ... )
  4. (vl-load-com)
  5. (setq SupportPaths
  6.    (vla-get-SupportPath
  7.      (setq PreferenceFiles
  8.        (vla-get-files
  9.          (vla-get-preferences
  10.            (vlax-get-acad-object)
  11.          )
  12.        )
  13.      )
  14.    )
  15. )
  16. (vla-put-SupportPath PreferenceFiles
  17.    (LM:lst->str
  18.      (cons SupportPaths
  19.        (vl-remove-if
  20.          (function
  21.            (lambda ( s )
  22.              (vl-string-search s SupportPaths)
  23.            )
  24.          )
  25.          lst
  26.        )
  27.      )
  28.      ";"
  29.    )
  30. )
  31. lst
  32. )
  33. (defun LM:RemoveSupportPaths ( lst / PreferenceFiles SupportPaths )
  34. ;; © Lee Mac  ~  14.06.10
  35. ;; (RemoveSupportPaths '("C:\\Folder" "C:\\Folder\\Subfolder" ... )
  36. (vl-load-com)
  37. (setq SupportPaths
  38.    (vla-get-SupportPath
  39.      (setq PreferenceFiles
  40.        (vla-get-files
  41.          (vla-get-preferences
  42.            (vlax-get-acad-object)
  43.          )
  44.        )
  45.      )
  46.    )
  47. )
  48. (vla-put-SupportPath PreferenceFiles
  49.    (LM:lst->str
  50.      (vl-remove-if
  51.        (function
  52.          (lambda ( s )
  53.            (vl-position s lst)
  54.          )
  55.        )
  56.        (LM:StringParser SupportPaths ";")
  57.      )
  58.      ";"
  59.    )
  60. )
  61. lst
  62. )
  63. (defun LM:lst->str ( lst del )
  64. ;; © Lee Mac  ~  14.06.10
  65. (if (cdr lst)
  66.    (strcat (car lst) del (LM:lst->str (cdr lst) del))
  67.    (car lst)
  68. )
  69. )
  70. (defun LM:StringParser ( str del )
  71. ;; © Lee Mac  ~  14.06.10
  72. (if (setq pos (vl-string-search del str))
  73.    (cons (substr str 1 pos)
  74.          (LM:StringParser (substr str (+ pos 1 (strlen del))) del))
  75.    (list str)
  76. )
  77. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:12 , Processed in 0.743374 second(s), 72 queries .

© 2020-2025 乐筑天下

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