加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在CAD的命令栏内运行宏

(2008-11-08 09:55:45)
标签:

it

分类: 工作/开发方面

一般运行宏的三种办法:

1、输入vbarun,然后选择宏(首先使用vbaload装载DVB文件);

2、使用vbaide进入编辑环境,然后运行宏。

 

下面这种办法是在小熊(笨熊星座)的帮助下完成的,直接在命令栏内输入宏名称即可,就像输入命令一样。

 

1、首先将程序(即DVB文件)与acad2006doc.lsp放在同一本目录下;

2、添加代码:

需要把以下代码放进acad200xdoc.lsp(其中x表示版本,我的电脑上装的是2006,所以是acad2006doc.lsp)

代码如下:

;;自动加载VBA程序的函数
(defun AutoVBALoad (app cmdliste / qapp)
  (vl-load-com)
  (setq qapp (strcat "\"" app "\""))
  (mapcar
    '(lambda (cmd / nom_cmd dot nodotcmd)
       (progn
         (setq dot (vl-string-search "." cmd))
         (if dot
           (setq nodotcmd (substr cmd (+ dot 2)))
           (setq nodotcmd cmd)
         )
         (setq nom_cmd (strcat "C:" nodotcmd))
         (eval
           (read (strcat
                   "(defun " nom_cmd "(/ app)"
                     "(if (setq app(fdvbfile " qapp "))"
                       "(vl-vbarun (strcat app \"!" cmd "\"))"
                       "(nodvbfile " qapp "))"
                   "(princ))"
       )))))
    cmdliste
  )
  nil
)
(defun fdvbfile (app)
  (if (not (findfile app))
    (if (not (findfile (strcat app ".dvb"))) nil  (strcat app ".dvb")) app)
)
(defun nodvbfile (filename)
  (princ (strcat "\n文件 " filename "(.dvb) 在搜索路径文件夹中未找到。" ))
  (princ "\n请检查支持文件的安装,然后重试。")
  (princ)
)

 

然后在acad200xdoc.lsp中紧接着输入如下代码,当然,这个是可以扩展的,这里这个例子是帮助明经通道论坛上的panwei5301写的代码。

;;自动加载VBA程序 (AutoVBALoad "程序名称"'("宏名称" "模块名称.宏名称"))
(AutoVBALoad "临时DVB"'("lianxi01" "lianxi01"))

panwei5301请注意:这里的临时DVB是DVB的文件名,两个lianxi01都是宏名称,当然你可以这样写:

(AutoVBALoad "临时DVB"'("lianxi01" "模块1.lianxi01"))

因为你的lianxi01是放在模块1中的。

 

3、直接运行程序的名称即可。

 

在此非常感谢笨熊星座的热心指导和帮助。

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有