几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(AutoLISP)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-26, 03:10 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 [求助]高手赐教: 如何在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调用的快捷命令会失效!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 03:22 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多