明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4650|回复: 9

vba宏如何在命令行运行

[复制链接]
发表于 2006-11-2 14:09:00 | 显示全部楼层 |阅读模式

我现在做了一个vba宏,然后写了一个lisp存在宏同一个目录里,我的想法是想在AutoCAD的命令行里输入一个命令,就能直接运行vba宏

  lisp的内容如下:

  (defun c:xkxj()
    (setvar "cmdecho" 0)
    (command "-vbarun" "E:\autocad\ldtnew\hxkxj.dvb!ThisDrawing.Test5")
    (setvar "cmdecho" 1)
    (princ)
)

我在autocad中启动组里面加载上面的两个文件,然后在命令行里输入xkxj,运行报错:找不到宏,不知道是那里的原因?大家帮忙看一下

 宏没有问题,我用vbarun执行宏都可以正确执行宏

 楼主| 发表于 2006-11-8 12:16:00 | 显示全部楼层

大家帮忙看一下呀,我现在解决不了这个问题

发表于 2006-11-8 14:32:00 | 显示全部楼层
"_vbarun"
发表于 2007-10-18 21:56:00 | 显示全部楼层

试试看把你的路径中的"\"符号翻过来,写成"/"

发表于 2007-10-22 22:57:00 | 显示全部楼层

E:\autocad\ldtnew\hxkxj.dvb!

上面不写  试试看

发表于 2007-10-22 23:24:00 | 显示全部楼层

先将宏放到搜索路径里

(vl-load-com)
(vl-vbaload(findfile "拍卖地块加点.dvb"))
(defun c:pmjd()
   (vl-vbarun "jd")
   (princ)
)

发表于 2008-4-26 00:12:00 | 显示全部楼层

 将 (command "-vbarun" "E:\autocad\ldtnew\hxkxj.dvb!ThisDrawing.Test5") 改为

  (command "_-vbarun" "hxkxj") 即可(lsp文件与dvb未见同目录)

发表于 2008-5-9 20:25:00 | 显示全部楼层

好像应该将thisdrawing去掉

发表于 2008-5-9 20:46:00 | 显示全部楼层

首先需要加载vba,才能运行lisp命名执行vba。

那么怎么样实现下面的功能呢:

执行命令xx,如果vba没有加载,则加载vba,路径“yy”,执行zz函数。

如果已经加载了vba,直接执行函数。

哪位高手有这个lsp?

发表于 2008-5-15 17:01:00 | 显示全部楼层

(defun C:abcd ()
     (vl-load-com)
     (vla-runmacro
          (vlax-get-acad-object)
          "repltext.dvb!module1.ReplaceText") 
     (princ)
)

上面的代码生成lsp文件,把lsp文件和repltext.dvd放到搜索路径里,加载lsp文件,运行abcd,如果repltext未加载就自动加载来运行replacetext宏

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

本版积分规则

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

GMT+8, 2024-11-26 09:44 , Processed in 0.177452 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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