我不能';我没有找到它,所以我很快又做了一次 ;这比它可能要不那么优雅,因为我做了一些快速抄袭和修补其他东西 ;它也仅适用于模型空间外部参照 ;如果它点击了pspace外部参照,它会将其分离并在mspace中重新附着 ;本人';以前有人说过我不应该';t张贴任何代码,除非它';因为I 35; 039;如果这些人真的需要自己付出努力,我会浪费他们的时间,但这并没有经过测试 ;它应该有效 ;如果没有';t、 只需稍加调整即可
- Public Sub Layover()
- Dim objSelSets As AcadSelectionSets
- Dim objSelSet As AcadSelectionSet
- Dim objOverlay As AcadExternalReference
- Dim intType(0) As Integer
- Dim varData(0) As Variant
- Dim strPath As String
- Dim strName As String
- Dim dblInsPnt(0 To 2) As Double
- Dim objXref As AcadExternalReference
- Dim objEnt As AcadEntity
- Dim objBlk As AcadBlock
- Dim objBlks As AcadBlocks
- Set objBlks = ThisDrawing.Blocks
- Set objSelSets = ThisDrawing.SelectionSets
- For Each objSelSet In objSelSets
- If objSelSet.Name = "GetXrefs" Then
- objSelSets.Item("GetXrefs").Delete
- Exit For
- End If
- Next
- Set objSelSet = objSelSets.Add("GetXrefs")
- intType(0) = 0
- varData(0) = "INSERT"
- objSelSet.Select 5, filtertype:=intType, filterdata:=varData
- For Each objEnt In objSelSet
- Set objBlk = objBlks(objEnt.Name)
- If objBlk.IsXRef Then
- Set objXref = objEnt
- strName = obxref.Name
- strPath = objXref.Path
- dblInsPt = objXref.InsertionPoint
- objBlk.Detach
- Set objOverlay = ModelSpace.AttachExternalReference(strPath, strName, dblInsPnt, 1, 1, 1, 1, True)
- End If
- Next objEnt
- End Sub
|