|
发表于 2003-3-16 19:21:00
|
显示全部楼层
你可以把你所要加载的内容全部写到一个LSP文件中,如果你使用了菜单,那就可以用象以下程序一样来加载你的菜单:
(defun acc()
(setvar "cmdecho" 0)
(if (not(menugroup "ac_bonus"))
(if (findfile "ac_bonus.mnu")
(progn
(setvar "filedia" 0)
(command "menuload" "ac_bonus")
(setvar "filedia" 1)
)
(progn
(princ "由于你的AutoCAD不是完全安装,可能在附加菜单中有部分功能没有!")
(setq a (findfile "acad.exe")) ; Build the standard path to the bonus files.
(setq a (substr a 1 (- (strlen a) 8))
bonus_path (strcat a "bonus\\cadtools")
);setq
(findfile bonus_path) ; see if the standard bonus directory exists
(add_path bonus_path) ; attempt to put it on the AutoCAD search path
(if (findfile "ac_bonus.mnu")
(progn
(setvar "filedia" 0)
(command "menuload" "ac_bonus")
(setvar "filedia" 1)
)
)
)
)
)
;;注意这个程序是AutoCAD R14所使用的程序,你可以自己修改一下用于自己的菜单。
这段程序可以写到acad2004.lsp文件中。如果使用菜单的话,则所有要加载的程序都可以写到 菜单名.mnl文件中。
菜单名.mnl文件可以分为以下几段:
;;显示菜单段,把自定义菜单显示在倒数第三项位置:
(defun acet-init-placemenu (/ CNT)
(setq CNT 1)
(while ( CNT 2)
(setq CNT (- CNT 2))
(setq CNT 2)
)
(menucmd (strcat "p" (itoa CNT) "=+MCCAD.pop1"))
(setq CNT 25)
)
)
)
)
;;自动加载LSP程序段:
如
(autoload "ddtl" '("ddtyl" "ddbtl" "ddfjl" "ddqmb" "ddggb" "ddmxl"))
;;自动加载VBA程序段:
;;自动加载VBA程序的函数
(defun AutoVBALoad (cmdname project macro)
(eval
(list 'defun
(read (strcat "C:" cmdname))
nil
(list
'vl-vbarun
(strcat
project
"!"
(if macro
macro
cmdname
)
)
)
(princ)
)
)
)
;;自动加载VBA程序
如:
(AutoVBALoad "DG" "UnNameGroup.dvb" "DelUnNameGroup")
(AutoVBALoad "AG" "UnNameGroup.dvb" "AddUnNameGroup")
;;;一些非常实用的快捷方式程序
;;圆角为0
(defun c:f0 () (command "fillet" "r" "0" "fillet"))
;;水平辅助线
(defun c:xh () (command "xline" "hor"))
;;垂直辅助线
(defun c:XV () (command "xline" "ver"))
;;一些VBA程序的触发程序
(defun c:ag()(princ))
(defun c:dg()(princ))
还有其它东西你就自己想吧,大概就这些吧。 |
|