vba宏如何在命令行运行
<P>我现在做了一个vba宏,然后写了一个lisp存在宏同一个目录里,我的想法是想在autocad的命令行里输入一个命令,就能直接运行vba宏</P><P> lisp的内容如下:</P>
<P> (defun c:xkxj() <BR> (setvar "cmdecho" 0) <BR> (command "-vbarun" "E:\autocad\ldtnew\hxkxj.dvb!ThisDrawing.Test5") <BR> (setvar "cmdecho" 1) <BR> (princ) <BR>)</P>
<P>我在autocad中启动组里面加载上面的两个文件,然后在命令行里输入xkxj,运行报错:找不到宏,不知道是那里的原因?大家帮忙看一下</P>
<P> 宏没有问题,我用vbarun执行宏都可以正确执行宏</P> <P>大家帮忙看一下呀,我现在解决不了这个问题</P> "_vbarun" <p>试试看把你的路径中的"\"符号翻过来,写成"/"</p><p></p> <p>E:\autocad\ldtnew\hxkxj.dvb!</p><p>上面不写 试试看</p> <p></p><p>先将宏放到搜索路径里</p><p>(vl-load-com)<br/>(vl-vbaload(findfile "拍卖地块加点.dvb"))<br/>(defun c:pmjd()<br/> (vl-vbarun "jd")<br/> (princ)<br/>)</p> <p> 将 (command "-vbarun" "E:\autocad\ldtnew\hxkxj.dvb!ThisDrawing.Test5") 改为</p><p> (command "_-vbarun" "hxkxj") 即可(lsp文件与dvb未见同目录)<br/><br/></p> <p>好像应该将thisdrawing去掉</p> <p>首先需要加载vba,才能运行lisp命名执行vba。</p><p>那么怎么样实现下面的功能呢:</p><p></p><p>执行命令xx,如果vba没有加载,则加载vba,路径“yy”,执行zz函数。</p><p>如果已经加载了vba,直接执行函数。</p><p>哪位高手有这个lsp?</p> <p>(defun C:abcd ()<br/> (vl-load-com)<br/> (vla-runmacro<br/> (vlax-get-acad-object)<br/> "repltext.dvb!module1.ReplaceText") <br/> (princ)<br/>) </p><p>上面的代码生成lsp文件,把lsp文件和repltext.dvd放到搜索路径里,加载lsp文件,运行abcd,如果repltext未加载就自动加载来运行replacetext宏</p>
页:
[1]