明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: henwuqing

[求助]如何使用lisp调用express tool命令与其他lisp文件

  [复制链接]
发表于 2008-8-12 23:35:00 | 显示全部楼层
(vla-sendcommand *doc* "txtexp" .......)
发表于 2008-8-13 00:26:00 | 显示全部楼层
ZZXXQQ发表于2008-8-12 16:41:00可以试下4楼BDYCAD的增强型命令:(command \"(c:txtexp)\" \"!ss1\" \"\")

我套用这个格式,也没有成功

选择集为什么要  "!**"的格式?这是什么含义啊?

 楼主| 发表于 2008-8-13 00:37:00 | 显示全部楼层
不理解fsxm所说的(vla-sendcommand *doc* "txtexp" .......)
发表于 2008-8-13 12:05:00 | 显示全部楼层

(vl-load-com)
(setq *acad* (vlax-get-acad-object))
(setq *doc* (vla-get-ActiveDocument *acad*))

(vla-SendCommand *doc* "txtexp !ss1 ")

 楼主| 发表于 2008-8-13 16:27:00 | 显示全部楼层
回fsxm,我试过了还是不行,我在两个版本下都试了试
发表于 2008-8-14 09:21:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-1-19 22:06:00 | 显示全部楼层

ET中的命令是未注册命令,所以不能使用command调用。但ET的函数到可以借用。

可采用以下方法调用:

1、如果在LISP里调用experss tools的命令可以试一下在命令前加上(command (c:breakline)), 把这些增强的命令当一个涵数来调用就OK了。注意:没有双引号!

2、VBA中的sendcommand方法 调用txtexp

也可以在lisp中用(C:txtexp)调用

(vl-load-com)
(setq *acad* (vlax-get-acad-object))
(setq *doc* (vla-get-ActiveDocument *acad*))

(vla-SendCommand *doc* "txtexp !ss1 ")

(vla-SendCommand *doc* "txtexp nil ")

(vla-SendCommand *doc* "txtexp ")

说明:前两句加了一个无效的参数,可以使之换行到下一行行首而已;第三局则没有换行。

最关键的地方是,在双引号的最后一个字符必须是而且只能是一个空格。

一般可以在命令行键入命令(带C:)的函数都无参数。

发表于 2009-1-20 08:45:00 | 显示全部楼层

参数不能向后用就向前用好了

方法1:

(defun c:dd()
 (command)
 (setq ss (ssget))
 (Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'SendCommand "txtexp p  ")
)

方法2:

(Vlax-Invoke-Method WshShell 'Sendkeys "txtexp{Enter}p{Enter}{Enter}")

发表于 2009-1-20 08:56:00 | 显示全部楼层
  1. 以下是引用jxphklibin在2009-1-19 22:06:00的发言:!2、VBA中的sendcommand方法 调用txtexp
  2. 最关键的地方是,在双引号的最后一个字符必须是而且只能是一个空格。
  3. 一般可以在命令行键入命令(带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)
回复 支持 1 反对 0

使用道具 举报

发表于 2009-1-20 09:00:00 | 显示全部楼层

例:

(Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'SendCommand "u      ")

(Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument)

'SendCommand "undo                            ")

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

本版积分规则

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

GMT+8, 2024-11-16 20:50 , Processed in 0.169304 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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