Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Objekthierarchie ausgeben

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
  
Intelligenter Workflow von Köln bis Delhi mit SAP PLM - KHD Humboldt Wedag , ein Anwenderbericht
Autor Thema:  Objekthierarchie ausgeben (2797 mal gelesen)
AutoArch
Mitglied
Designer/Konstrukteur


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

Beiträge: 43
Registriert: 04.11.2010

XEON E5630 2,53 GHz, 12 GB,
Win7 Ultimate 64Bit (SP1),
NVIDIA Quadro 4000<P>AutoCAD 2014 64 Bit

erstellt am: 08. Nov. 2010 15:36    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, AutoCAD-Experten,

ich habe diverse Bauteile als einzelne DWGs abgelegt, die ich mir als Blöcke in meine jeweilige Hauptzeichnung ziehe. Die Blöcke sind mit Attributen versehen, um per Attext eine Stückliste erstellen zu können, die in Excel per Pivottabelle zusammengefasst und ausgewertet wird.
Da aber in der Realität diese Bauteile bei ein und demselben Projekt teilweise sowohl als Einzelteile als auch schon zu Baugruppen vormontiert ausgeliefert werden, fasse ich ggf. einige Bauteile in einem übergeordneten Block zusammen.

Meine Vorstellung ist jetzt:
Ich möchte per Schriftfeld in einem Attribut den Namen des jeweils übergeordneten Objekts wie auch den eigenen Namen auslesen, so daß dieser bei Attext mit ausgegeben wird. Wenn dann bei Attext per BL:Level noch die Verschachtelungsebene der einzelnen Blöcke mit ausgegeben wird, könnte ich meine Stückliste im Excel anschließend hierarchisch sortieren.
D.h. wenn ich ein Bauteil in eine neue Zeichnung ziehe, sollte im Attribut „Baugruppe“ z.B. „*Modell_Space“ stehen, wenn ich das selbe Bauteil z.B. in den Block „Schreibtisch“ ziehe, sollte im Attribut „Baugruppe“ der Wert „Schreibtisch“ stehen.

Versucht habe ich bisher:
Ins Attribut „Baugruppe“ ein Schriftfeld einfügen. Leider gibt es keine fertige Funktion, die das, was ich brauche, bereitstellt. Also habe ich mir aus der Kategorie „Blockplatzhalter“ (nur im Blockeditor verfügbar) die Funktion für den Namen rauskopiert:
%<\AcObjProp.16.2 Object(?BlockRefId).EffectiveName>%

Mit einer kleinen Änderung läßt sich auch wunderbar die ID des übergeordneten Blocks auslesen:
%<\AcObjProp.16.2 Object(?BlockRefId).OwnerID>%

Nun hatte ich gehofft, die Funktion in diesem Schriftfeld so erweitern zu können, daß mir statt der ID der Name des übergeordneten Objekts angezeigt wird z.B.:
%<\AcObjProp Object(%<\AcObjProp.16.2 Object(?BlockRefId).OwnerId>%).Name>%
oder vielleicht noch besser:
%<\AcObjProp Object(%<\AcObjProp.16.2 Object(?BlockRefId).OwnerId>%).EffectiveName>%

Das Problem:
in einer Testdatei funktioniert das alles einigermaßen, solange ich sowohl die über- als auch die untergeordneten Blöcke in derselben Datei erstelle. Sobald ich diese aber per WBlock als eigene Dateien ablege und in eine neue Datei hineinziehe erscheint als Attributswert nur noch ####, da der Bezug futsch ist. AutoCAD kürzt die Funktion %<\AcObjProp Object(%<\AcObjProp.16.2 Object(?BlockRefId).OwnerId>%).Name>%  zu %<\AcObjProp Object(%<\_ObjId 2102986952>%).Name>% zusammen.
Auch die Abfrage der OwnerId wird auf %<\AcObjProp Object(%<\_ObjId 2103154312>%).TextString>% eingedampft.

Lassen sich solche Funktionen in einem Schriftfeld nicht anständig verschachteln? Oder kann man das ganze vielleicht über ein Formel-Feld lösen?
Habe leider keine wirkliche Ahnung von Lisp, Diesel oder was da so hilfreich wäre…
Wenn man die Blöcke mit dem zusammgekürzten Schriftfeld sprengt, steht in der Attributsdefinition wieder die ursprüngliche, verschachtelte Funktion.

