乐筑天下

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

[编程交流] 将vba应用于bl的子实体

[复制链接]

42

主题

173

帖子

132

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
220
发表于 2022-7-6 21:56:41 | 显示全部楼层 |阅读模式
我有一个vba宏,用于将bylayer颜色应用于bylayer颜色的对象
但它不适用于区块子实体
我希望有人可以修改vba代码以应用于块和嵌套块
 
 
  1. Public Sub ColorToEntity()
  2.    'This subroutine sets each entities color from ByLayer
  3.    'to the color of the layer it's on.
  4.    Dim sset As AcadSelectionSet
  5.    Set sset = ThisDrawing.SelectionSets.Add("SS1")
  6.    ' Prompt the user to select objects
  7.    ' and add them to the selection set.
  8.    sset.SelectOnScreen
  9.    
  10.    ' Step through the selected objects and change
  11.    ' each object's color to Green
  12.    Dim objEntity As AcadEntity
  13.    Dim objMS As AcadModelSpace
  14.    Dim objPS As AcadPaperSpace
  15.    Dim objLayers As AcadLayers
  16.    Dim objLayer As AcadLayer
  17.    Dim strLayer As String
  18.    
  19.    Set objMS = ThisDrawing.ModelSpace
  20.    Set objPS = ThisDrawing.PaperSpace
  21.    Set objLayers = ThisDrawing.Layers
  22.    'process ents in modelspace
  23.    For Each objEntity In objMS
  24.        strLayer = objEntity.Layer
  25.        Set objLayer = objLayers.Item(strLayer)
  26.        objEntity.color = objLayer.color
  27.    Next objEntity
  28.    'process ents in paperspace
  29.    For Each objEntity In objPS
  30.        strLayer = objEntity.Layer
  31.        Set objLayer = objLayers.Item(strLayer)
  32.        objEntity.color = objLayer.color
  33.    Next objEntity
  34.    ' Remove the selection set at the end
  35.    sset.Delete
  36. End Sub
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 13:26 , Processed in 0.663550 second(s), 65 queries .

© 2020-2025 乐筑天下

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