乐筑天下

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

Dbl点击反应器

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2006-11-9 16:36:39 | 显示全部楼层
对不起,我没有不理你,我刚刚在开会。今晚我会试着DL它
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2006-11-9 16:41:54 | 显示全部楼层
是的,VBA反应堆..默认情况下,我保持内置反应堆关闭。
Mine基本上具有与特定类型的实体和特定命名块相关的事件。
例如,如果我双击文本,它会打开相应的文本编辑器,无论是多文本,attdef,dtext等。双击时的某些块会打开我个人增强的属性编辑器。
我过去使用过其他想法,例如,每当我放置剪切部分或细节标记时,我都可以双击它并打开或更改为适当的绘图并放大细节。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2006-11-15 13:45:09 | 显示全部楼层
基思:
你能发一段代码吗?我的代码出现了一些问题,想看一看能正常工作的代码。
谢谢。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2006-11-15 14:00:55 | 显示全部楼层
以下是 Lee Ambrosius 的 VBA 示例的链接:
http://www.hyperpics.com/customization/vb_vba/vba_downloads.asp
HTH
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2006-11-15 14:01:46 | 显示全部楼层
这是基本的外壳.....您可以根据需要添加特定的对象处理程序。我把它放在click reactor dvb中并独立加载。一句忠告。除非加载了acvba.arx(或者不管它叫什么),否则vba反应堆不会启动。将此代码放在ThisDrawing代码段中。
  1. Private Sub AcadDocument_BeginDoubleClick(ByVal PickPoint As Variant)
  2. Dim AcadObj As AcadEntity
  3. Dim AcadDim As AcadDimension
  4. Dim SelSet As AcadSelectionSet
  5. 'translate our point so we can double click even in other UCS settings
  6. PickPoint = ThisDrawing.Utility.TranslateCoordinates(PickPoint, acWorld, acUCS, False)
  7. On Error GoTo ClearOut
  8. 'create selection set
  9. Set SelSet = ThisDrawing.SelectionSets.Add("ClickReactor")
  10. 'grab objects at point
  11. SelSet.SelectAtPoint PickPoint
  12. 'process each object ignoring those without a handler
  13. For Each AcadObj In SelSet
  14. 'Add conditional statement for all objects to handle along with the default handler
  15. 'edit text in default text editor
  16.   If AcadObj.ObjectName = "AcDbText" Then
  17.    SendCommand "_.ddedit" & vbLf & "(handent " & Chr(34) & AcadObj.Handle & Chr(34) & ")" & vbLf
  18. 'edit mtext in default text editor
  19.   ElseIf AcadObj.ObjectName = "AcDbMText" Then
  20.    SendCommand "_.ddedit" & vbLf & "(handent " & Chr(34) & AcadObj.Handle & Chr(34) & ")" & vbLf
  21.   ElseIf AcadObj.ObjectName = "AcDbBlockReference" Then
  22. 'edit attributes in custom attribute editor
  23.    If AcadObj.HasAttributes = True Then
  24.     SendCommand "modatt" & vbLf '& "(handent " & Chr(34) & AcadObj.Handle & Chr(34) & ")" & vbLf
  25.    End If
  26.   End If
  27. Next AcadObj
  28. ' Funny thing about dims, they don't handle the same for some reason
  29. For Each AcadDim In SelSet
  30. ' step through all objects, even if they are not dims ... I am just lazy and don't want to filter for them
  31. On Error Resume Next
  32.    SendCommand "_.ddedit" & vbLf & "(handent " & Chr(34) & AcadDim.Handle & Chr(34) & ")" & vbLf
  33. Next AcadDim
  34. ' We are done now do clean up
  35. ClearOut:
  36. ' delete the selection set
  37. ThisDrawing.SelectionSets.Item("ClickReactor").Delete
  38. ' done now
  39. End Sub
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 01:13 , Processed in 1.066458 second(s), 60 queries .

© 2020-2025 乐筑天下

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