Alternativ ginge auch eine Funktion, mit der ich statt des Namens des Owner-Objekts die ID der Blockdefinition meiner jeweiligen Blockreferenz auslesen kann, so daß ich hinterher in Excel den EffectiveName mit der ID der Blockdefinition abgleichen kann.
Leider habe ich bisher keine Möglichkeit gefunden, die ID einer Blockdefinition auszulesen. Die Funktion %<\AcObjProp.16.2 Object(?BlockRefId).ObjectId>% liest logischerweise jeweils nur die ID der jeweiligen Blockreferenz aus. D.h. wenn ich einen Block mehrfach in meine Zeichnung einfüge, hat jede Referenz ihre eigene ID.

Ich habe schon alles mögliche gegooglet und diverse Foren durchforstet, aber leider keine Lösung gefunden.
Ok… ziemlich viel Text, ich hoffe Ihr steigt durch

Wäre super, wenn mir jemand weiterhelfen könnte.

------------------
AutoArch

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

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


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

Beiträge: 3067
Registriert: 26.08.2002

ACAD R11 - 2022
(Plant3D)
AVIS
ACAD LT 2013- 2021
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 10 / 64 Bit
Xeon CPU 3.5GHz
16GB Ram
NVIDIA Quadro P2000
3x Dell TV100 88P Monitore

erstellt am: 08. Nov. 2010 17:12    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 AutoArch 10 Unities + Antwort hilfreich

PM .. ich versteh es net ganz ..

------------------
cadwomen™

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

AutoArch
Mitglied
Designer/Konstrukteur


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

Beiträge: 43
Registriert: 04.11.2010

XEON E5630 2,53 GHz, 12 GB,
Win7 Ultimate 64Bit (SP1),
NVIDIA Quadro 4000<P>AutoCAD 2014 64 Bit

erstellt am: 10. Nov. 2010 11:49    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

Guten Morgen,

bin leider noch nicht wirklich weiter gekommen. Habe mit den Funktionen Blockdoc von Cadwiesel und der Funktion von Andreas aus diesem Beitrag experimentiert. Geht schon in die richtige Richtung, macht aber einiges doch anders als es für mich sinnvoll ist.


Am einfachsten wäre es für mich, wenn ich per Schriftfeld in einem Attribut entweder

  den (Effective)Name des übergeordneten Objekts

oder

  die Objekt-ID der Blockdefinition von der meine Blockreferenz, in der das besagte Attribut enthalten ist, abgeleitet ist,

anzeigen und ausgeben könnte.

Die Zuordnung von ID und Namen könnte ich dann in Excel vornehmen.


Allerdings scheint es, wie oben beschrieben, nicht möglich zu sein, Funktionen in Schriftfeldern dynamisch zu verschachteln. Nur die äußerste Funktion scheint dynamisch zu bleiben, die darin "eingepackten" Funktionen werden immer in statische Werte umgewandelt (s.o.), die erst wieder aufgelöst werden, wenn man den Block sprengt.

Weiß jemand von Euch, ob es eine Möglichkeit gibt, diese internen Funktionen "dynamisch" zu halten? Oder geht das, was ich versuche auf die Art einfach nicht?

Wäre echt dankbar für hilfreiche Tips 

------------------
AutoArch

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4187
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Nov. 2010 01: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 Nur für AutoArch 10 Unities + Antwort hilfreich

Hallo,

...kann es sein, dass du einfach eine Stückliste möchtest, in der die verschachtelten Elemente mit ausgegeben werden?

Vielleicht hilft dir ja das D-Tool[51] DT-INSERT-ATTRIBUT. Zu finden auf www.D-Tools.eu

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


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

Beiträge: 3067
Registriert: 26.08.2002

ACAD R11 - 2022
(Plant3D)
AVIS
ACAD LT 2013- 2021
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 10 / 64 Bit
Xeon CPU 3.5GHz
16GB Ram
NVIDIA Quadro P2000
3x Dell TV100 88P Monitore

