找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 834|回复: 6

[VBA程序]:请教:VB调用ACAD2002的问题

[复制链接]
发表于 2003-6-5 20:59:45 | 显示全部楼层 |阅读模式

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

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

×
我在VB中引用了ACAD2000的类型库后,在程序中用GetObject ("AutoCAD.Application")语句可以调用ACAD2002,但是怎么样让调用的再ACAD自动打开运行SCR脚本文件呢??

我是先用VB生成了SCR脚本文件,在ACAD中用SCRIPT命令或“运行批处理...”功能都可运行脚本,但是怎么让VB调用的ACAD在打开ACAD的同时,再自动运行SCR脚本呢?

请各位高手指教。。。。不胜感谢

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

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-6-5 21:55:45 | 显示全部楼层
使用SendCommand函数。由于Script会显示对话框,因而应该首先使用系统变量FILEDIA屏蔽对话框的显示。
下面的程序中ThisDrawing代表文档对象,在VB中可以使用相应的对象代替。

  1.   [FONT=courier new]
  2. Sub test()
  3.     Dim v As Variant
  4.     v = ThisDrawing.GetVariable("FILEDIA")
  5.     ThisDrawing.SetVariable "FILEDIA", 0
  6.     ThisDrawing.SendCommand "'script" & vbCr & "MyScript.scr" & vbCr
  7.     ThisDrawing.SetVariable "FILEDIA", v
  8. End Sub
  9.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-6-5 22:19:41 | 显示全部楼层

多谢!!!!!!

“程序中ThisDrawing代表文档对象,在VB中可以使用相应的对象代替”

能举个详细点的例子吗?

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

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-6-5 22:36:20 | 显示全部楼层
就是说你获取ACAD的接口后,一般是一个应用程序对象,比如:Set AcadApp=GetObject (,"AutoCAD.Application")。这仅表示你获取了ACAD的控制权,然后才是针对它的某一个文档(也可以称为图纸,在R2000及以上版本的是有文档),比如对当前文档,可以使用Set AcadDoc=AcadApp.ActiveDpcument返回当前文档的控制权,这时的AcadDoc就与VBA中的ThisDrawing是等效的,也就是它们指的是同一个文档对象。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-6-5 23:18:06 | 显示全部楼层
试出来了,多谢多谢

还有两个问题,还请多指点:

1.怎么样在用VB打开ACAD的时候,给ACAD加入一个搜索路径,比如加入c:\support;最好在退出VB程序的时候再回复原来的搜索路径。

2.怎样用VB控制ACAD新建一张图(不管原来打开的ACAD是否有打开图形)

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

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-6-5 23:27:27 | 显示全部楼层
1、搜索路径可以使用选项中的功能进行设置。
如:AcadApp.preferences.Files.SupportPath=AcadApp.preferences.Files.SupportPath & ";c:\support",而最后可以使用:AcadApp.preferences.Files.SupportPath=Left(AcadApp.preferences.Files.SupportPath,InStr( AcadApp.preferences.Files.SupportPath, ";c:\support")-1)来恢复设置。InStr的作用是查找新添加的路径中第一个字符的位置,当然首先要确保这个字符串存在,否则返回的是0,0-1用于Left会产生错误。
2、新建图纸可以使用Documents文档集合的Add方法来添加。如:AcadApp.Documents.Add。
3、SendCommand在R14版本下没有这个函数,因而不能使用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-6-5 23:35:50 | 显示全部楼层
那有没有在R14下也能运行SCR脚本文件的其他方法呢?

我看到有些软件可以用VB调用运行ACAD R14的同时也运行了SCR脚本,不知他们是怎样做的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 13:39 , Processed in 0.190649 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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