找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 545|回复: 7

[求助]:用vb怎么调用autocad2004

[复制链接]
发表于 2003-12-17 17:51:14 | 显示全部楼层 |阅读模式

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

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

×
用vb怎么调用autocad2004,我试了怎么不行
Private Sub Command1_Click()

Dim acadapp As AcadApplication
On Error Resume Next
Set acadapp = GetObject("autocad.application.16")
If Err Then
Err.Clear
Set acadapp = CreateObject("autocad.application.16")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
Dim polyobj As AcadLWPolyline
Dim acaddoc As AcadDocument
Set acaddoc = acadapp.ActiveDocument
Dim sta(0 To 5) As Double
sta(0) = 1
sta(1) = 1
sta(2) = 2
sta(3) = 2
sta(4) = 2
sta(5) = 1
Set polyobj = acaddoc.ModelSpace.AddLightWeightPolyline _
(sta)
polyobj.Closed = True
End Sub
试过后cad没反应,高手帮帮忙
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-12-17 19:20:46 | 显示全部楼层
可以调用,不过GetObject("autocad.application.16")少了一个参数。应该为GetObject(, "AutoCAD.Application.16")。因而得不到已运行的ACAD。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 70个

财富等级: 招财进宝

发表于 2003-12-17 20:31:51 | 显示全部楼层
我在VB中用下面的程序启动word或捕获正在运行的word,如果当前word没有运行,第一次运行此函数不会成功启动word,但第二次就可以了,不知道怎么回事。请版主帮忙看一下,我是在windows2000下调用word2000。

Dim WrdApp As Word.Application      '声明Word应用程序对象变量

'激活要与之通讯的Word应用程序
Private Function StartWord() As Boolean

    On Error Resume Next
   
    'Word应用程序如果已运行,则获得它的对象实例
    Set WrdApp = GetObject(, "Word.Application")
   
    If Err.Number = 0 Then
        StartWord = True
        Exit Function
    Else '如果Word没有运行,创建Word应用程序的对象实例
        Set WrdApp = CreateObject("Word.Application")
         If Err.Number = 0 Then
            StartWord = True
            Exit Function
        Else
            MsgBox "无法自动启动Word!请手工启动Word后再执行此功能。"
            StartWord = False
        End If
    End If
   
End Function
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-12-18 00:23:45 | 显示全部楼层
使用CreateObject创建应用程序的引用之后,应该使它的Visible属性为True,才能显示,否则是在后台运行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-19 07:47:33 | 显示全部楼层
最初由 efan2000 发布
[B]可以调用,不过GetObject("autocad.application.16")少了一个参数。应该为GetObject(, "AutoCAD.Application.16")。因而得不到已运行的ACAD。 [/B]


斑竹还是不行,这样无论cad2004是否启动,都没有err产生,因此下面的语句总也运行不到
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 70个

财富等级: 招财进宝

发表于 2003-12-19 21:59:26 | 显示全部楼层
最初由 efan2000 发布
[B]使用CreateObject创建应用程序的引用之后,应该使它的Visible属性为True,才能显示,否则是在后台运行。 [/B]


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

使用道具 举报

发表于 2003-12-24 12:03:02 | 显示全部楼层
是因为office软件启动后第一次失去焦点才把自己注册到ROT,所以你要让它们失去焦点,然后等待moment,再来。
Microsoft知识库里面有这个问题的 。
c++语言描述怎么让其失去焦点,怎么等待的。
/Store the handle of the currently active window...
// HWND hwndCurrent = ::GetForegroundWindow();

//Launch Excel and wait until it is waiting for
//user input...
//STARTUPINFO Start;
//PROCESS_INFORMATION ProcInfo;
//ZeroMemory(&Start,sizeof(STARTUPINFO));
//Start.cb=sizeof(Start);
//Start.dwFlags = STARTF_USESHOWWINDOW;
//Start.wShowWindow = SW_SHOWMINIMIZED;

//Change the path to Excel as needed...
//LPSTR pszExcelPath =       "c:\\program files\\microsoft office\\office\\excel.exe";

//::CreateProcess(NULL, pszExcelPath, 0, 0, 1,  NORMAL_PRIORITY_CLASS, 0, NULL, &Start, &ProcInfo);


/* if((::WaitForInputIdle(ProcInfo.hProcess, 10000))==WAIT_TIMEOUT)
{
    ::MessageBox(NULL, "Timed out waiting for Excel.", NULL,  
                 MB_OK);
}
*/
//Restore the active window to the foreground...
//  NOTE: If you comment out this line, the code will fail!
//::SetForegroundWindow(hwndCurrent);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 00:33 , Processed in 0.561858 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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