| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Zahlen mit Suffix und 1000er Trennzeichen erstellen (331 mal gelesen)
|
Oliver M Mitglied Dipl.-Ing.
Beiträge: 50 Registriert: 01.07.2002 Win2000, AcadMap 2007, WS-Landcad 2008 AMD Athlon 64X2 Dual Core 4600+, 2 GB RAM
|
erstellt am: 20. Apr. 2005 13:27 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich suche eine Möglichkeit, unter Acad2000 die für eine Flächenbilanz mit einer Topologieabfrage erzeugte Texte mit dem Wert von Area nachträglich mit dem Suffix m² zu versehen (und wenns geht mit einem Punkt als 1000er Trennzeichen). Eine Lisp habe ich bisher nicht gefunden und auch keien Beitrag mit ähnlicher Fragestellung. Sucher-Ersetzen mit Platzhalter funktioniert leider nicht. Kennt jemand eine nette Routine? Danke Olli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 20. Apr. 2005 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
|
3105orcas Mitglied Bauzeichnerin
Beiträge: 237 Registriert: 26.02.2003 Autodesk Civil / Map 3D 2021
|
erstellt am: 20. Apr. 2005 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
|
Oliver M Mitglied Dipl.-Ing.
Beiträge: 50 Registriert: 01.07.2002 Win2000, AcadMap 2007, WS-Landcad 2008 AMD Athlon 64X2 Dual Core 4600+, 2 GB RAM
|
erstellt am: 20. Apr. 2005 16:39 <-- editieren / zitieren --> Unities abgeben:
Danke Anne, der Hinweis mit (strcat (rtos .area 2 0) " m²") war schon der erste Teil; das hat mir sehr geholfen. Bisher hatte ich nämlich das Problem, das rtos mit dem Text nicht funktionierte, wohl aber mit der Realzahl... Aber wie ich das mit einem 1000er-Trennzeichen hinkriege (in Excel ganz einfach) ? Habt ihr da auch noch eine Idee? Gruß Olli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 20. Apr. 2005 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
(strcat (itoa (/ AREA 1000)) "." (rtos (- AREA (*(fix(/ AREA 1000))1000)) 2 0) " m²") ------------------ - 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 |
Oliver M Mitglied Dipl.-Ing.
Beiträge: 50 Registriert: 01.07.2002 Win2000, AcadMap 2007, WS-Landcad 2008 AMD Athlon 64X2 Dual Core 4600+, 2 GB RAM
|
erstellt am: 20. Apr. 2005 17:54 <-- editieren / zitieren --> Unities abgeben:
HAllo Thomas, damit komme ich nun nicht mehr ganz klar. Wenn ich das bei der Textwertabfrage eingeb, erhlate ich die Fehlermeldung "Nicht unterstützter Operator in diesm Ausdruck: itoa" Kannst Du das bitt noch etwas weiter erläutern? Danke! Olli
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 20. Apr. 2005 21:56 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
oben hätte es heißen müssen (strcat (itoa (fix(/ AREA 1000))) "." (rtos (- AREA (*(fix(/ AREA 1000))1000)) 2 0) " m²") aber das geht ja bloß bei einem 1000'er Trennzeichen besser ist : (defun AREA-STRING (AREA / STRING REST) (setq STRING "") (if (numberp AREA) (progn (setq INDEX (fix(/(log AREA)(log 1000)))) (repeat INDEX (setq STRING (strcat STRING (itoa (fix(/ AREA (exp(* INDEX(log 1000)))))) ".")) (setq AREA(- AREA (*(fix(/ AREA (exp(* INDEX(log 1000)))))(exp(* INDEX(log 1000)))))) (setq INDEX (1- INDEX)) ) (setq STRING (strcat STRING (rtos AREA 2 0)" m²")) ) ) STRING ) liefert dir z.B: (area-string 1234567898.98) -> "1.234.567.899 m²" Ach so, wenn Area 0 ist , gibts einen Fehler, aber das kannst du ja mit einem cond abfangen... und direkt als "0 m²" ausgeben ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." [Diese Nachricht wurde von CADmium am 20. Apr. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oliver M Mitglied Dipl.-Ing.
Beiträge: 50 Registriert: 01.07.2002 Win2000, AcadMap 2007, WS-Landcad 2008 AMD Athlon 64X2 Dual Core 4600+, 2 GB RAM
|
erstellt am: 21. Apr. 2005 09:45 <-- editieren / zitieren --> Unities abgeben:
Danke Thomas, wenn ich das lade und direkt in der Eingabeaufforderung eintippe geht das; aber integriert in der Topologieabfrage kriege ich wieder die Fehlermeldung "Nicht unterstützter Operator in diesm Ausdruck: area-string". Wie integriere ich das korrekt in die Abfrage, oder kann ich die Abfrage auch über eine Lisp erstellen? Flächen mit 0 m² habe ich zum Glück selten... Dann wäre meine Digitalisierung falsch. Danke! Olli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 21. Apr. 2005 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 21. Apr. 2005 09:52 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
... Glaskugel an .. na wie ermittlest du denn den Wert area ? .. Text auslesen ? .. wenn ja, mußt du diesen in eine Zahl umwandeln z.B. mit (distof ...) ------------------ - 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 |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 21. Apr. 2005 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Oliver M
|
Oliver M Mitglied Dipl.-Ing.
Beiträge: 50 Registriert: 01.07.2002 Win2000, AcadMap 2007, WS-Landcad 2008 AMD Athlon 64X2 Dual Core 4600+, 2 GB RAM
|
erstellt am: 21. Apr. 2005 10:06 <-- editieren / zitieren --> Unities abgeben:
@ lutz schön 3x gelöscht aber immer noch da. irgendwie hartnäckig. werden bei mir aber auch nicht mehr angezeigt... @ holger und thomas AcadMap2000 Map/Abfrage/Topologieabfrage definieren/Abfrage definieren/Eigenschaften ändern/Text/Daten Areawert der Topologie wählen und Ausdruck unter Textwert dann manuell ändern. Mit (strcat (rtos :AREA@TPMCNTR_erste_Änderung 2 0) " m²") klappte das prima. Als Ergebnis bekommst du "123 m. Wie gesagt, mit: (area-string :AREA@TPMCNTR_erste_Änderung)in dieser Zeile kreige ich dann die Fehlermeldung, obwohl die LSIP vorher gelade war und an der Befehlseingabe auch anstandslos funktionierte. Hilft das? Olli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |