(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))
我再次发布了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 好的,但是当我关闭AutoCAD时,我怎么能删除那个该死的、愚蠢的、令人讨厌的文件呢?请; 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]