乐筑天下

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

模型或图纸空间中的外部参照?

[复制链接]

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2008-10-28 00:37:41 | 显示全部楼层
非常感谢!你太棒了!
哦,等等!我很抱歉地告诉你,不幸的是,它不会改变嵌套外部参照的图层颜色。对此有什么解决办法吗?谢谢
回复

使用道具 举报

6

主题

29

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
53
发表于 2008-10-28 03:22:34 | 显示全部楼层
为什么需要这样做? 我不认为外部参照的图层颜色实际上做了什么。
回复

使用道具 举报

6

主题

29

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
53
发表于 2008-10-28 13:28:10 | 显示全部楼层
这是一个东西的一些东西。此处的代码用于获取外部参照的路径,但显示了一种钻取嵌套外部参照的方法。如果你需要帮忙组装,请告诉我
  1. Private Sub LoadXrefs()
  2.   Dim objSelSets As AcadSelectionSets
  3.   Dim objSelSet As AcadSelectionSet
  4.   Dim intType(0) As Integer
  5.   Dim varData(0) As Variant
  6.   Dim strPaths() As String
  7.   Dim intCnt As Integer
  8.   Dim objXref As AcadExternalReference
  9.   Dim objEnt As AcadEntity
  10.   Dim objBlk As AcadBlock
  11.   Dim objBlks As AcadBlocks
  12.   Dim intDuplicate As Integer
  13.   Dim objDuplicate As AcadEntity
  14.   Dim boolDuplicate As Boolean
  15.   
  16.   Set objBlks = ThisDrawing.Blocks
  17.   Set objSelSets = ThisDrawing.SelectionSets
  18.   For Each objSelSet In objSelSets
  19.     If objSelSet.Name = "GetXrefPaths" Then
  20.       objSelSets.Item("GetXrefPaths").Delete
  21.       Exit For
  22.     End If
  23.   Next
  24.   Set objSelSet = objSelSets.Add("GetXrefPaths")
  25.   intType(0) = 0: varData(0) = "INSERT"
  26.   objSelSet.Select acSelectionSetAll, , , intType, varData
  27.   For Each objEnt In objSelSet
  28.     Set objBlk = objBlks(objEnt.Name)
  29.     If objBlk.IsXRef Then
  30.       boolDuplicate = False
  31.       For intDuplicate = 1 To colXrefs.Count
  32.         Set objDuplicate = colXrefs.Item(intDuplicate)
  33.         If objDuplicate.Name = objEnt.Name Then
  34.           boolDuplicate = True
  35.           Exit For
  36.         End If
  37.       Next intDuplicate
  38.       If boolDuplicate = False Then
  39.         colXrefs.Add objEnt '.Path
  40.         GetNested objBlk
  41.       End If
  42.     End If
  43.   Next objEnt
  44. End Sub
  45. Private Function GetNested(objBlk As AcadBlock) As Integer
  46.   Dim objXref As AcadExternalReference
  47.   Dim objBlkRef As AcadBlockReference
  48.   Dim objEnt As AcadEntity
  49.   Dim objNext As AcadBlock
  50.     For Each objEnt In objBlk
  51.       If TypeOf objEnt Is AcadBlockReference Then
  52.         Set objBlkRef = objEnt
  53.         Set objNext = ThisDrawing.Blocks(objBlkRef.Name)
  54.         If objNext.IsXRef Then
  55.           Set objXref = objEnt
  56.           colXrefs.Add objXref
  57.           GetNested objNext
  58.         End If
  59.       End If
  60.     Next
  61.   GetNested = colXrefs.Count
  62. End Function

已经有一段时间没有真正研究过该代码了。我不知道为什么GetNested是一个函数而不是子函数。
Danellis,只要颜色/lt设置为bylayer,更改外部参照图层就会更改这些图层上对象的外观。与任何其他层上的任何其他对象相同。
回复

使用道具 举报

2

主题

17

帖子

1

银币

初来乍到

Rank: 1

铜币
25
发表于 2008-10-30 02:45:25 | 显示全部楼层
什么是colXrefs?
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2008-10-30 11:04:09 | 显示全部楼层
在这种情况下colxrefs是公开声明的集合
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-3 18:12 , Processed in 0.379883 second(s), 61 queries .

© 2020-2025 乐筑天下

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