乐筑天下

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

[编程交流] 创建selectionset模块

[复制链接]

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 21:58:42 | 显示全部楼层 |阅读模式
我需要模块1来选择集,模块2来使用选择集。
模块1:
  1. Public Function CreateSelectionSet1(Optional ssName As String = "ss") As AcadSelectionSet
  2.    Dim ss As AcadSelectionSet
  3.    
  4.    On Error Resume Next
  5.    Set ss = ThisDrawing.SelectionSets(ssName)
  6.    If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
  7.    ss.Clear
  8.    Set CreateSelectionSet = ss
  9. End Function

模块2:
  1. sub useIT
  2. selset = CreateSelectionSet1
  3. msgbox(selset.count)
  4. end sub

“.count”是使用的示例,但这也不起作用。
错误:“参数非可选”。
如果它是另一个可变f.e字符串,而不是ACADSelectionSet,则它可以工作
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 23:44:46 | 显示全部楼层
 
 
修改如下
 
  1. Option Explicit
  2. Sub useIT()
  3. Dim selset As AcadSelectionSet
  4. [b][i][color=red]Set[/color][/i][/b] selset = CreateSelectionSet1
  5. MsgBox (selset.Count)
  6. End Sub
  7. Public Function CreateSelectionSet1(Optional ssName As String = "ss") As AcadSelectionSet
  8.    Dim ss As AcadSelectionSet
  9.    On Error Resume Next
  10.    Set ss = ThisDrawing.SelectionSets(ssName)
  11.    If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
  12.    ss.Clear
  13.    Set Create SelectionSet[b][i]1[/i][/b] = ss
  14. End Function

 
您错过了(请参阅红色/粗体文本-不知道为什么我无法将红色设置为Selectionset1 word中的“1”字符):
-“selset=CreateSelectionSet1”语句开头的“Set”关键字
-“CreateSelectionSet1”函数中的正确函数名引用
 
此外,我在模块的开头添加了“Option Explicit”语句。我总是发现这很有帮助,因为它迫使你明确地声明所有变量,从而不留下一些隐式变量,这最终会更好地理解我在做什么
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-5-25 21:23 , Processed in 0.619440 second(s), 56 queries .

© 2020-2025 乐筑天下

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