erstellt am: 11. Nov. 2010 09:13    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 AutoArch 10 Unities + Antwort hilfreich

.. jep genau das meint er ... "wußte" doch das ich das irgendwo schon mal gelesen hatte


cw

------------------
cadwomen™

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 11. Nov. 2010 10:11    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 AutoArch 10 Unities + Antwort hilfreich

Hallo AutoArch,

Zitat:
bin leider noch nicht wirklich weiter gekommen. Habe mit den Funktionen Blockdoc von Cadwiesel und der Funktion von Andreas aus diesem Beitrag experimentiert. Geht schon in die richtige Richtung, macht aber einiges doch anders als es für mich sinnvoll ist.


Ja ja, Attribute aus verschachtelten Blöcken.
Du brauchst hier sicher eine Funktion für beliebige Verschachtelungstiefen.
Das muß ich wohl mal Updaten, ich setz mich in der Mittagspause mal dran. Kann aber sein daß ich das in der Zeit nicht ganz schaff (essen muß ich auch noch  ), dann wirds erst morgen was.
Ich meld mich.

Ach ja, noch ne Frage: Brauchst du für jedes Objekt den kompletten Verschachtelungspfad oder nur das direkt übergeordnete Objekt ?
Ich denke der komplete Pfad wäre sinnvoller. Beispiel Schloss für Schublade im Schreibtisch und auch im Rollcontainer eingebaut, würde nur Schublade als Ergebnis liefern und nicht Rollcontainer/Schublade und Schreibtisch/Schublade. Oder ?

------------------
Gruß
Andreas

http://kraus-cad.de

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

AutoArch
Mitglied
Designer/Konstrukteur


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

Beiträge: 43
Registriert: 04.11.2010

XEON E5630 2,53 GHz, 12 GB,
Win7 Ultimate 64Bit (SP1),
NVIDIA Quadro 4000<P>AutoCAD 2014 64 Bit

erstellt am: 11. Nov. 2010 14:08    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


IDrichtig-Baugruppen.zip

 
Hallo, Andreas,

vielen Dank schonmal im Voraus

Zitat:
Ach ja, noch ne Frage: Brauchst du für jedes Objekt den kompletten Verschachtelungspfad oder nur das direkt übergeordnete Objekt ?
Ich denke der komplete Pfad wäre sinnvoller. Beispiel Schloss für Schublade im Schreibtisch und auch im Rollcontainer eingebaut, würde nur Schublade als Ergebnis liefern und nicht Rollcontainer/Schublade und Schreibtisch/Schublade. Oder ?

Der vollständige Pfad wäre natürlich spitze! Dann könnte man das ganze in Excel sortieren per Autogliederung zusammenfassen und nach Bedarf ein- und ausblenden.
Falls das nicht geht, wäre mir auch schon mit der jeweils übergeordneten Ebene geholfen. Da müßte ich mir denn in Excel ein entsprechendes Makro basteln.

Das D-Tool von Holger sieht in der Doku schon ziemlich nach dem aus, was ich suche, hab´s aber noch nicht ausprobiert.
Allerdings hatte ich gehofft, das ganze mit ACAD-Bordmitteln erschlagen zu können, damit man ggf. noch selber Anpassungen vornehmen kann.

Daher auch der Ansatz mit den Schriftfeldern. Sah mir nach einer praktikablen Lösung aus. Aber anscheinend die Funktionen beim Verschachteln ja nicht dynamisch.
Hat das von Euch schonmal jemand probiert? Oder weiß einen Workaround?


Ich hab mal eine meiner Test-Dateien zum ausprobieren angehängt, bei der die Abfrage der OwnerID funktioniert. Wenn ich anhand dieser ID jetzt noch den Namen auslesen könnte, wäre ich schon überglücklich...

------------------
AutoArch

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4187
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Nov. 2010 15:57    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 AutoArch 10 Unities + Antwort hilfreich


IDrichtig-Baugruppen.zip

 
Hallo,

anbei mal das Testergebnis mit dem D-Tool: DT-Insert-Attribut

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 11. Nov. 2010 16:02    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 AutoArch 10 Unities + Antwort hilfreich

Aha !

