Hallo Leute,
dieses Them wurde schon öfters behandelt, aber trotz Suche bin ich noch zu keiner Lösung gekommen.
Ich möchte mit einem externen VB Program Attribute aus einem Schriftkopfblock in einer Zeichnung auslesen, indem ich den Block selektiere.
Wenn ich ein Attribut, also Text selektiere, funktioniert das ganze, aber wenn ich eine Linie des Blocks anklicke funtkioniert es nicht. Warum ist das nicht einfach EIN Block, egal was ich daran selktiere ?
Option Explicit
' AutoCAD als Verweis einbinden
Dim AcadApp As AcadApplication
Dim AcadDoc As AcadDocument
Dim Object As AcadObject, myAtts, att
Dim acadactive As Boolean
Dim ACBlockRef As AcadBlockReference
Dim elem As AcadObject
Dim PickedPoint As Variant, TransMatrix As Variant, ContextData As Variant
..............
Public Sub readwriteACAD()
' Wenn ACAD aktiv ist ACAD Object holen
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
' Wenn ACAD nicht aktiv ist
If Err().Number <> 0 Then
MsgBox ("No active ACAD Session found!")
Exit Sub
End If
Set AcadDoc = AcadApp.ActiveDocument
AcadApp.ActiveDocument.Utility.GetSubEntity Object, PickedPoint, TransMatrix, ContextData, "Please selet the valid Titleblock ! "
Set elem = AcadApp.ActiveDocument.ObjectIdToObject(Object.OwnerID)
' MsgBox (elem.ObjectName) <- Wenn ich eine Linie des Blocks anklicke gibt er hier ACDBBlockTableRecord an, sonst ACDBBlockrefernce !!!!!
If TypeOf elem Is AcadBlockReference Then
Set ACBlockRef = elem
myAtts = ACBlockRef.GetAttributes
acadactive = True
Else
MsgBox ("No Block selected!")
acadactive = False
End If
End Sub
Für Tips wäre ich dankbar.......
mfg
Leon
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP