飞诗(fsxm) 发表于 2008-8-12 23:35:00

(vla-sendcommand *doc* "txtexp" .......)

XIAOFEILONG 发表于 2008-8-13 00:26:00

ZZXXQQ发表于2008-8-12 16:41:00static/image/common/back.gif可以试下4楼BDYCAD的增强型命令:(command \"(c:txtexp)\" \"!ss1\" \"\")

<p></p><p>我套用这个格式,也没有成功</p><p>选择集为什么要&nbsp; "!**"的格式?这是什么含义啊?</p>

henwuqing 发表于 2008-8-13 00:37:00

不理解fsxm所说的(vla-sendcommand *doc* "txtexp" .......)

飞诗(fsxm) 发表于 2008-8-13 12:05:00

<p><font color="#ff0000">(vl-load-com)<br/>(setq *acad* (vlax-get-acad-object))<br/>(setq *doc* (vla-get-ActiveDocument *acad*))</font></p><p>(vla-SendCommand *doc* "txtexp !ss1 ")</p>

henwuqing 发表于 2008-8-13 16:27:00

回fsxm,我试过了还是不行,我在两个版本下都试了试

liminnet 发表于 2008-8-14 09:21:00

jxphklibin 发表于 2009-1-19 22:06:00

<div><font color="#ff0000"><p>ET中的命令是未注册命令,所以不能使用command调用。但ET的函数到可以借用。</p><p>可采用以下方法调用:</p><p>1、如果在LISP里调用experss tools的命令可以试一下在命令前加上(command (c:breakline)), 把这些增强的命令当一个涵数来调用就OK了。注意:没有双引号!</p><p>2、VBA中的sendcommand方法 调用txtexp</p><p>也可以在lisp中用(C:txtexp)调用</p></font><p><font color="#ff0000">(vl-load-com)<br/>(setq *acad* (vlax-get-acad-object))<br/>(setq *doc* (vla-get-ActiveDocument *acad*))</font></p><p>(vla-SendCommand *doc* "txtexp !ss1 ")</p><p>(vla-SendCommand *doc* "txtexp nil ")</p><p>(vla-SendCommand *doc* "txtexp&nbsp;")</p><p><font color="#ff0000">说明:前两句加了一个无效的参数,可以使之换行到下一行行首而已;第三局则没有换行。</font></p><p><font color="#ff0000">最关键的地方是,在双引号的最后一个字符必须是而且只能是一个空格。</font></p><p>一般可以在命令行键入命令(带C:)的函数都无参数。</p></div>

nonsmall 发表于 2009-1-20 08:45:00

<p>参数不能向后用就向前用好了</p><p>方法1:</p><p>(defun c:dd()<br/>&nbsp;(command)<br/>&nbsp;(setq ss (ssget))<br/>&nbsp;(Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'SendCommand "txtexp p&nbsp; ")<br/>)</p><p>方法2: </p><p>(Vlax-Invoke-Method WshShell 'Sendkeys "txtexp{Enter}p{Enter}{Enter}")</p>

nonsmall 发表于 2009-1-20 08:56:00

以下是引用jxphklibin在2009-1-19 22:06:00的发言:!2、VBA中的sendcommand方法 调用txtexp
最关键的地方是,在双引号的最后一个字符必须是而且只能是一个空格。
一般可以在命令行键入命令(带C:)的函数都无参数。

最关键的地方是,在双引号的最后一个字符必须是而且只能是一个空格。一般可以在命令行键入命令(带C:)的函数都无参数。
楼上说的不准确:
1 Sendcommand方法对空格没有限制 本文在最后应该加2个(空格数根据命令的需要来定)
2 带C:的不一定没有参数 你可以敲任意无效输入查看需要的参数(本帖讨论的命令应该用到了ssget 所以有关键字作为参数)
命令: TXTEXP
Select text to be EXPLODED:
选择对象: ?
*无效选择*
需要点或窗口(W)/上一个(L)/窗交(C)/框(BOX)/全部(ALL)/栏选(F)/圈围(WP)/圈交(CP)/编
组(G)/添加(A)/删除(R)/多个(M)/前一个(P)/放弃(U)/自动(AU)/单个(SI)

nonsmall 发表于 2009-1-20 09:00:00

<p>例:</p><p>(Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'SendCommand "u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ")</p><p>(Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) </p><p>'SendCommand "undo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ")</p>
页: 1 [2] 3
查看完整版本: [求助]如何使用lisp调用express tool命令与其他lisp文件