Dann sollte das hier eigentlich funktionieren. Du brauchst auch keine Schriftfelder mehr die dir die Objekt-ID in ein Attribut schreiben. Probiers mal ohne, macht alles das Programm. Die Textdatei einfach in Excel einlesen, Tabstop-getrennt.

Viel Spass damit und wenn was ist .... melden ! 

(defun c:get_natt ()
  (defun get_att (obj_name / att_list)
    (if (and (vlax-property-available-p obj_name "hasattributes")
    (= (vla-get-hasattributes obj_name) :vlax-true)
    (not (minusp (vlax-safearray-get-u-bound
    (vlax-variant-value
      (vla-getattributes obj_name)
    )
    1
  )
  )
    )
)
      (setq att_list
    (mapcar
      '(lambda (obj)
  (list (vla-get-tagstring obj) (vla-get-textstring obj))
)
      (vlax-safearray->list
(vlax-variant-value
  (vla-getattributes obj_name)
)
      )
    )
      )
    )
    att_list
  )

  (defun get-block-data (block namen parent-id / data_list)
    (vlax-for obj block
      (if (= (vla-get-objectname obj) "AcDbBlockReference")
(setq data_list
      (append
(list (list
(list "Objekt ID" (itoa (vla-get-objectid obj)))
(list "Parent ID" parent-id)
(list
  "Namen"
  (strcat namen " / " (vla-get-effectivename obj))
)
(list "Attribute" (get_att obj))
      )
)
(get-block-data
  (vla-item
    (vla-get-blocks
      (vla-get-activedocument
(vlax-get-acad-object)
      )
    )
    (vla-get-effectivename obj)
  )
  (strcat namen " / " (vla-get-effectivename obj))
  (itoa (vla-get-objectid obj))
)
data_list
      )
)
      )
    )
    data_list
  )

  (defun purge_list (liste / dummy)
    (while liste
      (setq dummy (cons (car liste) dummy))
      (setq liste (vl-remove (car liste) liste))
    )
    (reverse dummy)
  )

;;; ###################################################

;;; Blockdefinition des aktuellen Layouts holen
  (setq block (vla-get-block
(vla-get-activelayout
  (vla-get-activedocument (vlax-get-acad-object))
)
      )
  )

;;; Datenliste rekursiv erstellen
  (setq data_list (get-block-data
    block
    (getvar "ctab")
    (itoa (vla-get-objectid block))
  )
  )

;;; Überschriftenliste erstellen
  (setq überschriften
(append (list "Objekt ID" "Parent ID" "Namen")
(setq att_list (vl-sort
  (purge_list
    (mapcar
      'car
      (apply
'append
(vl-remove
  nil
  (mapcar
    '(lambda (data)
      (cadr (assoc "Attribute" data))
    )
    data_list
  )
)
      )
    )
  )
  '<
)
)
)
  )

;;; Liste mit Texte der Daten erstellen
  (setq txt_list
(mapcar
  '(lambda (data)
      (mapcar '(lambda (txt)
(if txt
  txt
  ""
)
      )
      (append
(list (cadr (assoc "Objekt ID" data))
      (cadr (assoc "Parent ID" data))
      (cadr (assoc "Namen" data))
)
(if (setq att_data (cadr (assoc "Attribute" data)))
  (mapcar '(lambda (att) (cadr (assoc att att_data)))
  att_list
  )
  (list)
)
      )
      )
    )
  data_list
)
  )

;;; und das Ganze in eine Textdatei

  (setq pfad (getfiled "Daten in Datei schreiben" "Daten.txt" "" 3))
  (setq datei (open pfad "w"))
  (foreach zeile (cons überschriften txt_list)
    (write-line
      (substr (apply 'strcat
    (mapcar '(lambda (txt) (strcat "\t" txt)) zeile)
      )
      2
      )
      datei
    )
  )
  (close datei)
  (princ)
)

------------------
Gruß
Andreas

http://kraus-cad.de

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 12. Nov. 2010 06:32    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 AutoArch 10 Unities + Antwort hilfreich

