明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6356|回复: 26

如何新建pgp文件,定义简化命令

  [复制链接]
发表于 2008-5-5 14:05:00 | 显示全部楼层 |阅读模式

 

 

    如何新建pgp文件,定义简化命令,像附件里的那个外挂一样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-5-27 00:57:59 | 显示全部楼层
;把别人的帖子内容改了一下,直接可以把自己定义的快捷键加到acad.pgp后了。
;XXX.PGP是自定义的快捷键文件,放在支持搜索路径中,执行repgp即可。
(defun c:repgp (/ f_txt n cctd)
(princ "\n 此命令加载自定义快捷键.")
  (setq f_txt (open (findfile "XXX.pgp") "r"))
  (setq cctd '()); 存放读取pgp文件的文本行
  (while (setq txt_row (read-line f_txt))
    (setq cctd (cons txt_row cctd))
  )
  (close f_txt)
  (setq cctd (reverse cctd)
        n 0
  )
  (setq f_txt (open (findfile "acad.pgp") "A"))
  (repeat (length cctd)
    (write-line (nth n cctd) f_txt)
    (setq n (+ 1 n))
  )
  (close f_txt)
  (setvar "RE-INIT" 16)
  (princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2008-5-7 09:01:00 | 显示全部楼层
本帖最后由 作者 于 2008-5-7 9:18:13 编辑

这样做好像没有太大必要,如果一定要这样方法无非方法两种:

1.直接通过LISP变成读取 ayunger.pgp 文件,然后定义成

(defun c:XX () (vla-sendcommand .....))

的格式,最后 eval

2.备份 acad.pgp(如acad,pgp_bak) , 用 vl-file-copy 的方法将 ayunger.pgp 复制到 acad.pgp结尾

然后(setvar "re-init" 16)重新初始化pgp,最后恢复从备份的 acad.pgp_bak 恢复acad.pgp

回复 支持 1 反对 0

使用道具 举报

发表于 2008-6-7 23:52:00 | 显示全部楼层
直接到论坛下查找,我前几天发过一个本人ayunger.fas中调用PGP的完整函数!
回复 支持 1 反对 0

使用道具 举报

发表于 2008-6-4 22:06:00 | 显示全部楼层

这是本人《一个非常好用的AutoCAD工具集》中关于自动加载Ayunger.PGP文件的函数,先与大家分享!

有问题,直接: E-mail:AyungerStudio@163.com或QQ:420304230

;;********************************
;;; No.3 AY工具快捷命令初始化 函数
;;;********************************
(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


;;;┏━━━━━━━━━━━━━━━━━━┓
;;;┃ AY工具快捷命令自动加载(反应器调用) ┃
;;;┗━━━━━━━━━━━━━━━━━━┛
(C:ayCMD);调用AY工具快捷命令自动加载函数. 
(defun ayLoadSCMDReactor();建立AutoCAD文档级反应器.
 (vl-load-com)
 (if (not #AY_LOADSCMDREACTOR)
   (setq #AY_LOADSCMDREACTOR (vlr-docmanager-reactor nil '((:vlr-documentBecameCurrent . AI:aySCMDCallBack))))
 );end_if
 (defun AI:aySCMDCallBack (aReactor bList) (C:ayCMD));;;定义反应器的回调函数.
);end_defun
(or #AY_LOADSCMDREACTOR (ayLoadSCMDReactor));自动加载反应器.
(princ "\nAutoCAD AYunger Tools Copyright (C)2001-2008 AYunger Studio")
(prin1)

回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2008-5-6 19:03:00 | 显示全部楼层

盼高手来解决

回复 支持 0 反对 1

使用道具 举报

发表于 2008-5-6 12:24:00 | 显示全部楼层
直接用WINDOWS的记事本写就行。也可直接改ACAD.PGP,改后另存。
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2008-5-6 10:54:00 | 显示全部楼层

高手去哪了

 楼主| 发表于 2008-5-6 13:38:00 | 显示全部楼层

可不可以改成别的名称,比如:123.pgp

可后续怎么调用此pgp文件呢

发表于 2008-5-6 16:30:00 | 显示全部楼层

盼高手解答。

这个问题也困惑我好久了!~

发表于 2008-5-6 21:24:00 | 显示全部楼层
3楼不是说了?
 楼主| 发表于 2008-5-7 08:45:00 | 显示全部楼层

说白了就是用lisp调用ayunger.pgp(而不是acad.pgp)里的简化命令

如何加载? 如何调的问题?

 楼主| 发表于 2008-5-7 12:33:00 | 显示全部楼层

在此谢谢各位热心人,(defun c:XX () (vla-sendcommand .....))我不知如何操作

或许看来是我没说清楚

比如说我做了个小程序,vlx格式的

用这个程序的是别人

为了能让别人能按他的喜好去修改命令(或者我的程序跟其它程序的命令有冲突时)

我必须建一个pgp文件,就像一楼ayunger.pgp,他想咋改就咋改

当然我不可能将命令复制到acad.lsp后面,因为将来程序升级时,会不好控制

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 19:53 , Processed in 0.198705 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表