Vytisknout stránku | Zavřít okno

Objekt Xref

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=1692
Datum vytištění: 19.čer.2026 v 09:04


Téma: Objekt Xref
Odeslal: SELM
Předmět: Objekt Xref
Datum odeslání: 25.lis.2005 v 10:14
Jak přistupovat k xrefům ve VBA. Potrebuji je vsechny vázat vložením programově.



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 25.lis.2005 v 11:41

zkuste něco jako:


Function GetXRefs() As Collection
Dim ThisBlock As AcadBlock
Dim ThisObject As AcadEntity
Dim AnXRef As AcadExternalReference
Dim Result As New Collection
Dim i As Integer
For Each ThisBlock In ThisDrawing.Blocks
 For Each ThisObject In ThisBlock
  If TypeOf ThisObject Is AcadExternalReference Then
   Set AnXRef = ThisObject
   Result.Add AnXRef, CStr(i)
   i = i + 1
  End If
 Next ThisObject
Next ThisBlock
Set GetXRefs = Result
Set Result = Nothing
End Function



-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: SELM
Datum odeslání: 25.lis.2005 v 13:15
Děkuji za odpověď, ale neřeší druhou část dotazu. Jak tento blok externi reference prevést na blok reference neexterni.


Odeslal: SELM
Datum odeslání: 28.lis.2005 v 10:47

Odpovím si tedy sám, pro český CAD funguje tato procedůra:

Private Sub VlozitXref()
Dim BT As Long
BT = Application.ActiveDocument.GetVariable("BINDTYPE")
Application.ActiveDocument.SetVariable "BINDTYPE", 1
ThisDrawing.SendCommand "-xref v * " & vbCr
Application.ActiveDocument.SetVariable "BINDTYPE", BT
End Sub



Odeslal: Vladimír Michl
Datum odeslání: 28.lis.2005 v 12:00
asi objektově správnější by bylo používat metodu .Bind - viz ActiveX Reference

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: SELM
Datum odeslání: 28.lis.2005 v 12:33
To je pravda, ale zkusil jste co to udělá?



Vytisknout stránku | Zavřít okno