乐筑天下

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

ACAD应用程序事件

[复制链接]
020

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2007-10-9 13:51:22 | 显示全部楼层 |阅读模式
在我的Acad.dvb文件中。
我有一个类模块:
Dim AppEvents As New AppEvents Class
-

  1. Sub acadstartup()
  2. Set AppEvents.ACADApp = Application
  3. End Sub

和模块:
  1. Option Explicit
  2. Public WithEvents ACADApp As AcadApplication    'Use with Application Event Examples

-
  1. Private Sub ACADApp_AppActivate()
  2. ' I want this code to work on startup
  3. End Sub

但是,我注意到应用程序级事件仍然没有触发
有人能告诉我为什么会发生这种情况吗?谢谢你马克

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

9

帖子

4

银币

初来乍到

Rank: 1

铜币
9
发表于 2007-10-9 13:52:28 | 显示全部楼层
启动时你想做什么?
回复

使用道具 举报

0

主题

11

帖子

5

银币

初来乍到

Rank: 1

铜币
12
发表于 2007-10-9 14:19:58 | 显示全部楼层
我不得不把我的事件放在这个绘图模块中。BRB
编辑:添加了代码
我必须为此称赞其他人,但在我的脑海中,我不记得是谁帮助了我。也许是Bryco??无论如何,我一会儿就去看看。这是他们给我的,用于修复end open
  1. Option Explicit
  2. Public WithEvents AutoCAD As AcadApplication
  3. Sub App_StartMacro()
  4.       Set AutoCAD = ThisDrawing.Application
  5. End Sub
  6. Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
  7.       If CommandName = "COMMANDLINE" Then
  8.             Set AutoCAD = ThisDrawing.Application
  9.       End If
  10. End Sub
  11. Private Sub AutoCAD_EndOpen(ByVal FileName As String)
  12.       ThisDrawing.SetVariable "INSUNITS", 1
  13.       ThisDrawing.SetVariable "OSNAPZ", 1
  14.       ThisDrawing.SetVariable "LAYEREVAL", 0
  15.       ThisDrawing.SetVariable "LAYERNOTIFY", 0
  16.       Dim strUser As String
  17.       strUser = UCase(Environ("USERNAME"))
  18.       Select Case strUser
  19.       Case "UA02038"
  20.       Case "UA03347"
  21.       Case Else
  22.             ThisDrawing.SendCommand "undefine" & vbCr & "BEDIT" & vbCr
  23.       End Select
  24. End Sub
  25. Public Sub AcadStartup()
  26.       Dim Preferences As AcadPreferences, intOsmode As Integer
  27.       Set Preferences = ThisDrawing.Application.Preferences
  28.       Dim strUser As String
  29.       strUser = UCase(Environ("USERNAME"))
  30.       Select Case strUser
  31.       Case "UA02038"
  32.             Preferences.Selection.PickFirst = True
  33.             intOsmode = 71
  34.             ThisDrawing.SetVariable "ORTHOMODE", 1
  35.       Case "UA03347"
  36.             Preferences.Selection.PickFirst = True
  37.             intOsmode = 19
  38.       Case Else
  39.             Preferences.Selection.PickFirst = True
  40.             intOsmode = 7
  41.       End Select
  42.       If intOsmode = 0 Then
  43.             ThisDrawing.SetVariable "osmode", 3
  44.       Else
  45.             ThisDrawing.SetVariable "osmode", intOsmode
  46.       End If
  47.       Application.Preferences.Output.AutomaticPlotLog = False
  48.       Application.Preferences.User.ADCInsertUnitsDefaultSource = acInsertUnitsInches
  49.       Application.Preferences.User.ADCInsertUnitsDefaultTarget = acInsertUnitsInches
  50.       ThisDrawing.SetVariable "OSNAPZ", 1
  51. End Sub

End open的应用程序级别事件,但在这些调整之后,它是可用的
回复

使用道具 举报

0

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2007-10-9 14:23:03 | 显示全部楼层
是Bryco在这里
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 20:56 , Processed in 0.791739 second(s), 60 queries .

© 2020-2025 乐筑天下

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