找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1771|回复: 23

[求助] [求助]:熟悉vla-get-Documents的高手帮帮我

[复制链接]
发表于 2004-11-10 11:12:53 | 显示全部楼层 |阅读模式

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

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

×
使用下面代码打开的dwg文件不是当前窗口文件,怎样才能使打开文件的成为当前窗口文件,或者不成为当前窗口文件也能够处理该打开文件中的图形数据。
              (vla-open
               (vla-get-Documents
                 (vlax-get-acad-object)
               )
               绝对路径
             )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-10 11:33:11 | 显示全部楼层
(vla-get-ActiveDocument (vlax-get-acad-object))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-10 13:38:22 | 显示全部楼层
使用vla-get-ActiveDocument时cad报错“错误: Automation 错误。” ;
使用vla-get-Documents时cad报错“错误: ActiveX 服务器返回错误: 未知名称: Document”;
救救我吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-10 17:59:53 | 显示全部楼层
把你的代码都贴上来。注意VLISP是不擅长跨文件操作的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-10 19:52:44 | 显示全部楼层
最初由 aidraft 发布
[B]把你的代码都贴上来。注意VLISP是不擅长跨文件操作的。 [/B]

在多文档下 Documents  内处理起来都一样的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-11 13:13:46 | 显示全部楼层
代码如下:
(princ "\nType <BatchPro> To Use:")
(vl-load-com)
(defun c:BatchPro ()
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)
  (setq dir (getstring "\nInput Directory: "))
  (setq link (vl-directory-files dir "*.dwg" 1))
  (setq long (length link))
  (setq long (1- long))
  (foreach nafiled link
    (progn
      (princ "\n正在处理文件")
      (princ nafiled)
      (princ "\n请等待……")
      (setq dwg
             (vla-open
               (vla-get-Document
                 (vlax-get-acad-object)
               )
                (strcat dir nafiled)
             )
      )                                        ;setq
      (setq ent (ssget "X"))

       ;这里是处理ent的另一个函数,比如删除选择集。

      (setq ent nil)
      (vla-close dwg)
      (princ "\n文件")
      (princ nafiled)
      (princ "处理完毕。还有")
      (princ long)
      (princ "个文件需要处理。")
      (setq long (1- long))
    )                                        ;progn
  )                                        ;foreach
  (princ)
)                                        ;defun
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-11 16:36:17 | 显示全部楼层
在MDI模式中,只能对DOCUMENTS对象使用OPEN方法,而不是DOCUMENT对象。其次,即使你打开了新文件, 你后面的那句(setq ent (ssget "X"))也不是在新文件中执行。VLISP不会让你在文件之间跳来跳去,它会中断的。考虑用调用VBA宏用SENDCOMMAND方法或用SCRIPT。你把你写好的东西都贴上来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-12 09:30:08 | 显示全部楼层
8楼,我已经将全部代码帖出来了。
我用的是DOCUMENTS对象,可能是考错了。
要解决这种文件之间的操作我应该怎么做呢?
VBA不是很熟悉。能不能帮我一下。
小女子有礼了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-12 10:56:09 | 显示全部楼层
我也剛學vl的內容, 看了看, 還不太明白樓主要作什麼?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-12 11:31:45 | 显示全部楼层
;这里是处理ent的另一个函数,比如删除选择集。

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

使用道具 举报

 楼主| 发表于 2004-11-12 12:23:14 | 显示全部楼层
大量的DWG文件都要进行同样的处理所以想写一个可以成批处理多个DWG文件的程序。

该程序要完成:

1.找到一个目录下的所有DWG文件返回文件名(表);
2.在CAD窗口打开一个DWG文件;
3.选择打开DWG中的所有图形数据给一个选择集,然后将这个选择集传给下一个函数使用;
4.关闭打开图纸;
5.打开下一个DWG文件;
6.重复上述操作直到该目录下所有的DWG文件都处理结束。

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

使用道具 举报

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

使用道具 举报

发表于 2004-11-12 15:50:13 | 显示全部楼层
最初由 qshxn 发布
[B]然后将这个选择集传给下一个函数使用[/B]


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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-11-12 16:10:23 | 显示全部楼层
对不起,那个函数涉及到商业机密。
我说的已经很明白了,
哥哥如果有办法还请您指教,我谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 15:22 , Processed in 0.251434 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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