自动加载自定义的菜单方法
以下代码可自动添加辅助工具所在的目录并自动加载辅助工具菜单:;;; MC-LOAD.LSP
;;; Copyright (C) 1997 - 2002 by 明经通道 http://www.mjtd.com
;; 以下为加载明经制图辅助工具
(defun add_path ( dir / a b c)
(if (and dir
(setq c (getenv "ACAD"))
);and
(progn
;看看DIR目录是否在AutoCAD的支持目录中
(setq a (strcase c)
b (strcase dir)
);setq
(if (not (equal ";" (substr a 1 1)))
(setq a (strcat ";" a));在 a 前面加上一个";"
);if
(if (not (equal ";" (substr a (strlen a) 1)))
(setq a (strcat a ";")
c (strcat c ";");在后面加上一个";"
);setq
);if
(if (not (wcmatch a (strcat "*;" b ";*"))) ;查看“DIR”是否在支持路径中?
(progn
(setq c (strcat c dir));没有时则添加
(setenv "ACAD" c);设置到支持路径的环境变量中
);progn
(setq c nil)
);if
);progn then
(setq c nil)
);if
c
);defun add_path
(defun acc()
(setvar "cmdecho" 0)
(if (not(menugroup "MCCAD"))
(if(findfile "mccad.mnu")
(progn
(setvar "filedia" 0)
(command "menuload" "mccad")
(setvar "filedia" 1)
)
(progn
(setq a (findfile "acad.exe")) ; 建立指向辅助工具的标准路径
(setq a (substr a 1 (- (strlen a) 8))
bonus_path (strcat a "mccad")
);setq
(findfile bonus_path) ; 查看辅助工具目录是否存在
(add_path bonus_path) ; 将路径添加到支持路径中
(if (findfile "mccad.mnu")
(progn
(setvar "filedia" 0)
(command "menuload" "mccad")
(setvar "filedia" 1)
)
)
)
)
)
(if(findfile "mccad.lsp") ;如果有辅助工具配套程序,则同时加载
(load "mccad")
)
(setvar "cmdecho" 1)
(princ)
)
(acc)
(princ)
以下代码可自动显示辅助工具菜单于菜单栏中:
(defun mc-init-placemenu (/ CNT)
(setq CNT 1)
(while (< CNT 24)
(if (menucmd (strcat "P" (itoa CNT) ".1=?"))
(setq CNT (1+ CNT))
(progn
(if (> CNT 2)
(setq CNT (- CNT 2))
(setq CNT 2)
)
(menucmd (strcat "p" (itoa CNT) "=+mccad.pop1"))
(setq CNT 25)
)
)
)
)
如何判断当前屏幕菜单使用的是那个菜单组定义的屏幕菜单?
以前好象看过书说只能是主菜单的屏幕菜单才可以显示出来
不知是否真的?因为屏幕菜单的加载没有象顶行菜单一样可以选择。只是显示与不显示的关系。
屏幕菜单可以显示非罪菜单中定义的ScreenMenu,不过...
屏幕菜单可以显示非主菜单中定义的ScreenMenu,不过现在似乎没有办法判断当前显示的ScreenMenu是来自于哪个MenuGroup的,如果xd论坛上的关于AutoCAD XP的消息属实的话,未来因该可以对ScreenMenu有更多的操作可能。我不喜欢XP两个字母,为什么一定要跟风
下載學習...感謝.... 有没有实例啊,可以弄一个我们看看呢?谢谢啦
页:
[1]