Hallo Andreas!
Bei deinem ersten Code get_natt
(http://ww3.cad.de/foren/ubb/Forum54/HTML/023305.shtml#000011)
funktioniert die benutzerdefinierten Objektauswahl.
Nur die mehrfache Verschachtelungstiefe (die Verschachtelungstiefe kann auch mal 5 Ebenen haben) nicht.
Könnte man dies im Programm noch hinbiegen.
Die benutzerdefinierte Objektauswahl ist für mich genau das richtige.

Lg

Martin 

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13527
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 12. Nov. 2010 07:21    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 AutoArch 10 Unities + Antwort hilfreich

Zitat:

(defun purge_list (liste / dummy)
    (while liste
      (setq dummy (cons (car liste) dummy))
      (setq liste (vl-remove (car liste) liste))
    )
    (reverse dummy)
)

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 12. Nov. 2010 07: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 AutoArch 10 Unities + Antwort hilfreich

Guten Morgen Thomas!

Hab deinen Code mit dem aus dem Programm getauscht.
Nun hab ich zwar die Objektreferenz und den BLOCKNAME aber die restlichen
Attribute usw. fehlen!

lg. Martin

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13527
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 12. Nov. 2010 07: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 Nur für AutoArch 10 Unities + Antwort hilfreich

nee, ich hab den Code nur zitiert, weil ich ihn nicht verstanden hab .... bzw. ich den Sinn nicht erkenne .... vielleicht erklärt Andreas das ja ?!

um vla-get-effectivename  bei Versionen vor 2006 und
um vla-get-objectid  bei 64Bit muss er sich ja auch noch kümmern 


------------------
          - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 12. Nov. 2010 07:45    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 AutoArch 10 Unities + Antwort hilfreich

"Hmmmm..."
Schade!

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 12. Nov. 2010 08:28    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 AutoArch 10 Unities + Antwort hilfreich

@Thomas
Der Code entfernt alle mehrfachen Einträge aus der Liste daß von jedem Eitrag nur noch einer übrig bleibt. Der Name ist vielleicht etwas missverständlich (muß ich mal ändern) aber ich hatte das noch irgendwo rumliegen und habs einfach so eingebaut. Wenns besser geht ... her mit der Info.

vla-get-effectivename bei Versionen vor 2006 kommt noch, ich hab ja heute auch noch ne Pause 

vla-get-objectid bei 64Bit kann noch dauern ich hab hier noch keine 64Bit und kenne den Unterschied noch nicht.
Das hab ich aber auch nur eingebaut weil AutoArch damit wohl das machen will, ich hab die ObectID noch nie verwendet (hab mich auch noch nie damit beschäftigt  ). Was macht man damit überhaupt ? Ich hab meine Objekte bis jetzt immer übers Handle identifizieren können.

------------------
Gruß
Andreas

http://kraus-cad.de

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 12. Nov. 2010 12:08    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 AutoArch 10 Unities + Antwort hilfreich

So - damit müßte es auch für Versionen vor 2006 gehn.
Wär toll wenns jemans mal ausprobiert, ich hab keine alte Version mehr hier.

(defun c:get_natt ()
  (defun get_att (obj_name / att_list)
    (if (and (vlax-property-available-p obj_name "hasattributes")
    (= (vla-get-hasattributes obj_name) :vlax-true)
    (not (minusp (vlax-safearray-get-u-bound
    (vlax-variant-value
      (vla-getattributes obj_name)
    )
    1
  )
  )
    )
)
      (setq att_list
    (mapcar
      '(lambda (obj)
  (list (vla-get-tagstring obj) (vla-get-textstring obj))
)
      (vlax-safearray->list
(vlax-variant-value
  (vla-getattributes obj_name)
)
      )
    )
      )
    )
    att_list
  )

  (defun get-block-data (block namen parent-id / data_list)
    (vlax-for obj block
      (if (= (vla-get-objectname obj) "AcDbBlockReference")
(setq data_list
      (append
(list (list
(list "Objekt ID" (itoa (vla-get-objectid obj)))
(list "Parent ID" parent-id)
(list
  "Namen"
  (strcat namen " / " (get_blockname obj))
)
(list "Attribute" (get_att obj))
      )
)
(get-block-data
  (vla-item
    (vla-get-blocks
      (vla-get-activedocument
(vlax-get-acad-object)
      )
    )
    (get_blockname obj)
  )
  (strcat namen " / " (get_blockname obj))
  (itoa (vla-get-objectid obj))
)
data_list
      )
)
      )
    )
    data_list
  )

  (defun purge_list (liste / dummy)
    (while liste
      (setq dummy (cons (car liste) dummy))
      (setq liste (vl-remove (car liste) liste))
    )
    (reverse dummy)
  )

  (defun get_blockname (obj)
    (if (vlax-property-available-p obj_name "effectivename")
      (vla-get-effectivename obj)
      (vla-get-name obj)
    )
  )
 
;;; ###################################################

;;; Blockdefinition des aktuellen Layouts holen
  (setq block (vla-get-block
(vla-get-activelayout
  (vla-get-activedocument (vlax-get-acad-object))
)
      )
  )

;;; Datenliste rekursiv erstellen
  (setq data_list (get-block-data
    block
    (getvar "ctab")
    (itoa (vla-get-objectid block))
  )
  )

;;; Überschriftenliste erstellen
  (setq überschriften
(append (list "Objekt ID" "Parent ID" "Namen")
(setq att_list (vl-sort
  (purge_list
    (mapcar
      'car
      (apply
'append
(vl-remove
  nil
  (mapcar
    '(lambda (data)
      (cadr (assoc "Attribute" data))
    )
    data_list
  )
)
      )
    )
  )
  '<
)
)
)
  )

