乐筑天下

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

选择集

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-2-20 14:47:15 | 显示全部楼层 |阅读模式
我正在尝试选择集。下面的代码是我使用的代码。但它不显示选择窗口。它给了我一条从第一个点到第二个点的线。如何让用户看到选择窗口
Public Sub-SelectObject()
Dim ssetName As StringDim objSet As AcadSelectionSetDim intMode As IntegerDim ObjLayer As AcadLayer>Dim Pt1,Pt2dimm dblPt3(0到2)As Double>Dim objEnt As Object;A1“
出现错误时,继续下一步删除现有sset A1(如果有)。选择集(“A1”)。删除设置对象集=ThisDrawing.SelectionSets。添加(ssetName)
intMode=acSelectionSetCrossing Pt2=ThisDrawing.Utility。GetPoint(Pt1,“选择右上角点到窗口选择集:”)
对象集。为objSet中的每个objEnt选择intMode、Pt1、Pt2。如果objEnt的类型为AcadEntity,则设置ObjLayer=ThisDrawing.Layers。添加(&quo;ABC&quo;)
ObjLayer。颜色=acBlue。层=“”;ABC“
如果结束下一个对象,则结束此绘图。选择集。项目(ssetName)。删除应用程序。更新End Sub
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2004-2-20 23:33:43 | 显示全部楼层
您应该真正使用SelectOnScreen方法,而不是选择和传递点
试试这个[代码我还没有测试它,但它应该可以正常工作
后来,我删除了未使用的变量
我可以补充一点,与应用程序相反,使用AcadApplication对象始终是一种很好的做法。这可以防止在另一个启用VBA的程序(例如excel)中使用该程序时出错。
回复

使用道具 举报

26

主题

78

帖子

14

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
171
发表于 2004-2-21 02:28:24 | 显示全部楼层
你应该尽量远离;出错时继续下一步;。
回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2004-2-21 09:00:50 | 显示全部楼层
这些有帮助吗
http://www.vbdesign.net/modules.php?s=&name=Code_Trout&cats=25
回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2016-3-16 11:14:47 | 显示全部楼层

  1. Public Sub SelectObject()
  2. Dim ssetName As String
  3. Dim objSet As AcadSelectionSet
  4. Dim intMode As Integer
  5. Dim ObjLayer As AcadLayer
  6. Dim objEnt As Object
  7. ssetName = "A1"
  8. On Error Resume Next
  9. ' deleting existing sset A1 if any
  10. ThisDrawing.SelectionSets("A1").Delete
  11. Set objSet = ThisDrawing.SelectionSets.Add(ssetName)
  12. intMode = acSelectionSetCrossing
  13. frmMain.Hide
  14. objSet.SelectOnScreen
  15. For Each objEnt In objSet
  16. If TypeOf objEnt Is AcadEntity Then
  17. Set ObjLayer = ThisDrawing.Layers.Add("ABC")
  18. ObjLayer.color = acBlue
  19. objEnt.Layer = "ABC"
  20. End If
  21. Next objEnt
  22. ThisDrawing.SelectionSets.Item(ssetName).Delete
  23. Application.Update
  24. End Sub
大家好
如果您不'不介意,谢谢
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2016-3-16 12:12:38 | 显示全部楼层
http://usa.autodesk.com/adsk/servlet/index?id=18162650&站点ID=123112
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-28 23:03 , Processed in 0.852647 second(s), 65 queries .

© 2020-2025 乐筑天下

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