| |
| 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, eine Pressemitteilung
|
Autor
|
Thema: eattext und -eattext unterschiedlich im Ergebnis (2291 mal gelesen)
|
LarsM Mitglied Bauing.
Beiträge: 88 Registriert: 08.12.2003 ACAD2004, ACAD2007 WIN-XP
|
erstellt am: 01. Jul. 2006 18:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich sitze gerade im Urlaub und versuche meine Tools von 2004 auf 2007 umzustricken. Ich habe eine Zeichnung, welche unzaehlige Bloecke gleichen Namens besitzt. Die Attributwerte dieser Bloecke sind jedoch unterschiedlich. Wenn ich mit "Eattext" ueber "Objekt" von einem Block die Werte auslesen moechte, bekomme ich wunschgemaess nur von diesem die Werte. Versuche ich jedoch innerhalb von Lisp mit "-Eattext" und der selben Vorlagedatei das gleiche, erhalte ich von allen Bloecken de Daten. Ich moechte nur von dem angeklickten Block die Daten haben. Was mache ich falsch? Da ich nur zeitweise ins Netz kann, habt bitte Geduld wenn ich nicht sofort anworte. Lars ------------------ Fachmann zur Aufhebung der Schwerkraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Niggemann Mitglied
Beiträge: 165 Registriert: 31.10.2003 Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010
|
erstellt am: 01. Jul. 2006 22:47 <-- editieren / zitieren --> Unities abgeben: Nur für LarsM
Hallo Lars gib doch in der Befehlszeile einmal "-eattext" ein und beantworte die Fragen, da kommt doch als erstes "Geben Sie den Extraktionstyp ein [Objekte/Aktuellzeichn/Gewähltzeichn]" und hier Antwortest du ja auch mit "O" um die Objekte zu wählen, oder ? solltes du mit dem Befehl "command" arbeiten so must du eben das "o" einbauen oder du hast bereits eine Auswahlsatz. Gruß Niggemann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LarsM Mitglied Bauing.
Beiträge: 88 Registriert: 08.12.2003 ACAD2004, ACAD2007 WIN-XP
|
erstellt am: 03. Jul. 2006 10:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Niggemann, ich hatte das "o" eingebaut. Nur wie gesagt, ich erhalte bei "-eattext" eine Liste aller Bloecke mit dem selben Namen. Nimm zwei gleichnamige Bloecke und schau Dir die unterschiedlichen Ergebnisse von "eattext" und "-eattext" an, obwohl man nur einen anklickt. Ich denke mittlerweile, dass ich nur ueber "attext" weiterkomme. Lars ------------------ Fachmann zur Aufhebung der Schwerkraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 03. Jul. 2006 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für LarsM
Hallo Lars, wir sind doch hier im (Auto-)LISP-FORUM, also gehe ich mal davon aus das du nicht auf Autocad-Funktionen wie EATTEXT angewiesen bist, im Übrigen kann ich deine Beobachtung bestätigen - leider. Sehe dir den anderen aktuellen Thread an bezüglich Attribute, http://ww3.cad.de/foren/ubb/Forum145/HTML/001717.shtml natürlich auch ältere über die Suchfunktion Evtl. sogar das Thema "Blöcke" vom User:FAQ im "Rund um Autocad"-Forum. - Darauf das du keine unzähligen gleichnamigen Blöcke hast brauche ich nicht eingehen, denke dir ist bekannt es nie versch. Blöcke gleichen Names gibt, aber unzählige BlockREFERENZEN von EINem BLOCK. -Kurz- Ermittel die Blockreferenz, Beispiele:
(ssget "_:S" '((0 . "INSERT"))) (ssget '((0 . "INSERT")))Dann kommst du über den jeweiligen Elementnamen der Blockreferenz an die Attribute - indem man "das nächste" Elemt aufruft über ENTNEXT. (entget(entnext(car(entsel)))), wieder ENTNEXT kommst du zum nächsten usw. KONSTANTE ATTRIBUTE muß man aber in der Blockdefinition absuchen. (entget(tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel))))))) So hast du dann deine selbstkreierte Attribut-Auslese Funktion erstellt. (und: sie bietet jede Möglichkeit der Anpassung !) [Diese Nachricht wurde von cadffm am 03. Jul. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 03. Jul. 2006 11:04 <-- editieren / zitieren --> Unities abgeben: Nur für LarsM
zu Sebastians Ausführung mal ein (ausbaufähiges) Beispiel in Normalo-Lisp (defun Getattribs (INSERT / OBJEKTDATEN LISTE ATTNAME ATTVALUE) (if(and(=(type INSERT)'ENAME) (=(cdr(assoc 0 (setq OBJEKTDATEN(entget INSERT)))) "INSERT") (assoc 66 OBJEKTDATEN) ) (progn (while (/= (cdr (assoc 0 OBJEKTDATEN)) "SEQEND") (setq OBJEKTDATEN (entget (entnext (cdr (assoc -1 OBJEKTDATEN))))) (if(and(=(cdr (assoc 0 OBJEKTDATEN)) "ATTRIB") (setq ATTNAME(cdr (assoc 2 OBJEKTDATEN))) (setq ATTVALUE(cdr (assoc 1 OBJEKTDATEN))) ) (setq LISTE(cons (cons ATTNAME ATTVALUE) LISTE)) ) ) LISTE ) ) ) aufrufbar z.B. (Getattribs(car(entsel))) oder direkt mit einem Insert-Objekt als Parameter ... die Rückgabeliste in eine Textdatei auszugeben dürfte ja nicht allzu schwer sein ------------------ - 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 |
LarsM Mitglied Bauing.
Beiträge: 88 Registriert: 08.12.2003 ACAD2004, ACAD2007 WIN-XP
|
erstellt am: 07. Jul. 2006 11:49 <-- editieren / zitieren --> Unities abgeben:
Hallo, heute ist mein letzter Urlaubstag und Eure Ansaetze sehen vielversprechend aus. Anfang der Woche, wenn die uebliche Panik im Buero wieder abgeklungen ist, werde ich Eure Tips einbauen. Auf jeden Fall vielen Dank! Gruss Lars ------------------ Fachmann zur Aufhebung der Schwerkraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LarsM Mitglied Bauing.
Beiträge: 88 Registriert: 08.12.2003 ACAD2004, ACAD2007 WIN-XP
|
erstellt am: 27. Sep. 2006 21:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, nochmals vielen Dank für das kleine Tool. Ich muss zugeben, dass es mir schwer fällt den Programmzeilen zu folgen. Jedoch habe ich die gewollten Daten bekommen. Ich habe nur noch ein Problem. Ich habe den Block ich eine Gruppe gepackt. Wenn nun der Zeichner nicht den Block anklickt, sondern nur die anderen Gruppenmitglieder, bekomme ich natürlich keine Informationen. Unter 2004 und -eattext funktionierte das. Wärest Du so nett und könntest da noch einmal hinschauen und Deine Programmzeilen modifizieren? Ich bekomme das nicht hin. Als Anlage habe ist eine Zeichnung beigefügt, damit Du verstehst wie ich das meine. Gruß Lars ------------------ Fachmann zur Aufhebung der Schwerkraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 27. Sep. 2006 22:06 <-- editieren / zitieren --> Unities abgeben: Nur für LarsM
(entsel) dient nunmal der Objektwahl und wenn ich ein anderes Objekt als die Blockrefernez anklicke läuft das Programm natürlich ins Leere. Betreffs Gruppen .. gibts hier ja im Forum schon einigen Code ..( Marc ) .. du müßtest aus dem gewählten Objekt also die Eigentümergruppen auslesen, alle Objekte dieser Gruppen ermitteln... und alle Blockreferenzen unter ihnen mit dem obigen Tool auswerten. Sicher machbar, aber das zu proggen fehlt mir einfach die Zeit und Lust. Sorry. ------------------ - 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 |
LarsM Mitglied Bauing.
Beiträge: 88 Registriert: 08.12.2003 ACAD2004, ACAD2007 WIN-XP
|
erstellt am: 27. Sep. 2006 23:16 <-- editieren / zitieren --> Unities abgeben:
Als erstes möchte ich Dir Thomas und Dir Mac sagen, dass ich Euch wirklich nicht persönlich angreifen möchte! Ich kenne die Kommentare von Marc und die Hinweise auf die Suchfunktion. Nur Ihr habt wohl vergessen, dass ich, wie viele andere, nur Hobbyprogger sind. Ich habe mir als Student, also ungefähr zu Beginn der Autolispprogrammierung, ein Paar Tools gebastelt. Nun haben so Typen wie ich das Problem, dass Autodesk neue Versionen rausbringt, die nicht ganz kompatibel sind. Ihr bewegt Euch auf gewohntem Terrain, ich nicht mehr und weiß ehrlich gesagt teilweise nicht mal, wonach ich über die Suchfunktion suchen soll. Das ist ungefähr wie die Fremdsprachen, die wir alle mal gelernt und leider wieder vergessen haben. Versucht doch mal in z. B. eine französichem Lexikon die Erklärung für ein Wort zu finden, was Ihr nur noch auf deutsch kennt, - viel Spaß. Ich verstehe, wenn Ihr keine Zeit und keine Lust habt, so profane Fragen zu beantworten. Nur mit der Suchfunktion kommt man hier als Laie wirklich nicht weiter. Also spart Euch bitte solche Hinweise. Nehmt es mir nicht übel, aber ich denke, dass viele Blindgänger wie ich mit den hilfsbereiten Hinweisen auf die Suchfunktion ein Problem haben. Genug gemeckert, - ich werde es schon hinbekommen. Gruß Lars ------------------ Fachmann zur Aufhebung der Schwerkraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 28. Sep. 2006 07:48 <-- editieren / zitieren --> Unities abgeben: Nur für LarsM
Zitat: Original erstellt von LarsM: Nur Ihr habt wohl vergessen, dass ich, wie viele andere, nur Hobbyprogger sind. Ich verstehe, wenn Ihr keine Zeit und keine Lust habt, so profane Fragen zu beantworten. Nehmt es mir nicht übel, aber ich denke, dass viele Blindgänger wie ich mit den hilfsbereiten Hinweisen auf die Suchfunktion ein Problem haben.
Hier nimmt keiner was übel, - ich schon gar nicht, aber 1. ist das keine profane Frage 2. wird das keine profane Programmierung werden 3. bin ich wirklich rein fakultativ in den Foren unterwegs 4. nimm mir bitte auch nicht übel, das wirklich die oben genannten Gründe existieren. P.S. Gemeint ist übrigens dieser Thread ------------------ - 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 |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 28. Sep. 2006 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für LarsM
Zitat: Original erstellt von LarsM: Ich kenne die Kommentare von Marc und die Hinweise auf die Suchfunktion.
Hm, ich habe hier noch gar nix gesagt... Außerdem gibt es von mir nicht einen Kommentar auf cad.de in dem ich auf die Suchfunktion hinweise!!! ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LarsM Mitglied Bauing.
Beiträge: 88 Registriert: 08.12.2003 ACAD2004, ACAD2007 WIN-XP
|
erstellt am: 28. Sep. 2006 14:00 <-- editieren / zitieren --> Unities abgeben:
Sorry Marc, es zielte mehr auf die Verständlichkeit deiner Antworten (Kommentare). M. E. setzt Du teilweise mehr als Grundwissen voraus. Wobei man über die Definition von Grundwissen natürlich auch streiten kann. ;-) Lars ------------------ Fachmann zur Aufhebung der Schwerkraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |