找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2857|回复: 13

[求助] [求助]:vla-sendcommand 的用法

[复制链接]
发表于 2006-1-10 22:59:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我用(vla-sendcommand  newdrawing_path "tmp " )发送命令到新开图档时,会出现暂停无反应状态,请问是什么原因?????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-1-10 23:38:44 | 显示全部楼层
SendCommand 是这样用吗?

Signature

object.SendCommand(Command)

Object

Document
The object or objects this method applies to.

Command

String; input-only
The command to send to the document.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-11 13:08:40 | 显示全部楼层
功能  
在不保存的情况下关闭所有文档
(defun ax:CloseAll ( / item cur)
  (vlax-for item (vla-get-documents (vlax-get-acad-object))
    (if (= (vla-get-active item) :vlax-false)
      (vla-close item :vlax-false)
      (setq cur item)
    )
  )
  (vla-sendcommand cur "_.CLOSE")
)

从该例子可以看出,sendcommand只适用于当前文档
因为只有当前文档才有对cad框架(framework)的控制权.
这是我的理解,多多指教
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-11 22:35:18 | 显示全部楼层
tmp是什么命令?
不能跨文档不是sendcommand的错,是vlisp的错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-14 23:18:34 | 显示全部楼层
最初由 狂刀 发布
[B]tmp是什么命令?
不能跨文档不是sendcommand的错,是vlisp的错 [/B]

狂刀兄:
   tmp 是俺前些日子自编的一个小命令,用于自动修改a3图块内的
ECN属性,但只能修改当前图档的a3图块。
   由于工作需要,经常要对一批图档内的ECN作批量修改,故想用sendcommand来跨文档操做。
   请指教!
   这里先附上a3图块的图档,下面再附上tmp.lsp文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-14 23:25:27 | 显示全部楼层
再附上tmp.lsp文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-1-15 07:07:25 | 显示全部楼层
跨图档操作应当使用 ObjectDBX
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-18 23:18:23 | 显示全部楼层
ObjectDBX  我还需学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-19 23:57:05 | 显示全部楼层
不好意思,前面未附vla-sendcommand 的使用实例,现附上,请各位不吝赐教,看下
是什么原因用vla-sendcommand 发送命令到新开图档时,会出现暂停无反应状态,奇
怪的是按Ctrl+Tab键切换图档时vla-sendcommand 竟能生效,但总不能图档多了切换个
不停。
(defun C:DWG(/ nowfile_path file id tfile vv)
  (arxload "DOSLIB16.ARX" )
  (Setq nowfile_path(vla-get-fullname(vla-get-activedocument(vlax-get-acad-object))))
  (setq file (DOS_getfilem "Modify DWG files"
                           "D:\\"
                           "Drawing files(*.dwg)|*.dwg||"))  
  (setq id 1)
  (while(nth id file)
    (progn
    (setq tfile ( strcat (nth 0 file) (nth id file)))
    (setq vv(vla-open(vla-get-documents(vlax-get-acad-object))tfile))
    (vla-sendcommand vv  "_tmp ")
    (vla-close "true" vv)
    )
    (setq id (1+ id))
    )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-1-20 06:02:19 | 显示全部楼层
将 Open  图形 Active 为当前,tmp 再设为每个新图形加载并且VV要用  vlax-add-cmd 定义为内部命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-21 23:53:24 | 显示全部楼层
最初由 eachy 发布
[B]将 Open  图形 Active 为当前,tmp 再设为每个新图形加载并且VV要用  vlax-add-cmd 定义为内部命令 [/B]


由于本人接解vla-  不久,故根据斑竹的提示,还是没搞定,能否将本人上面的VLISP修改一下,先谢了。
另外,VV 不是命令,为何要用vlax-add-cmd 定义为内部命令
我试了一下将 tmp 用vlax-add-cmd 定义为内部命令如下:
     (vlax-add-cmd "tm" 'tmp "tm" 1)
           结果出错提示
    命令: tm
        ; 错误: Visual LISP command document mismatch: tm
事实上每个新图形都加载了tmp(注:我把c:tmp 改为tmp函数了)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-22 10:12:33 | 显示全部楼层
条条大路通北京,既然此路不通,为什么不换一条路呢?跨文档操作的方法很多啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-16 23:18:01 | 显示全部楼层
可以添加到自动加载的lisp文件中一些操作的源码就可以了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-8-14 12:42:43 | 显示全部楼层
用VLA-SENDCOMMAND发送命令后,如果其作用的文档不是当前文档,则不能立即生效,必要要等到文档被激活后才能执行.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 06:18 , Processed in 0.211476 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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