![]() |
[求助]高手赐教: 如何在autocad多文档切换之间自动加载自定义的pgp
[求助]高手赐教: 如何在autocad多文档切换之间自动加载自定义的pgp
www.dimcax.com [求助]高手赐教: 如何在autocad多文档切换之间自动加载自定义的pgp 下面是一个自定义的aunger.pgp文件加载程序,但是存在一个问题: 发现当第一次打开autocad文件时,会自动加载aunger.pgp中自定义的命令,但是当多文档之间切换时,则丢失了,只能手动运行一次aycmd命令,很麻烦的,请高手赐教!谢谢 (defun c:aycmd(/ pgpfile fp i xstring alist shortcmd globalcmd) (vl-load-com) (setq pgpfile "ayunger.pgp");f:\\ayungerstudio\\vlisp\\ayunger.pgp (if (setq pgpfile (findfile pgpfile)) (progn;then (setq fp (open pgpfile "r")) (setq i 1) (while (setq xstring (read-line fp)) (if (= (type xstring) 'sym) (setq xstring (vl-symbol-name xstring)));转换数据文件中无引号的字符串. (while (vl-string-search " " xstring);去掉所有的空格. (setq xstring(vl-string-subst "" " " xstring));空格. (setq xstring(vl-string-subst "" " " xstring));tab符. );end_while (if (and (/= (substr xstring 1 1) ";") (vl-string-search "," xstring) (vl-string-search "*" xstring)) (progn (setq alist (read (strcat "(" (vl-string-subst " . c:" ",*" xstring) ")"))) (setq shortcmd (vl-string-trim " " (vl-symbol-name (car alist)))) (setq globalcmd (cdr alist)) ;(vlax-remove-cmd shortcmd);删除已定义的命令. (vlax-add-cmd shortcmd globalcmd) );end_progn );end_if (setq i (+ i 1)) );end_while read-line (close fp) );end_progn then (princ "\nay工具简化命令定义文件 ayunger.pgp 没找到或不存在!") );end_if (princ) );end_defun ;;ayunger.pgp ;; ;; ay工具命令简化设置文件 ;; ;; ;; 格式: <简化命令>, *<完全命令> ;; arw, *ayarw tl, *ayrailway spx, *ayspx zpx, *ayzpx pdx, *aypdx pdxc, *aypdxc cx, *aypercurve qx, *aytancurve ll, *ayll 【按照本人的理解,应该是有关文档之间切换时调用的“反应器”函数,但是关于这方面的资料太少了!请帮助】 d 不对,与本文件无关 d 教你一招吧,在你压缩包文件夹里面建立一个文件,文件名为 aunger.mnl ,然后把这个语句 (c:aycmd) 加入里面,就可以了。 d 首先谢谢楼上的兄弟,但是分析如下: 1、中ayunger.mnl中定义的函数(c:aycmd)只在打开或新建文档时加载一次, 而我所需要的是在活动文档之间切换时,自动运行该函数。 2、可以通过在ayunger.mnl中加入一句如(princ "\nayunger.mnl文件加载测试!"),测试就可知晓。 3、问题按照本人的理解应该是:文档之间切换的反应器函数,但是没有相关的资料。 d 可以通过在ayunger.mnl中加入(alert "\nayunger.mnl文件加载测试!")测试 d 是的,就是只运行一次,而对于已经打开的多文档(如:1.dwg、2.dwg、3.dwg)之间切换时不会发生; 而我需要的就是在多文档之间切换时(如当前文件为1.dwg,需要切换到3.dwg时)均能够运行一次, 以便加载我所需要的诸如快捷命令等,因为一旦切换原来由c:aycmd调用的快捷命令会失效! |
| 所有的时间均为北京时间。 现在的时间是 01:59 AM. |