;;; Liste mit Texte der Daten erstellen
  (setq txt_list
(mapcar
  '(lambda (data)
      (mapcar '(lambda (txt)
(if txt
  txt
  ""
)
      )
      (append
(list (cadr (assoc "Objekt ID" data))
      (cadr (assoc "Parent ID" data))
      (cadr (assoc "Namen" data))
)
(if (setq att_data (cadr (assoc "Attribute" data)))
  (mapcar '(lambda (att) (cadr (assoc att att_data)))
  att_list
  )
  (list)
)
      )
      )
    )
  data_list
)
  )

;;; und das Ganze in eine Textdatei

  (setq pfad (getfiled "Daten in Datei schreiben" "Daten.txt" "" 3))
  (setq datei (open pfad "w"))
  (foreach zeile (cons überschriften txt_list)
    (write-line
      (substr (apply 'strcat
    (mapcar '(lambda (txt) (strcat "\t" txt)) zeile)
      )
      2
      )
      datei
    )
  )
  (close datei)
  (princ)
)

------------------
Gruß
Andreas

http://kraus-cad.de

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 15. Nov. 2010 09: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 Nur für AutoArch 10 Unities + Antwort hilfreich

Hallo Andreas!

Ich hab's in 2011 probiert.
Leider erhalte ich folgende Fehlermeldung:
---Befehl: get_natt
; Fehler: Fehlerhafter Argumenttyp: VLA-OBJECT nil----

lg.
Martin

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 15. Nov. 2010 12:15    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 AutoArch 10 Unities + Antwort hilfreich

Ja ja, ich lerns nie 

(vl-load-com) in die erste Zeile schreiben.

------------------
Gruß
Andreas

http://kraus-cad.de

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 15. Nov. 2010 12:51    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 AutoArch 10 Unities + Antwort hilfreich

Hallo Andreas!
Hab ich schon beim ersten mal gemacht!
Funktioniert trotzdem nicht!
"; Fehler: Fehlerhafter Argumenttyp: VLA-OBJECT nil"

lg. Martin

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 15. Nov. 2010 13:04    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 AutoArch 10 Unities + Antwort hilfreich

Gib mir mal ne Beispielzeichnung. Da hab ich sicher was übersehen.

------------------
Gruß
Andreas

http://kraus-cad.de

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 15. Nov. 2010 13:15    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 AutoArch 10 Unities + Antwort hilfreich


BlockHiera.dwg.txt

 
Hier eine Musterzeichnung.
Ich hoffe es funktioniert.
lg
Martin

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 15. Nov. 2010 14:44    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 AutoArch 10 Unities + Antwort hilfreich

Das kommt davon wenn man Feierabend haben will 

