Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Attribute mit VB in Block manipulieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Attribute mit VB in Block manipulieren (1464 mal gelesen)
Leon
Mitglied
Techn. Angest.


Sehen Sie sich das Profil von Leon an!   Senden Sie eine Private Message an Leon  Schreiben Sie einen Gästebucheintrag für Leon

Beiträge: 415
Registriert: 28.03.2002

erstellt am: 23. Okt. 2008 15:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Ex-Mitglied

erstellt am: 23. Okt. 2008 20:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

hi,

wenn du:
AcadApp.ActiveDocument.Utility.GetSubEntity

durchfuehrst, dann kann der user ein SUB-element auswaehlen, das geht im falle eines attributs gut, aber im falle einer linie nicht, weil eine blockreferenz nur attributreferenzen als sub-entities halten kann

verwende einfach
Call AcadApp.ActiveDocument.Utility.GetEntity(....)

dann erhaeltst du die blockreferenz gleich direkt (musst nicht erst ueber .OwnerID selektieren), wo auch immer sie angegriffen wurde und dann mit .GetAttributes die attributsreferenzen in der blockreferenz

- alfred -

[Diese Nachricht wurde von a.n. am 23. Okt. 2008 editiert.]

Leon
Mitglied
Techn. Angest.


Sehen Sie sich das Profil von Leon an!   Senden Sie eine Private Message an Leon  Schreiben Sie einen Gästebucheintrag für Leon

Beiträge: 415
Registriert: 28.03.2002

erstellt am: 24. Okt. 2008 07:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Perfekt......so funktionierts dann einwandfrei !
Besten Dank
    Leon

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz