| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: dezimalstellen runden (4040 mal gelesen)
|
wolfcad Mitglied techniker
Beiträge: 15 Registriert: 07.04.2004
|
erstellt am: 14. Jul. 2004 13:59 <-- editieren / zitieren --> Unities abgeben:
ich habe in einer zeichnung höhen, welche als normaler text dargestellt sind. die genauigkeit der höhen ist tausendstel z.b. 420.111 . gibt es eine möglichkeit alle zahlen (am besten auf einmal) per rundung auf 2 dezimalstellen zu bringen? mfg wolf 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: 14. Jul. 2004 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
Hiermit vielleicht : (defun ROUNDTEXT ( Stellen / AUSWAHL INDEX OBJEKTDATEN ZAHL) (if (setq Auswahl (ssget "_x" '((0 . "*TEXT")))) (progn (setq INDEX -1 ) (repeat (sslength AUSWAHL) (setq OBJEKTDATEN (entget(ssname AUSWAHL (setq INDEX(1+ INDEX))))) (setq Zahl (atof (cdr(assoc 1 OBJEKTDATEN)))) (prin1 ZAHL) (if (/= ZAHL (fix Zahl)) (progn (setq OBJEKTDATEN (subst(cons 1 (rtos ZAHL 2 Stellen)) (assoc 1 OBJEKTDATEN) OBJEKTDATEN ) ) (entmod OBJEKTDATEN) ) ) ) ) ) ) (defun c:ROUNDTEXT2 () (ROUNDTEXT 2) ) ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wolfcad Mitglied techniker
Beiträge: 15 Registriert: 07.04.2004
|
erstellt am: 14. Jul. 2004 14:37 <-- editieren / zitieren --> Unities abgeben:
|
cadteufel Mitglied Softwareentwicklung
Beiträge: 126 Registriert: 15.10.2002 123CAD Version 3.3 AutoCAD 8 - 2013
|
erstellt am: 02. Aug. 2004 17:54 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
|
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: 03. Aug. 2004 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
Könnte und kann man: .. der allgemeine Teil ... (defun ROUND-ATTRIBUTWERT ( INSERT ATTRIBUTNAME STELLEN / OBJEKTDATEN WERT) (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") (or (not ATTRIBUTNAME) (and (=(type ATTRIBUTNAME)'STR) (=(strcase(cdr(assoc 2 OBJEKTDATEN)))(strcase ATTRIBUTNAME)) ) ) (setq WERT(distof(cdr(assoc 1 OBJEKTDATEN))2)) (/= WERT (fix WERT)) ) (entmod(subst(cons 1 (rtos WERT 2 Stellen)) (assoc 1 OBJEKTDATEN) OBJEKTDATEN ) ) ) ) ) ) ) .. und der für dich angepasste : (defun C:ROUNDHOEHE( / AUSWAHL ATTRIBUTNAME STELLEN OBJEKT BLOCKDEF) (setq ATTRIBUTNAME "HOEHE") (setq STELLEN 2) (setq AUSWAHL (ssget "_X" '((0 . "INSERT")))) (setq INDEX -1) ; Attribute in Blockreferenzen auf Zeichnungsebene (if AUSWAHL (repeat (sslength AUSWAHL) (ROUND-ATTRIBUTWERT (ssname AUSWAHL (setq INDEX(1+ INDEX))) ATTRIBUTNAME STELLEN) ) ) ; Attribute in verschachtelten Blöcken (while (setq BLOCKDEF (tblnext "BLOCK" (null BLOCKDEF))) (if (and(/=(logand(cdr(assoc 70 BLOCKDEF))4)4) (or(/= (logand(cdr(assoc 70 BLOCKDEF))1)1) (= (substr (cdr(assoc 2 BLOCKDEF)) 1 2) "*U") ) ) (progn (setq OBJEKT (cdr (assoc -2 BLOCKDEF))) (while OBJEKT (if (=(cdr(assoc 0 (entget OBJEKT))) "INSERT") (ROUND-ATTRIBUTWERT OBJEKT ATTRIBUTNAME STELLEN) ) (setq OBJEKT (entnext OBJEKT)) ) (entupd (cdr (assoc -2 BLOCKDEF))) ) ) ) (command "._regen") (princ) ) ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadteufel Mitglied Softwareentwicklung
Beiträge: 126 Registriert: 15.10.2002 123CAD Version 3.3 AutoCAD 8 - 2013
|
erstellt am: 03. Aug. 2004 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
Hi Thomas, na, vom feinsten. funktioniert prima. Das Auf- und Abrunden passt. Die "0" am Ende sollte aber dargestellt werden, das ist glaub ich nur ne variable die gesetzt werden kann? also statt "345" richtig "345.0" bei Stellenanzahl "1" und statt "345.4" richtig "345.40" bei Stellenanzahl "2" usw. Kann man das noch einbinden? schonmal tausend Dank. claus 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: 03. Aug. 2004 14:40 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
|
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: 03. Aug. 2004 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
|
CADdog Ehrenmitglied V.I.P. h.c.
Beiträge: 2237 Registriert: 30.04.2004 Intel Xeon 3,6 GHz 32 GB RAM NVIDIA Quadro P2000 Windows 10 Enterprise AutoCADmap 3D 2023 WS-Landcad 2023 QGIS 3.10
|
erstellt am: 03. Aug. 2004 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
ja, lieber Thomas ich denke auch, du bist nun als freier und unbezahlter Mitarbeiter bei 123.cad an der "Entwicklung hochwertiger Zusatzsoftware zur Planerstellung im Tiefbau" beteiligt Herzlichen Glückwunsch! ------------------
gruß CADdog, the dog formerly known as TR AutoCAD spricht mit einem, aber viele hören nicht zu. [Diese Nachricht wurde von CADdog am 03. Aug. 2004 editiert.] 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: 03. Aug. 2004 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
|
cadteufel Mitglied Softwareentwicklung
Beiträge: 126 Registriert: 15.10.2002 123CAD Version 3.3 AutoCAD 8 - 2013
|
erstellt am: 04. Aug. 2004 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
hi forum, das wäre ja wohl ein wenig dreist, oder? Ich bin super dankbar, wenn man das Know-How hier nutzen kann, aber wohl doch ehrenhaft. vielleicht eine Erklärung: Jeder in der Softwareentwicklung weiß, das man nicht wegen jedem Anwenderwunsch gleich die aktuelle Entwicklungsumgebung verlässt um in einer anderen Funktion ein weiteres Feature einzuarbeiten. Hier ging es nur darum einem Acad-Anwender schnell zu helfen, der auch schon die Routine zum Textabrunden kannte. Also nichts für ungut. Unsere Applikationen sind auch als Lösung konzipiert und werden außschließlich in c++ mit .net Komponenten geschrieben. Also bis demnächst in diesem Forum und vielen Dank erstmal Claus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G.Woi Mitglied Bautechniker
Beiträge: 2 Registriert: 13.06.2013
|
erstellt am: 13. Jun. 2013 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
Hallo, habe das selbe Problem ich versuche ca. 60 Attribute zu von 6 auf 2 kommastellen zu runden, bekomme es jedoch mit keinem hilfsmittel hin. Wird wahrscheinlich an mir liegen! Kann mir jemand helfen? Was muss man mit diesem Code machen? Achso falls von bedeutung, nutze AUTO CAD 2012 Vielen Dank Gregor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rexxitall Mitglied Dipl. -Ing. Bau
Beiträge: 266 Registriert: 07.06.2013 Various: systems, Operating systems, cad systems, cad versions, programming languages.
|
erstellt am: 13. Jun. 2013 20:01 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
Hi, Noe ! *lach* wenn mir einer Lispelnd was um die Ohren haut, gugg ich auch nur wie ein Schwein ins Uhrwerk. OK manche lieben auch HP Taschenrechner wegen der umgekehrten polnischen notation ... *duck* Attribute zu runden ist ersteinmal deswegen schon erschwert weil es dumme Texte sind. Wenn man "Pech" hat hat ein Block mehr als ein Attribut - und nicht jeder Wert ist eine Zahl. Und mitunter soll auch nicht jede der Zahlen gerundet werden. Bei "grossem Glueck" hat man auch mehr als eine Blockdefinition auf der Zeichnung mit diversen Attributen. (Vorzugsweise auf mehreren Layer verstreut) Um es noch etwas gemeiner zu machen - wie waer es mit dynamischen Bloecken die Attribute haben. (Der Blockname ist dann allerdings easy zu merken *U+ne nummer). Und na klar gibt es diverse "Geschmacksrichtungen" zu runden. Kaufmaennisch, Technisch, Einfach nur die Zahlen wegflexen. EH die Lispler loslegen - Ich brauch das nicht, und wenn, bremst mich das ein paar Minuten in VBA aus. (Und das KANN ich (Nein ich werd nicht auf nen Steinzeitinterpreter konvertieren - Mein Eisenzeitinterpreter mit Flux Compenser langt mir)) Zu dem "worsecase" - ist nicht ganz so schlimm wies ausschaut. (falls wer in der Lage ist ne DVB zu laden) @Gregor bitte etwas mehr info Wenn bedarf besteht code ich das. Da kann man lustigere Sachen mit machen als nur runden. LG aus Finnland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G.Woi Mitglied Bautechniker
Beiträge: 2 Registriert: 13.06.2013
|
erstellt am: 14. Jun. 2013 08:12 <-- editieren / zitieren --> Unities abgeben: Nur für wolfcad
Hi rexxitall, jaja lach nur Also mehr Infos. Die Attribute kommen aus einer Bestandsvermessung, da hängen eine Punktnummer, ein Punktcode und die entsprechende Bestandshöhe dran, die gerundet werden soll. Alles befindet sich nur auf einem Layer. Es handelt sich ebenfalls nur um ein Block. Also mir würde es echt schon reichen wenn man die Höhen in einem Rutsch geändert bekommen würde, viel mehr brauche ich nicht zu meinem Glück. Vielleicht ist es auch hilfreich wenn man so eine kleine Vermessungsdatei hochläd? Mit Attributen kenne ich mich da nicht besonders gut aus, leider Wenn das zu wenige Infos sind, oder evtl. die falschen, sorry keine Absicht. Wäre echt super wenn du mir da helfen könntest. Gruß nach Finnland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |