| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Visuelle Fabrikplanung und Echtzeit-Monitoring in der Produktion, ein Webinar am 13.11.2024
|
Autor
|
Thema: automatische Berechnung von Attributwerten (2859 mal gelesen)
|
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 27. Okt. 2005 08:43 <-- editieren / zitieren --> Unities abgeben:
Moin, ich bin auf der Suche nach folgender Problemlösung: Ich habe einen Block, mit 2 Attributen: Deckelhöhe und Sohltiefe eines Schachts. Wie kann ich die daraus resultierende Schachttiefe automatisch berechnen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
g.r Mitglied Beruf? Ja! Ausbildung: auch!!
Beiträge: 603 Registriert: 06.07.2005 ACA 2010 Scaleo, AMD Athlon64 DC4600+ acer Aspire 8930 4C 4GB VISTA Ultimate HP 750C AMD Athlon, W2k
|
erstellt am: 27. Okt. 2005 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Zitat: Original erstellt von Saskia Herbst: Ich habe einen Block, mit 2 Attributen: Deckelhöhe und Sohltiefe eines Schachts. Wie kann ich die daraus resultierende Schachttiefe automatisch berechnen?
Hallo Saskia, für die autom. Berechnung hätte ich so keine einfache Lösung. Aber hätte dein Block noch eine zusätzliche Angabe z.B. Schachtnummer, dann würde ich die Blöcke nach Excel auslesen und dort die resultierende Schachttiefe rechnen lassen. Nachteil die Werte müssten in die Attrib-Blöcke nachgetragen werden. Übrigends feht deinem Block dann noch das Attrib für die Tiefe. Gruß Günter ------------------ Lieber meditieren - als rumsitzen und nix tun. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
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: 27. Okt. 2005 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
|
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 27. Okt. 2005 10:40 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: Willkommen im Forum!Bei deinem Problem hilft dir vielleicht dieser Thread weiter..
Hab´ jetzt ein weiteres Problem: Nachdem ich mir die im Thread von Helmut beigefügte Putzschacht.zip als dwg geöffnet habe, um das Lisp von CADmium auszuprobieren, haben sich offensichtlich bei mir irgendwelche Einstellungen bei AutoCAD verändert. Beim Befehl "Öffnen" habe ich nun nur noch die Möglichkeit, den Dateinamen in der Befehlszeile einzugeben, aber nicht, wie standardmäßig voreingestellt über den Verzeichnisbaum. Ebenso verhält es sich beim Erstellen einer neuen Datei anhand einer dwt. Und nun? Für den Hinweis aber trotzdem vielen Dank ... ist anscheinend genau, was ich benötige. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
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: 27. Okt. 2005 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
da hilft Filedia einzugeben, dann ein Enter, dann eine 1 und dann wieder ein Enter ------------------ - 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 |
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 27. Okt. 2005 10:53 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Okt. 2005 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Hallo Saskia, ich habe den Verweis von Thomas nur überflogen (war ziemlich lang), aber ich dachte mir, wenn Du nur die Tiefe zwischen Deckel (1.Attribut) und Sohlhöhe (2. Attribut) berechnen willst, dann könnte man das doch ganz einfach machen: Code:
(defun c:tiefe (/ block delta) (if (and (setq block (entsel "\n Bitte Block auswählen:")) (= (cdr (assoc 0 (entget (car block)))) "INSERT") (jb_entnext (car block) 1) (= (cdr (assoc 0 (entget (jb_entnext (car block) 1)))) "ATTRIB") (jb_entnext (car block) 2) (= (cdr (assoc 0 (entget (jb_entnext (car block) 2)))) "ATTRIB") ) (setq delta (rtos (- (atof (cdr (assoc 1 (entget (jb_entnext (car block) 1))))) (atof (cdr (assoc 1 (entget (jb_entnext (car block) 2)))))) 2 4)) (alert "Entweder kein Block gewählt, oder der Block hat keine 2 Attribute.")) delta) (defun jb_entnext (element n1 /) (repeat n1 (setq element (entnext element))))
Allerdings wird nur die Tiefe eines einzelnen Blockes ausgegeben.------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 27. Okt. 2005 13:08 <-- editieren / zitieren --> Unities abgeben:
Prima, ich habe meine Mittagspause damit verbracht, das Lisp auf meine Belange umzubasteln. Eines habe ich aber noch nicht auf die Reihe bekommen: Wenn das Ergebnis der Berechnung ein glatter Wert ist, würde ich gern die 2 Stellen hinter dem Komma auch angezeigt haben. Da ich mich bislang noch nicht mit Lisps beschäftigt habe, habe ich leider keinen Überblick, wo ich dies ändern muss. Aber wirklich nochmal Danke, danke, danke für die phantastische Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
husbyhogan Mitglied Bauingenieur
Beiträge: 99 Registriert: 13.10.2005 ACAD 2012 32bit Windows 7
|
erstellt am: 27. Okt. 2005 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Bei ACAD 2006 kann über die Schriftfelderzeugung in einer Tabelle mit den Elementen eines Objektes wie z.B. Fläche Höhe oder anders gerechnet werden. Vielleicht geht das auch mit deinen Blöcken. Steht noch die Frage ob du ACAD 2006 hast Gruß Jens Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
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: 27. Okt. 2005 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Zitat: Original erstellt von Saskia Herbst:
Wenn das Ergebnis der Berechnung ein glatter Wert ist, würde ich gern die 2 Stellen hinter dem Komma auch angezeigt haben.
rtos greift u.a. auf die Sysvar DIMZIN zurück.. setzte diese mal auf 0 und dein Problem sollte behoben 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 |
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 27. Okt. 2005 13:37 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: rtos greift u.a. auf die Sysvar DIMZIN zurück.. setzte diese mal auf 0 und dein Problem sollte behoben sein
Dann werden 3 Stellen nach dem Komma angezeigt ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
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: 27. Okt. 2005 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Okt. 2005 14:04 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Hallo Saskia und Thomas, ich hatte bei der RTOS-Ausgabe die Anzahl der Nachkommastellen auf 4 gestellt. (rtos 1.123456 2 4) => "1.1235" Wenn die Variable DIMZIN auf 0 steht, werden auch die nachstehenden Nullen gefüllt Die Variable LUPREC hat meiner Meinung nach damit nichts zu tun. @Saskia: Du hast geschrieben, daß 3 Nachkommstellen angezeigt werden, daß kann aber nicht daher kommen, daß die Variable DIMZIN auf 0 gestellt worden ist. Was hast Du genau gemacht?? ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
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: 27. Okt. 2005 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Hallo Jörn, rtos zieht sehr wohl LUPREC an.. (wenn keine Nachkommastellenanzahl vorgegeben ist) Befehl: dimzin Neuen Wert für DIMZIN eingeben <0>: 0 Befehl: luprec Neuen Wert für LUPREC eingeben <2>: 0 Befehl: (rtos 2 2) "2" Befehl: luprec Neuen Wert für LUPREC eingeben <0>: 2 Befehl: (rtos 2 2) "2.00" ------------------ - 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 |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Okt. 2005 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Hallo Thomas, die Funktion erwartet 3 Argumente (ich wußte gar nicht, daß das auch mit 2 Argumenten geht) =>(rtos number [mode [precision]]) Und dann hat LUPREC wiederum keinen Einfuß auf die Genauigkeit bei der Verwendung von rtos Befehl: dimzin Neuen Wert für DIMZIN eingeben <0>: 0 Befehl: luprec Neuen Wert für LUPREC eingeben <1>: 0 Befehl: (rtos 2 2 2) "2.00" Befehl: luprec Neuen Wert für LUPREC eingeben <0>: 2 Befehl: (rtos 2 2 2) "2.00" Nachtrag: Zitat:
(wenn keine Nachkommastellenanzahl vorgegeben ist)
hatt ich überlesen, aber in der LISP-Funktion war die Nachkommstellenanzahl von mir mit 4 vorgegeben. ------------------ viele Grüße Jörn [Diese Nachricht wurde von joern bosse am 27. Okt. 2005 editiert.] [Diese Nachricht wurde von joern bosse am 27. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 27. Okt. 2005 14:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Jungs, so langsam verstehe ich gar nichts mehr von dem, was Ihr schreibt ... Ich sollte mich wirklich mal mit Lisps beschäftigen. Ich habe jetzt DIMZIn auf 0 gestellt, LUPREC auf 2 und auch diese RTOS-Geschichte so gemacht - immernoch 3 Stellen hinter dem Komma.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
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: 27. Okt. 2005 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Zitat: Original erstellt von joern bosse: die Funktion erwartet 3 Argumente (ich wußte gar nicht, daß das auch mit 2 Argumenten geht) =>(rtos number [mode [precision]])
.. die eckigen klammern stellen optionale Werte da! auch (rtos 2) funktioniert, dann werden allerdings auch die SYSvars UNITMODE und LUNITS mit rangezogen. Hatte eigentlich gedacht, dass du schon mal in der Hilfe gelesen hast @Saskie .. "Ich sollte mich wirklich mal mit Lisps beschäftigen" .. Mach das! Schadet nie! ------------------ - 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 |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Okt. 2005 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Hallo Saskia, also, wenn Du in den Original-Code schaust, in Zeile 20: "4))" Diese 4 steht für die Anzahl der Nachkommstellen, wenn Du den Wert änderst, dann erhälst Du auch eine andere Nachkommastellenanzahl. Falls das nicht klappt, dann stell den von Dir geänderten Code hier rein, ich schau da noch mal durch. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 28. Okt. 2005 07:47 <-- editieren / zitieren --> Unities abgeben:
Lieber Jörn, ich habe nun Dein Lisp mit Änderung in der 20. Zeile ausprobiert. Problem ist dabei, dass das Ergebnis (mit 2 Stellen nach dem Komma !!!) nur in der Befehlszeile angezeigt wird. Die Schachttiefe soll aber auch lesbar in meiner Zeichnung sein. Beim Lisp von Thomas habe ich 3 Attribute: Deckelhöhe, Sohlhöhe und Schachttiefe, wobei der Wert der Schachttiefe durch das Lisp erzeugt wird (aber eben mit 3 Nachkommastellen). Ich versuche am Wochenende nochmal rumzubasteln. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 28. Okt. 2005 10:20 <-- editieren / zitieren --> Unities abgeben: Nur für Saskia Herbst
Hallo Saskia, na, ein Versuch noch. Ich habe den Code so geändert, daß die Tiefe im 3.ten Attribut angeschrieben wird. Voraussetzung: Es muß ein Block mit mind. 3 Attributen vorhanden sein. Die Nachkommastellenanzahl ist in der 2. Zeile zu ändern. Bei mir läufst, vielleicht auch bei Dir, viel Spaß damit. Code:
(defun c:tiefe (/ block nachkomma) (setq nachkomma 2) (if (and (setq block (entsel "\n Bitte Block auswählen:")) (= (cdr (assoc 0 (entget (car block)))) "INSERT") (jb_entnext (car block) 1) (= (cdr (assoc 0 (entget (jb_entnext (car block) 1)))) "ATTRIB") (jb_entnext (car block) 2) (= (cdr (assoc 0 (entget (jb_entnext (car block) 2)))) "ATTRIB") (jb_entnext (car block) 3) (= (cdr (assoc 0 (entget (jb_entnext (car block) 3)))) "ATTRIB") ) (progn (entmod (subst (cons 1 (rtos (- (atof (cdr (assoc 1 (entget (jb_entnext (car block) 1))))) (atof (cdr (assoc 1 (entget (jb_entnext (car block) 2)))))) 2 nachkomma)) (assoc 1 (entget (jb_entnext (car block) 3))) (entget (jb_entnext (car block) 3)))) (entupd (car block))) (alert "Entweder kein Block gewählt, oder der Block hat keine 3 Attribute.")) (princ) ) (defun jb_entnext (element n1 /) (repeat n1 (setq element (entnext element))))
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Saskia Herbst Mitglied CAD-Techniker
Beiträge: 16 Registriert: 06.09.2005 Autodesk Map 3D 2008 Autodesk Architectual Desktop 2005 Windows XP
|
erstellt am: 28. Okt. 2005 13:23 <-- editieren / zitieren --> Unities abgeben:
|