菜单和宏
大家好!我需要帮助。
这是我的问题:
我想写一个lisp程序,自动加载菜单文件(mns)并运行2个宏。
我还想修改支持文件搜索路径。
谁能帮帮我吗!
谢谢你的回答!
顺致敬意, 你好
你想实现宏的哪些动作?
如果要更改支持文件,可以从第一个选项卡中的Autocad选项中进行更改。。
当做
塔瓦特 你好
这是我的问题:
用户将使用我的程序(我的功能和菜单),因此我必须自动执行所有操作,因为大多数用户不知道如何修改支持文件搜索路径。
这就是为什么我需要知道如何以编程方式修改支持文件路径,以及如何运行宏。因为如果用户选项是:禁用宏,宏将不会自动运行
当做
对于宏,请打开CUI,然后执行新命令,并将代码张贴在宏标记中,不要忘记将此新命令添加到菜单中。
您想在支持文件中更改什么????
当做
塔瓦特 你好
谢谢,但我不知道如何编写运行另一个宏的宏。。。
例如:我制作了菜单,只需要命令来运行“mymacro”。
命令是什么?
^C^C(运行“mymacro”)或什么?
在哪里可以找到有关编写宏的信息?
谢谢
当做
请参阅Afralisp上的此链接,它将向您展示如何:http://www.afralisp.net/archive/lisp/install1.htm 我以前问过你想做什么动作?
根据你所提到的,这表明你在编程方面很出名,这将使初学者有所遵循!!!!!
清楚而直接地写下你想要的,这对所有人都有好处,对你的目标也有好处。
当做
塔瓦特 好的,我试着把我的问题写清楚:
这是一个完全有效的程序,但用户必须做很多事情才能工作。(好的,大多数事情都是第一次,作为一种选择)
1) 他/她必须修改支持文件路径
(如果可能的话,我想通过编程实现,我找到了一个命令:addsupportfilepath,但不起作用)
2) 在AutoCad文件(.dwg)中有2个宏。它必须运行。
通常,当有人打开包含宏的dwg文件时,系统会询问用户是否要运行它。我的问题是,可能用户单击“否”,或者系统没有询问他,而他忘记了运行宏。。。
所以我必须运行这两个宏。
我已经解决了这个问题。
我写了一个函数:
(命令“-vbarun”“mymacro.whatever”)
我问:当我运行我的函数(在函数中)时,我能确定宏是否被找到并成功运行吗?
(当然,在命令行中我看到了,如果发生了什么事情:但用户很愚蠢,他/她没有)
我想制作一个菜单,用户只需点击,程序就可以制作这些东西(支持文件,运行宏)。
菜单已完成。
我想就这些。
我希望现在问题清楚了。
我等待回应!
当做
我忘了说:我想确定用户是否禁用了宏,如果禁用了,我想启用它。是否可以通过lisp函数实现?
(defun LM:AddSupportPaths ( lst / PreferenceFiles SupportPaths )
;; © Lee Mac~14.06.10
;; (AddSupportPaths '("C:\\Folder" "C:\\Folder\\Subfolder" ... )
(vl-load-com)
(setq SupportPaths
(vla-get-SupportPath
(setq PreferenceFiles
(vla-get-files
(vla-get-preferences
(vlax-get-acad-object)
)
)
)
)
)
(vla-put-SupportPath PreferenceFiles
(LM:lst->str
(cons SupportPaths
(vl-remove-if
(function
(lambda ( s )
(vl-string-search s SupportPaths)
)
)
lst
)
)
";"
)
)
lst
)
(defun LM:RemoveSupportPaths ( lst / PreferenceFiles SupportPaths )
;; © Lee Mac~14.06.10
;; (RemoveSupportPaths '("C:\\Folder" "C:\\Folder\\Subfolder" ... )
(vl-load-com)
(setq SupportPaths
(vla-get-SupportPath
(setq PreferenceFiles
(vla-get-files
(vla-get-preferences
(vlax-get-acad-object)
)
)
)
)
)
(vla-put-SupportPath PreferenceFiles
(LM:lst->str
(vl-remove-if
(function
(lambda ( s )
(vl-position s lst)
)
)
(LM:StringParser SupportPaths ";")
)
";"
)
)
lst
)
(defun LM:lst->str ( lst del )
;; © Lee Mac~14.06.10
(if (cdr lst)
(strcat (car lst) del (LM:lst->str (cdr lst) del))
(car lst)
)
)
(defun LM:StringParser ( str del )
;; © Lee Mac~14.06.10
(if (setq pos (vl-string-search del str))
(cons (substr str 1 pos)
(LM:StringParser (substr str (+ pos 1 (strlen del))) del))
(list str)
)
)
页:
[1]
2