Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Block - Attribute

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
Autor Thema:  Block - Attribute (3249 mal gelesen)
rrrrough
Mitglied



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

Beiträge: 18
Registriert: 15.08.2003

erstellt am: 31. Mrz. 2004 10:17    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

ich wende mich mit folgendem problem an euch:
ich versuche attribute aus einer BlockReferenz auszulesen auszulesen:

Attribute = DerBlock.GetAttributes

das funktioniert wenn der Block innerhalb der zeichnung mit BLOCK definiert wurde
das funktioniert nicht wenn der block als file in die zeichnung eingefügt wurde (die angegebene Programmzeile wird mit der Fehlermeldung quittiert: Objekt wurde gelöscht)

warum ist das so? wie kann ich auf die attribute aus dem file zugreifen?

------------------
leute: vielen dank

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 31. Mrz. 2004 16: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 Nur für rrrrough 10 Unities + Antwort hilfreich

Wenn ein Block kein Block ist, dann kannst du natürlich keine Attribute finden, da mußt du schon nach Attributen suchen.

------------------
Roland

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 31. Mrz. 2004 16:33    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 Nur für rrrrough 10 Unities + Antwort hilfreich

versteh ich jetzt auch nicht so ganz, aber die andere möglichkeit wäre das der block geschachtelt ist, block->wblock->einfüge(?).

gruss,harry

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 31. Mrz. 2004 21:34    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 Nur für rrrrough 10 Unities + Antwort hilfreich

Keine Ahnung, was du da machst - es ist völlig egal, wie der Block zustande gekommen ist. Ich vermute, du verwechselst irgendwo was (z.B. de Unterschied zwischen einem Block (der niemals Attribute haben kann!) und einem Insert (= Blockreferenz).

Es ist völlig unerheblich, ob die Block-Definition in einer Zeichnung erzeugt wurde oder aus einer Datei stammt, denn der Block spielt bei Attributen nur in dem Augenblick eine Rolle, in dem das Insert erzeugt wird. Später kann die Blockdefinition verändert werden, d.h. ein Insert kann Attribute haben, zu denen keine Attributsdefinition im Block vorliegt.

Der folgende Code liest Attribute aus, und zwar - wie gesagt - völlig unabhängig davon, was in der Blocktabelle steht:

Code:

Option Explicit
Option Base 0

Public Sub test()

  Dim obj As Object
  Dim sPoint As Variant
  Dim Atts As Variant
  Dim myAtt As IAcadAttributeReference
  Dim i As Integer

  ThisDrawing.Utility.GetEntity obj, sPoint, "Insert wählen: "

  If (obj.EntityName = "AcDbBlockReference") Then
    Atts = obj.GetAttributes

    For i = 0 To UBound(Atts) - 1
      Set myAtt = Atts(i)
      Debug.Print TypeName(myAtt) ' => IAcadAttributeReference
    Next i
  End If

End Sub


Laß dich nicht davon verwirren, dass die AutoCAD-Terminologie völlig konfus ist - so heißen die Dinge:

Code:

            in der Blocktabelle / in der Zeichnung

Allgemein:  Block(-definition)      Blockreferenz, Insert
AutoCAD:    BLOCK                    INSERT 
VBA/VLAX:  AcadBlock                AcadBlockReference
ObjectARX:  AcDbBlockTableRecord    AcDbBlockReference
C#/VB.NET:  BlockTableRecord        BlockReference     

Allgemein:  Attributsdefinition      Attribut
AutoCAD:    ATTDEF                  ATTRIB
VBA/VLAX:  AcadAttribute            AcadAttributeReference
ObjectARX:  AcDbAttributeDefinition  AcDbAttribute
C#/VB.NET:  AttributeDefinition      Attribute


Wie man sieht, ist AutoDesk sehr um eine einheitliche Nomenklatur bemüht;-)

HTHHope that helps = Hoffe es hilft + Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

rrrrough
Mitglied



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

Beiträge: 18
Registriert: 15.08.2003

erstellt am: 02. Apr. 2004 07:56    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

also vielen dank für die unterstützung - insbesondere für den code.
so konnte ich sehen das ich eigentlich alles richtig gemacht habe, nur:
den funktionsaufruf habe ich von einer UserForm ausgelöst, die per UserForm.Show vbModeless eingeblendet. und kurios, kurios in genau diesem fall funktioniert getAttributes nur noch wenn der block in der zeichnung erstellt wurde.
also: Forms normal einblenden ...

danke

------------------
leute: vielen dank

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 02. Apr. 2004 11:58    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 Nur für rrrrough 10 Unities + Antwort hilfreich

Das halte ich nach wie vor für ein Gerücht. Es ist völlig egal, ob eine Blockdefinition in der Zeichnung erzeugt oder aus einer Datei importiert wurde. a) steht in der Blocktabelle hinterher das Selbe drin, und b) wird die Blocktabelle bei dieser Geschichte nicht mal tangiert, weil die Attribute am Insert kleben. Ich habe es ja schon mal gesagt: Die Blockdefinition kann auch ganz andere oder gar keine Attdefs enthalten - macht auch nix.

Ich habe mir die Mühe gemacht und versucht, deine Aussage zu verifizieren: Es ist nicht nachvollziehbar. Egal, ob ich einen Block erzeuge oder über -insert von der Platte einfüge, egal auch, ob der Dialog modal oder modeless läuft: Es funktioniert immer.

Es bleibt dabei: Irgendetwas verwechselst du. Ich weiss nur nicht was.

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

rrrrough
Mitglied



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

Beiträge: 18
Registriert: 15.08.2003

erstellt am: 03. Apr. 2004 08: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

ja, wahrscheinlich verwechsle ich was ... sind ja noch die ersten versuche. aber ich schwöre: ich hatte in der gleichen zeichnung die verschiedenen blöcke, die mit der gleichen schleife abgefragt wurden. Selbstverständlich waren beide in der Blockauflistung - nur von einem waren die attribute nicht zu bekommen - fehlermeldung:

ist aber egal, dank deiner Hilfe und Bempühungen konnte ich das problem ja lösen - läuft jetzt wie am schnürchen.

ben

------------------
leute: vielen dank

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)2023 CAD.de | Impressum | Datenschutz