乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Kerry

关闭AutoCAD时的事件

[复制链接]

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-10-29 08:54:01 | 显示全部楼层
哦,好的。但是嘿!你怎么知道我在用AutoCAD 2004 
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-10-29 09:26:17 | 显示全部楼层
我之前在lisp上写过一篇文章,你可以在VBA上翻译它
  1. (defun dwv (/ fso path readstr result source sourcepath)
  2.   (vl-load-com)
  3.   (setq path (getstring "\nEnter path name  : "))
  4.                                         ; change default folder name
  5.   (if (eq "" path)
  6.     (setq path "C:\")
  7.   )                                        ; change default folder name
  8.   (setq sourcepath (getfiled "Select a Drawing File" path "dwg" 0))
  9.   (setq fso (vlax-create-object "Scripting.FileSystemObject"))
  10.   (if (zerop (vlax-invoke fso 'FileExists (findfile sourcepath)))
  11.     (progn
  12.       (alert "File does not exist")
  13.       (exit)
  14.       (princ)
  15.     )
  16.   )
  17.   (setq source (vlax-invoke fso 'OpenTextFile sourcepath 1 :vlax-false))
  18.   (setq readstr (vlax-invoke source 'ReadLine))
  19.   (vlax-invoke source 'Close)
  20.   (vlax-release-object source)
  21.   (vlax-release-object fso)
  22.   (setq readstr (substr readstr 1 6))
  23.   (setq        result
  24.          (cond
  25.            ((eq "AC1012" readstr) "R12")
  26.            ((eq "AC1013" readstr) "R13")
  27.            ((eq "AC1014" readstr) "R14")
  28.            ((eq "AC1015" readstr) "R15")
  29.            ((eq "AC1018" readstr) "R16")
  30.            ((eq "AC1021" readstr) "R17")
  31.          )
  32.   )
  33. )
  34. ;;; TesT :
  35. ;;; (setq answer (dwv))
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-10-29 14:20:34 | 显示全部楼层
我再次发布了ACAD帮助中的示例代码 它是为那个版本写的 试试这个:
  1. Sub test()
  2. Debug.Print ThisDrawing.Application.Version
  3. End Sub
;在您的即时窗口中,您'我会得到这样的答案;17.1s(LMS技术)“ 在本例中,您将使用17部分,例如:
  1. Public WithEvents ACADApp As AcadApplication
  2. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  3. Sub Example_AcadApplication_Events()
  4.     Set ACADApp = GetObject(, "AutoCAD.Application.17")
  5. End Sub
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-10-30 10:02:50 | 显示全部楼层
好的,但是当我关闭AutoCAD时,我怎么能删除那个该死的、愚蠢的、令人讨厌的文件呢?请;
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-10-30 10:47:19 | 显示全部楼层
Welp,看看我发布的示例中的注释,所以ACADApp需要在触发应用程序级事件之前初始化 因为看起来你在;给我一个解决方案,而不是一个教训”;阶段,I'我不会深入到很多你可能根本看不到的细节,所以试试这个
  1. Public WithEvents ACADApp As AcadApplication
  2. Sub AcadDocument_BeginClose()
  3.   Set ACADApp = GetObject(, "AutoCAD.Application.16")
  4. End Sub
  5. Private Sub ACADApp_BeginQuit(Cancel As Boolean)
  6.   Kill "c:\MyDamnStupidFile.txt"
  7. End Sub
如果您想讨论原因、方法和改进,我们可以 如果您'我们对它的工作感到满意,享受吧。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 08:27 , Processed in 1.173829 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表