(defun c:get_natt ()
  (defun get_att (obj_name / att_list)
    (if (and (vlax-property-available-p obj_name "hasattributes")
    (= (vla-get-hasattributes obj_name) :vlax-true)
    (not (minusp (vlax-safearray-get-u-bound
    (vlax-variant-value
      (vla-getattributes obj_name)
    )
    1
  )
  )
    )
)
      (setq att_list
    (mapcar
      '(lambda (obj)
  (list (vla-get-tagstring obj) (vla-get-textstring obj))
)
      (vlax-safearray->list
(vlax-variant-value
  (vla-getattributes obj_name)
)
      )
    )
      )
    )
    att_list
  )

  (defun get-block-data (block namen parent-id / data_list)
    (vlax-for obj block
      (if (= (vla-get-objectname obj) "AcDbBlockReference")
(setq data_list
      (append
(list (list
(list "Objekt ID" (itoa (vla-get-objectid obj)))
(list "Parent ID" parent-id)
(list
  "Namen"
  (strcat namen " / " (get_blockname obj))
)
(list "Attribute" (get_att obj))
      )
)
(get-block-data
  (vla-item
    (vla-get-blocks
      (vla-get-activedocument
(vlax-get-acad-object)
      )
    )
    (get_blockname obj)
  )
  (strcat namen " / " (get_blockname obj))
  (itoa (vla-get-objectid obj))
)
data_list
      )
)
      )
    )
    data_list
  )

  (defun purge_list (liste / dummy)
    (while liste
      (setq dummy (cons (car liste) dummy))
      (setq liste (vl-remove (car liste) liste))
    )
    (reverse dummy)
  )

  (defun get_blockname (obj)
    (if (vlax-property-available-p obj "effectivename")
      (vla-get-effectivename obj)
      (vla-get-name obj)
    )
  )
 
;;; ###################################################
  (vl-load-com)
;;; Blockdefinition des aktuellen Layouts holen
  (setq block (vla-get-block
(vla-get-activelayout
  (vla-get-activedocument (vlax-get-acad-object))
)
      )
  )

;;; Datenliste rekursiv erstellen
  (setq data_list (get-block-data
    block
    (getvar "ctab")
    (itoa (vla-get-objectid block))
  )
  )

;;; Überschriftenliste erstellen
  (setq überschriften
(append (list "Objekt ID" "Parent ID" "Namen")
(setq att_list (vl-sort
  (purge_list
    (mapcar
      'car
      (apply
'append
(vl-remove
  nil
  (mapcar
    '(lambda (data)
      (cadr (assoc "Attribute" data))
    )
    data_list
  )
)
      )
    )
  )
  '<
)
)
)
  )

;;; Liste mit Texte der Daten erstellen
  (setq txt_list
(mapcar
  '(lambda (data)
      (mapcar '(lambda (txt)
(if txt
  txt
  ""
)
      )
      (append
(list (cadr (assoc "Objekt ID" data))
      (cadr (assoc "Parent ID" data))
      (cadr (assoc "Namen" data))
)
(if (setq att_data (cadr (assoc "Attribute" data)))
  (mapcar '(lambda (att) (cadr (assoc att att_data)))
  att_list
  )
  (list)
)
      )
      )
    )
  data_list
)
  )

;;; und das Ganze in eine Textdatei

  (if (setq pfad (getfiled "Daten in Datei schreiben" "Daten.txt" "" 3))
    (progn
      (setq datei (open pfad "w"))
      (foreach zeile (cons überschriften txt_list)
(write-line
  (substr (apply 'strcat
(mapcar '(lambda (txt) (strcat "\t" txt)) zeile)
  )
  2
  )
  datei
)
      )
      (close datei)
    )
  )
  (princ)
)

------------------
Gruß
Andreas

http://kraus-cad.de

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 15. Nov. 2010 15:27    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 AutoArch 10 Unities + Antwort hilfreich

Hallo Andreas!

Jetzt funktioniert es super.
Nur beim Import in Exel werden die Blocknamen "(Model / Wohnwand / Oberschrank / Tür)" alle in 1 Spalte geschrieben. Besser wäre doch pro Name eine Spalte.
Ich bin kein Profi in Exel. Vielleicht hab ich auch beim Import was falsch gemacht--nur was??

lg Martin

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

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


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

Beiträge: 3067
Registriert: 26.08.2002

