| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Lisp Flächenberechnung anpassen (995 mal gelesen)
|
Hoppenstedt Mitglied
Beiträge: 86 Registriert: 30.08.2003 Autocad 2008, Windows XP SP2, P4 2,8 Ghz, 2GB RAM, Quadro4 980XGL, Gips 5.1, Office 2007, Adobe Standard 8
|
erstellt am: 07. Mai. 2004 15:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe eine Frage: Kann mir jemand das unten aufgeführte Lisp, welches Flächen von m2 auf ha umrechnet, so anpassen, dass 4 Nachkommastellen eingestellt werden und der Layer auf den die ha-Werte geschrieben werden Flaeche_ha_RW heisst? (Falls es nicht zuviel Aufwand gibt). Danke und schönes WE. Gruss Michael ; m2ha.lsp ; ; (defun c:m2ha() ; ; (princ "m2ha - m2 zu ha") (print ) (initget 1) (setq anz_nachkomma (getint "Anzahl der Nachkommastellen: ")) (setq ha_lay (getstring "Layer für ha-Werte")) (command "layer" "ma" ha_lay "") (princ "texte Auswählen") (setq tl (ssget)) (setq anz (sslength tl)) (setq x 0) (while (< x anz) (setq ct (ssname tl x)) (setq ctl (entget ct)) (setq altwert_txt (cdr (assoc 1 ctl))) (setq altwert (atof altwert_txt)) (setq neuwert (/ altwert 10000)) (setq neuwert_txt (strcat (rtos neuwert 2 anz_nachkomma) " ha")) (setq ytext (caddr (assoc 10 ctl))) (setq xtext (cadr (assoc 10 ctl))) (setq text_hoehe (cdr (assoc 40 ctl))) (setq p1 (cons 0 "TEXT")) (setq p2 (cons 100 "AcDbEntity")) (setq p3 (cons 100 "AcDbText")) (setq p4 (cons 8 ha_lay)) (setq p5 (list 10 xtext ytext)) (setq p6 (cons 40 text_hoehe)) (setq p7 (cons 1 neuwert_txt)) (setq ee nil) (setq ee (list p1 p2 p3 p4 p5 p6 p7)) (setq neu_text (entmake ee)) ; ; ; setzen spezieller Attribute s. ACAD-Handbuch, Anhang C (S 563ff) ; ; textinhalt setzen auf neuwert_txt (setq x (1+ x))
) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 07. Mai. 2004 16:01 <-- editieren / zitieren --> Unities abgeben: Nur für Hoppenstedt
Layerproblem ist gelöst; Nachkomma kriegt ich nicht hin ; m2ha.lsp ; ; (defun c:m2ha() ; ; (princ "m2ha - m2 zu ha") (print ) (initget 1) (setq anz_nachkomma 4) (command "layer" "ma" "Flaeche_ha_RW" "") (princ "texte Auswählen") (setq tl (ssget)) (setq anz (sslength tl)) (setq x 0) (while (< x anz) (setq ct (ssname tl x)) (setq ctl (entget ct)) (setq altwert_txt (cdr (assoc 1 ctl))) (setq altwert (atof altwert_txt)) (setq neuwert (/ altwert 10000)) (setq neuwert_txt (strcat (rtos neuwert 2 anz_nachkomma) " ha")) (setq ytext (caddr (assoc 10 ctl))) (setq xtext (cadr (assoc 10 ctl))) (setq text_hoehe (cdr (assoc 40 ctl))) (setq p1 (cons 0 "TEXT")) (setq p2 (cons 100 "AcDbEntity")) (setq p3 (cons 100 "AcDbText")) (setq p4 (cons 8 ha_lay)) (setq p5 (list 10 xtext ytext)) (setq p6 (cons 40 text_hoehe)) (setq p7 (cons 1 neuwert_txt)) (setq ee nil) (setq ee (list p1 p2 p3 p4 p5 p6 p7)) (setq neu_text (entmake ee)) ; ; ; setzen spezieller Attribute s. ACAD-Handbuch, Anhang C (S 563ff) ; ; textinhalt setzen auf neuwert_txt (setq x (1+ x))
) ) ------------------ Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hoppenstedt Mitglied
Beiträge: 86 Registriert: 30.08.2003 Autocad 2008, Windows XP SP2, P4 2,8 Ghz, 2GB RAM, Quadro4 980XGL, Gips 5.1, Office 2007, Adobe Standard 8
|
erstellt am: 07. Mai. 2004 16:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas Dein Lisp funktioniert leider nur in der Zeichnung, in welcher ich noch das "alte" Lisp verwendet habe. Öffne ich eine neue Zeichnung, zeichne dort eine Fläche, lasse mir die Fläche mit einem anderen Lisp in qm berechnen und verwende dann dein angepasstes Lisp kommt folgende Fehlermeldung: "Fehlerhafte DXF-Gruppe: (8)" Was kann das sein? Habe leider von Lisp überhaupt keine Ahnung, verwende es aber voller Freude Gruss Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1111 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 07. Mai. 2004 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für Hoppenstedt
Hallo Hoppenstedt, ich sehe mein lisp ist noch aktiv :-) Tunnelbauer hat in seiner Anderung nur noch vergessen die Zeile (setq p4 (cons 8 ha_lay)) in (setq p4 (cons 8 "Flaeche_ha_RW")) zu ändern. Geht sonst schief wenn ha_lay anders belegt ist. Gruß spider Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hoppenstedt Mitglied
Beiträge: 86 Registriert: 30.08.2003 Autocad 2008, Windows XP SP2, P4 2,8 Ghz, 2GB RAM, Quadro4 980XGL, Gips 5.1, Office 2007, Adobe Standard 8
|
erstellt am: 07. Mai. 2004 16:36 <-- editieren / zitieren --> Unities abgeben:
|
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: 07. Mai. 2004 22:25 <-- editieren / zitieren --> Unities abgeben: Nur für Hoppenstedt
Betreffs der Nachkommastellen : Sysvar DIMZIN..füge mal die Zeile vor den (rtos .. Aufruf ein .. oder an den Anfang (setvar "DIMZIN" (-(getvar "DIMZIN") (logand (getvar "DIMZIN") 8))) ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hoppenstedt Mitglied
Beiträge: 86 Registriert: 30.08.2003 Autocad 2008, Windows XP SP2, P4 2,8 Ghz, 2GB RAM, Quadro4 980XGL, Gips 5.1, Office 2007, Adobe Standard 8
|
erstellt am: 10. Mai. 2004 08:59 <-- editieren / zitieren --> Unities abgeben:
|