| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Text auslesen und Automatisch einen Punkt setzen (2636 mal gelesen)
|
marcelheller Mitglied Architekt
Beiträge: 16 Registriert: 29.10.2002
|
erstellt am: 13. Sep. 2004 17:05 <-- editieren / zitieren --> Unities abgeben:
Hallo. Ich muß eine Punktwolke erzeugen und benötige dazu Punkte mit xyz-Werten. Als Ausgangspunkt habe ich Text Elemente, die an der richtigen x-y-Position sitzen jedoch keinen z-wert haben. Der Z-wert beschreibt das Textsymbol ansich. Kann man nun den Text auslesen und in entsprechender z Höhe einen Punkt setzen? thanks.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 13. Sep. 2004 17:55 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Hallo marcelheller, das ist mit LISP machbar. Auswahlsatz der Texte erstellen, den Textwert auslesen un dann einen Punkt mit den aus Textwert und Textkoordinaten erstellen. Woran hängts bei dir? Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 13. Sep. 2004 18:58 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
(if(setq as(ssget "_X" '((0 . "TEXT")))) (progn (repeat (sslength as) (setq wert (atof(cdr (assoc 1 (entget(ssname as 0)))))) (command "_Point" (append(reverse(cdr (reverse(cdr(assoc 10 (entget(ssname as 0)))))))(list wert))) (setq as (ssdel(ssname as 0)as)) ) ) ) so das geht ! ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marcelheller Mitglied Architekt
Beiträge: 16 Registriert: 29.10.2002
|
erstellt am: 14. Sep. 2004 09:48 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 14. Sep. 2004 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
|
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 12. Feb. 2007 17:43 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Hallo, ich habe gerade mal den Code ausprobiert. Die erzeugten Punkte haben bei mir aber leider immer die Höhe Null (und eben nicht die Höhe, die im Text steht). Hat jemand eine Idee, woran das liegen könnte? Würde mich sehr freuen. ------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Feb. 2007 18:01 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Wenn alles komplett auf 0 liegt (die Punkte) dann hast du evtl. Texte deren Textwert ca. so lauten: 0,256die 0 wird als Zahl erkannt und wird benutzt (voila=Höhe 0) Warum ? hast du in Acad schonmal 0,256 angegeben ? Ja hast du , als Koordinateneingabe x,y Ist aber nur geraten da du ja nicht weiter auf deine Objekte/ Textwerte eingegangen bist..
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 12. Feb. 2007 18:26 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Danke für die Antwort. Bei den Texten handelt es sich um soetwas: "49.52" (ohne Anführungszeichen). Wenn ich den Code durchlaufen lasse und dann die Variable "wert" abfrage, wird mir auch eine Höhe angegeben. ------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Feb. 2007 18:50 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
|
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 12. Feb. 2007 19:10 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
|
Ex-Mitglied | |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 12. Feb. 2007 19:41 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Bei mir werden zwei Punkte an der richtigen Stelle, aber mit Höhe Null generiert. Folgendes meldes acad während des Durchlaufs: Code: Befehl: _appload textzuhöhe.lsp erfolgreich geladen. Befehl: <Selection set: 673>58.13_Point Aktuelle Punktmodi: PDMODE=0 PDSIZE=0.0000 Einen Punkt angeben:
Befehl: <Selection set: 673>57.22_Point Aktuelle Punktmodi: PDMODE=0 PDSIZE=0.0000 Einen Punkt angeben: Befehl:
------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 12. Feb. 2007 20:11 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Vielleicht liegts am Komma - Punkt bzw. Beistrich? @marcelheller Schau Dir mal ACADIN bzw. ACADIN3D (meine HP/CAD/Download) an - vielleicht kannst ja was damit anfangen. ------------------ Schöne Grüße Ernst Meine Homepage [Diese Nachricht wurde von Geos am 12. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 13. Feb. 2007 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Ich habe das mal geändert Command durch entmake ersetzt. Weiß zwar nicht was du noch alles dazugebaut hast, aber mit deiner Zeichnung ging es einwandfrei. versuchs mal Code: (if (setq as (ssget "_X" '((0 . "TEXT")))) (progn (repeat (sslength as) (setq wert (atof (cdr (assoc 1 (entget (ssname as 0)))))) (entmake (list (cons 0 "POINT") (cons 8 (getvar "CLAYER")) (cons 62 1) (cons 10 (append (reverse (cdr (reverse (cdr (assoc 10 (entget (ssname as 0)))))) ) ;_ end of reverse (list wert) ) ;_ end of append ) ;_ end of cons ) ;_ end of list ) ;_ end of entmake (setq as (ssdel (ssname as 0) as)) ) ;_ end of repeat ) ;_ end of progn ) ;_ end of if
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 13. Feb. 2007 09:02 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
Zitat: Ich habe das mal geändert Command durch entmake ersetzt.
Super, vielen Dank! Damit geht's. Zitat: Weiß zwar nicht was du noch alles dazugebaut hast, aber mit deiner Zeichnung ging es einwandfrei.
Nix hab' ich dazugebaut. Aber unter meinem Acad Map 2006 lief es einfach nicht. Es wurden immer (egal bei welcher Zeichnung) Punkte mit Höhe Null erzeugt. ------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 13. Feb. 2007 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 13. Feb. 2007 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für marcelheller
|