ACAD R11 - 2022
(Plant3D)
AVIS
ACAD LT 2013- 2021
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 10 / 64 Bit
Xeon CPU 3.5GHz
16GB Ram
NVIDIA Quadro P2000
3x Dell TV100 88P Monitore

erstellt am: 15. Nov. 2010 15: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 Nur für AutoArch 10 Unities + Antwort hilfreich

... wie sieht die Extraktdatei den aus ?

------------------
cadwomen™

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1455
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 15. Nov. 2010 15:59    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 AutoArch 10 Unities + Antwort hilfreich

Nee, du hast nichts falsch gemacht.
Das ist ja die Struktur wie der entsprechende Block verschachtelt ist. Ich hätte nicht gedacht daß das "aufgedröselt" sein soll. Kann man machen, aber heut nicht mehr 
Ich glaub ich mach das "schaltbar", sonst kommt einer und wills anders 

------------------
Gruß
Andreas

http://kraus-cad.de

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 15. Nov. 2010 16:00    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 AutoArch 10 Unities + Antwort hilfreich

wie Extraktdatei 

lg. Martin

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

MARTINLE
Mitglied
Tischler


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

Beiträge: 485
Registriert: 18.10.2007

AUTOCAD 2016,
MS Windows7, 64-bit

erstellt am: 15. Nov. 2010 16:02    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 AutoArch 10 Unities + Antwort hilfreich

Hallo Andreas!

Super!

lg. Martin

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

AutoArch
Mitglied
Designer/Konstrukteur


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

Beiträge: 43
Registriert: 04.11.2010

XEON E5630 2,53 GHz, 12 GB,
Win7 Ultimate 64Bit (SP1),
NVIDIA Quadro 4000<P>AutoCAD 2014 64 Bit

erstellt am: 18. Nov. 2010 14:13    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, Andreas,

bin ja echt begeistert  Das Programm funktioniert echt gut!

Allerdings hat Martin schon Recht, wenn der Blockname und der Block-Pfad in getrennten Feldern ausgegeben würden wär´s noch praktischer - und eine Objektauswahl wär natürlich auch toll.
Was mir noch aufgefallen ist: Bei einer Test-DWG wurden auch Blöcke mit ausgegeben, die nicht über Attribute verfügten (in diesem Fall Tasten von Computertastaturen - also ziemlich viele...). Ich hatte angenommen, das würde durch die Abfrage

Zitat:
(if (and (vlax-property-available-p obj_name "hasattributes")
    (= (vla-get-hasattributes obj_name) :vlax-true)

ausgeschlossen - oder hab ich das falsch interpretiert (Kenn mich mit LISP nicht wirklich aus)?

Natürlich kann ich leere Datensätze später in Excel noch ausfiltern, aber wenn man über "hasattributes" verhindern könnten, daß solche Attribut-losen Blöcke überhaupt ausgegeben werden, würde das eine Menge Zeilen in der Extrakt-Datei und Rechneleistung in Excel sparen.

Und dabei fällt mir ein: Ist es möglich im Blockpfad auch nur die Blöcke auszugeben, die ebenfalls Attribute besitzen? D.h. wenn jemand einen Block als feste Baugruppe erstellt hat und diesem Block ein Attribut zugewiesen hat (z.B. Attribut "Typ", Wert "Baugruppe") würde dies im Block-Pfad mit auftauchen.
Wenn aber jemand Objekte nur zu Gruppierungszwecken als Block (OHNE Attribute) zusammengefasst hat, sollte dieser Block in der Ausgabe der Objekthierarchie nicht auftauchen, da es diese Baugruppe in der Realität gar nicht körperlich zusammenhängend existiert.

Ich hoffe mal, das war jetzt nicht zu verwirrend - wär wirklich super, wenn das technisch machbar wäre.


Auf jeden Fall schonmal vielen Dank bis hierher, hat schon echt weitergeholfen!

Danke auch nochmal an Holger - Das Ergebnis mit dem eingefügten Blocksymbol in der Tabelle ist natürlich auch schnieke! Muß mal ausprobieren, ob das auch mit 3D-Blöcken funktioniert.


Freundliche Grüße, vielen Dank und frohes Schaffen!

------------------
AutoArch

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