tsxljj 发表于 2004-4-3 21:51:00

学学看。

lazybones 发表于 2004-4-7 09:21:00

郑大老板真乃高手,我正冥思苦想如何确保把自定义的菜单在不同的acad都插在同一位置呢。


不过我的程序浅显易懂 :)


;;加载自定义菜单<BR>(defun c:ldmu ()<BR>       (setq pre_filedia (getvar "filedia"))<BR>       (setvar "filedia" 0)<BR>       (command "menuload" "menutest")<BR>       (menucmd "p11=+mymenu.pop1");注意=之后的+<BR>       (setvar "filedia" pre_filedia)<BR>       (princ)<BR>)<BR>;;卸载自定义菜单<BR>(defun c:uldmu ()<BR>       (setq pre_filedia (getvar "filedia"))<BR>       (setvar "filedia" 0)<BR>       (command "menuunload" "mymenu")<BR>       (setvar "filedia" pre_filedia)<BR>       (princ)<BR>)

lazybones 发表于 2004-4-7 10:15:00

整合

整合之后,不过将菜单项改为倒数第二项了。


;;加载自定义菜单到倒数第二项<BR>;;菜单文件名为menutest.mnu,MENUGROUP=MYMENU<BR>(defun c:ldmu (/ pre_filedia CNT)<BR>       (setq pre_filedia (getvar "filedia"))<BR>       (setvar "filedia" 0)<BR>       (command "menuload" "menutest")<BR>       (setq CNT 1)<BR>       (while (menucmd (strcat "P" (itoa CNT) ".1=?"))<BR>                       (setq CNT (1+ CNT))<BR>       )<BR>       (if (&gt; CNT 1)<BR>                       (setq CNT (- CNT 1))<BR>                       (setq CNT 1)<BR>       )<BR>       (menucmd (strcat "P" (itoa CNT) "=+mymenu.pop1"))<BR>       (setvar "filedia" pre_filedia)<BR>       (princ)<BR>)<BR>;;卸载自定义菜单<BR>(defun c:uldmu (/ pre_filedia)<BR>       (setq pre_filedia (getvar "filedia"))<BR>       (setvar "filedia" 0)<BR>       (command "menuunload" "mymenu")<BR>       (setvar "filedia" pre_filedia)<BR>       (princ)<BR>)

lazybones 发表于 2004-4-7 11:14:00

优化

加载、卸载前先判断是否已经加载


;;加载自定义菜单到倒数第二项<BR>;;菜单文件名为menutest.mnu,MENUGROUP=MYMENU<BR>(defun c:ldmu (/ pre_filedia CNT)<BR>       (if (not (menugroup "mymenu"))<BR>                       (progn<BR>                                       (setq pre_filedia (getvar "filedia"))<BR>                                       (setvar "filedia" 0)<BR>                                       (command "menuload" "menutest")<BR>                                       (setq CNT 1)<BR>                                       (while (menucmd (strcat "P" (itoa CNT) ".1=?"))<BR>        (setq CNT (1+ CNT))<BR>                                       )<BR>                                       (if (&gt; CNT 1)<BR>        (setq CNT (- CNT 1))<BR>        (setq CNT 1)<BR>                                       )<BR>                                       (menucmd (strcat "P" (itoa CNT) "=+mymenu.pop1"))<BR>                                       (setvar "filedia" pre_filedia)<BR>                       )<BR>                       (prompt "\n菜单已加载!")<BR>       )<BR>       (princ)<BR>)<BR>;;卸载自定义菜单<BR>(defun c:uldmu (/ pre_filedia)<BR>       (if (menugroup "mymenu")<BR>                       (progn<BR>                                       (setq pre_filedia (getvar "filedia"))<BR>                                       (setvar "filedia" 0)<BR>                                       (command "menuunload" "mymenu")<BR>                                       (setvar "filedia" pre_filedia)<BR>                       )<BR>                       (prompt "\n未找到需要卸载的菜单!")<BR>       )<BR>       (princ)<BR>)

tukuitk 发表于 2004-4-7 17:31:00

飞哥的程序一定要好好看看的!

小妹丁 发表于 2004-4-7 19:53:00

不看不行

hougang111 发表于 2004-4-12 20:45:00

飞版主你好,我是个初学者,想用lisp 语言在AutoCAD的菜单栏上加上一个菜单(“液压零件库”),能通过调用菜单调用名种零件,你能给我一点提示吗?


我在把零件做成经幻灯片后,请用如何在这个基础上建成一个图形库呢?


谢 谢!

meflying 发表于 2004-4-12 20:54:00

你要把图画好了,存成一个或多个文件,,我写过一个插入图块的程序,你可以搜索一下。。。

crane_QS 发表于 2004-4-12 21:23:00

xuexi

spring 发表于 2004-4-13 08:37:00

meflying发表于2004-3-30 14:06:00static/image/common/back.gif既然你已知道menucmd这个函数,为什么不自己去试一下,要到这里问是否可以???



希望你自己琢磨出来后再看:








(menucmd \"p11=menug...

<BR>我也回复一个看看
页: 1 [2] 3 4 5 6 7 8 9 10
查看完整版本: 加载下拉菜单