Kerry 发表于 2007-10-29 08:54:01

哦,好的。但是嘿!你怎么知道我在用AutoCAD 2004 

Kerry 发表于 2007-10-29 09:26:17

我之前在lisp上写过一篇文章,你可以在VBA上翻译它(defun dwv (/ fso path readstr result source sourcepath)
(vl-load-com)
(setq path (getstring "\nEnter path name: "))
                                        ; change default folder name
(if (eq "" path)
    (setq path "C:\\")
)                                        ; change default folder name
(setq sourcepath (getfiled "Select a Drawing File" path "dwg" 0))
(setq fso (vlax-create-object "Scripting.FileSystemObject"))
(if (zerop (vlax-invoke fso 'FileExists (findfile sourcepath)))
    (progn
      (alert "File does not exist")
      (exit)
      (princ)
    )
)
(setq source (vlax-invoke fso 'OpenTextFile sourcepath 1 :vlax-false))
(setq readstr (vlax-invoke source 'ReadLine))
(vlax-invoke source 'Close)
(vlax-release-object source)
(vlax-release-object fso)
(setq readstr (substr readstr 1 6))
(setq        result
       (cond
           ((eq "AC1012" readstr) "R12")
           ((eq "AC1013" readstr) "R13")
           ((eq "AC1014" readstr) "R14")
           ((eq "AC1015" readstr) "R15")
           ((eq "AC1018" readstr) "R16")
           ((eq "AC1021" readstr) "R17")
       )
)
)
;;; TesT :
;;; (setq answer (dwv))

Kerry 发表于 2007-10-29 14:20:34

我再次发布了ACAD帮助中的示例代码 它是为那个版本写的 试试这个:
Sub test()
Debug.Print ThisDrawing.Application.Version
End Sub ;在您的即时窗口中,您'我会得到这样的答案;17.1s(LMS技术)“ 在本例中,您将使用17部分,例如:
Public WithEvents ACADApp As AcadApplication
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Example_AcadApplication_Events()
    Set ACADApp = GetObject(, "AutoCAD.Application.17")
End Sub

Kerry 发表于 2007-10-30 10:02:50

好的,但是当我关闭AutoCAD时,我怎么能删除那个该死的、愚蠢的、令人讨厌的文件呢?请;

Kerry 发表于 2007-10-30 10:47:19

Welp,看看我发布的示例中的注释,所以ACADApp需要在触发应用程序级事件之前初始化 因为看起来你在;给我一个解决方案,而不是一个教训”;阶段,I'我不会深入到很多你可能根本看不到的细节,所以试试这个
Public WithEvents ACADApp As AcadApplication
Sub AcadDocument_BeginClose()
Set ACADApp = GetObject(, "AutoCAD.Application.16")
End Sub
Private Sub ACADApp_BeginQuit(Cancel As Boolean)
Kill "c:\MyDamnStupidFile.txt"
End Sub
如果您想讨论原因、方法和改进,我们可以 如果您'我们对它的工作感到满意,享受吧。
页: 1 [2]
查看完整版本: 关闭AutoCAD时的事件