找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 752|回复: 6

[求助]:关于doucument关闭的问题

[复制链接]
发表于 2005-7-1 17:33:33 | 显示全部楼层 |阅读模式

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

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

×
今天机会崩溃!问题是这样的,我每次打开CAD后自动运行如下的一个宏:
Sub LoadFileYJ()
    strPath = Application.Path
    If Right(strPath, 1) <> "\" Then
        strPath = strPath & "\"
    End If
    'MsgBox strPath
    Dim a As New CommonDialog
    a.Filter = "(*.dwg)|*.dwg"
    a.CancelError = True
    a.ShowOpen
    Dim strFileName As String
    Dim strDBDirName As String
    Dim strDBFileName As String
    Dim strSourseFileName As String
    strSourseFileName = strPath & "MZY2002\gangjin.mdb"
    strFileName = a.FileName
    'MsgBox strFileName
    ThisDrawing.Application.Documents.Open strFileName
    strDBDirName = HJWCFFile.GetFullPathPart(strFileName, VBFPFileDir)
    strDBFileName = strDBDirName & HJWCFFile.GetFullPathPart(strFileName, VBFPFileTitle) & ".mdb"
    'MsgBox strDBFileName
    If Dir(strDBFileName, vbDirectory) = "" Then
        If MsgBox("文件不存在,是创建文件,否重新指定文件", vbYesNo) = vbYes Then
            FileCopy strSourseFileName, strDBFileName
            strDBPath = strDBFileName
        Else
            Dim b As New CommonDialog
            b.Filter = "(*.mdb)|*.mdb"
            b.ShowOpen
            strDBPath = b.FileName
        End If
    Else
        strDBPath = strDBFileName
    End If
   
End Sub

这样,每次打开CAD后会自动弹出对话框,让用户选择一个已经存在的.dwg文件,同时检测是否有同名的.mdb文件,如果没有就提示用户是创建一个同名的.mdb文件还重新选择一个.mdb文件,目的是保证有一个.mdb文件,并将文件的完整路径记录下来。
现在的问题是这样,每次都会有用户选择的一个.dwg文档和一个CAD每次自身的一个Drawing1.dwg文档存在CAD中,用户选择的一个.dwg文档为当前文档,如果用户什么都不作直接关掉CAD,竟然会出现“CAD无法关闭Drawing1.dwg,因为还有一个命令在运行。请完成该命令,然后重试。”这是为什么???再切换到Drawing1.dwg文档,发现并没有什么命令在运行,而且可以直接关掉!

下面我就想用程序将它关掉,我在ThisDrawing.Application.Documents.Open strFileName
后面添加了
Dim DOC As AcadDocument
        Set DOC = ThisDrawing.Application.Documents.Item("Drawing1.dwg")
DOC.close
发现每次运行到DOC.close
这边就过不去,查阅帮助,发现帮助上也是这样用的,我在想是不是没有设置为当前文档,我又在 DOC.Close前面添加了一句:
DOC.Activate,可是仍然不行。我觉得还是那个说有个命令在运行的原因,但是就是不知道怎么解决,快崩溃了!请各位帮忙谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-7-2 08:06:04 | 显示全部楼层
你是怎么调用这个宏的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-2 10:47:57 | 显示全部楼层
写在ACAD.dvb中的
Sub ACADStartup()
        Dim strAppPath As String
        strAppPath = Application.Path
        If Right(strAppPath, 1) <> "\" Then
            strAppPath = strAppPath & "\"
        End If
        
        Dim strFlag As String

        strFlag = GetSetting("acadApp", "Start", "Flag")
        If StrComp(strFlag, "1", vbTextCompare) = 0 Then
            Call AcadApplication.LoadDVB(strAppPath & "\MZY2002\gangjin.dvb")
            ThisDrawing.Activate
            RunMacro "A00loadfile.LoadFileYJ"
            RunMacro "thisdrawing.AddToolbar"
  End Sub
这样每次运行的时候就会自动的运行该宏
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-7-2 16:09:37 | 显示全部楼层
为什么,在DOC后面点点自动出来的,可以用吧,我怀疑是那个“CAD无法关闭Drawing1.dwg,因为还有一个命令在运行。请完成该命令,然后重试。”的原因,因为我不通过程序,直接关闭CAD也关不了,我想能不向Drawing1.dwg发送个什么命令(这个命令最好什么都不做,或者做了直接关),主要是让Drawing.dwg里面不会有未结束的命令就行,我估计这样会行,不知道斑竹有没有更好的意见,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-2 16:49:09 | 显示全部楼层
有可能运行到这一句代码的时候,Acad并没有对Active组件初始化,或者处于锁定状态
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-2 19:37:44 | 显示全部楼层
好像是的,我在CAD完全启动后,可以关闭了,谢谢斑竹!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 03:15 , Processed in 0.560786 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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