Тема: Внешний ссылки (XRef)

1. Каким образом можно получить список вставленных в чертеж внешних ссылок и точек их вставки?
Такой код выдает ошибку на InsPnt = bl.InsertionPoint

Dim bl As AcadBlock
Dim InsPnt As Variant
For Each bl In ThisDrawing.Blocks
If bl.IsXRef = True Then
    InsPnt = bl.InsertionPoint
End If
Next bl

2. Каким образом для вставленой чертеж внешней ссылки определить является ли она Наложенная или Вставленная?

Re: Внешний ссылки (XRef)

> Alexey
Пока ты четко не уяснишь для себя разницу между
AcadBlock и AcadBlockReference (см. Хэлп) дальше
тебе двигаться бессмысленно, это самый базис
и это нужно понять самому для своей же пользы
~'J'~

Re: Внешний ссылки (XRef)

По п.1 может быть так?

Dim Bl_XRef(), Bl_XRef_Ins(), Obj
Dim i As Integer, name_Bl As String
i = -1
For Each Obj In ThisDrawing.ModelSpace
 If TypeOf Obj Is AcadBlockReference Then
   name_Bl = Obj.Name
   If ThisDrawing.Blocks.Item(name_Bl).IsXRef = True Then
     i = i + 1
     ReDim Preserve Bl_XRef(i)
     ReDim Preserve Bl_XRef_Ins(i)
     Bl_XRef(i) = Obj.Name
     Bl_XRef_Ins(i) = Obj.InsertionPoint
   End If
 End If
Next

Re: Внешний ссылки (XRef)

> Fatty
Да, конечно, я спутал AcadBlock и AcadBlockReference
Код свой поправил на:

Dim i As Integer
Dim objEnt As AcadEntity
Dim ObjXRef As AcadExternalReference
Dim PT1 As Variant
i = 1
For Each objEnt In ThisDrawing.ModelSpace
    If TypeOf objEnt Is AcadExternalReference Then
        Set ObjXRef = objEnt
        PT1 = ObjXRef.InsertionPoint
         i = i + 1
    End If
Next objEnt

Но вопрос с определение типа ссылки (Вставленная или Наложенная) - по прежнему актуален.

Re: Внешний ссылки (XRef)

> Alexey
Я не проверял но можно попробовать так:

For Each objEnt In ThisDrawing.ModelSpace
    If TypeOf objEnt Is AcadExternalReference Then
        Set ObjXRef = objEnt
        PT1 = ObjXRef.InsertionPoint
Dim Xref as AcadExternalReference
set Xref = ObjXref
On Error resume next
If Not Xref.Path Is Nothing then
debug.print Xref.patrh
end if
         i = i + 1
    End If
Next objEnt

А вообще-то мне кажется это можно проверить только
с помощью Лиспа, может я заблуждаюсь
Может кто знает точный ответ
~'J'~