Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Lisp Flächenberechnung anpassen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von Hoppenstedt an!   Senden Sie eine Private Message an Hoppenstedt  Schreiben Sie einen Gästebucheintrag für Hoppenstedt

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

Sie nannten ihn google.

erstellt am: 07. Mai. 2004 16:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Hoppenstedt 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Hoppenstedt an!   Senden Sie eine Private Message an Hoppenstedt  Schreiben Sie einen Gästebucheintrag für Hoppenstedt

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von spider_dd an!   Senden Sie eine Private Message an spider_dd  Schreiben Sie einen Gästebucheintrag für spider_dd

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Hoppenstedt 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Hoppenstedt an!   Senden Sie eine Private Message an Hoppenstedt  Schreiben Sie einen Gästebucheintrag für Hoppenstedt

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Spider
Danke, jetzt funktioniert es.

Ihr kriegt beide 5 U's

Jetzt ist aber wirklich Zeit für's Wochenende!
Tschüss
Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Hoppenstedt 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Hoppenstedt an!   Senden Sie eine Private Message an Hoppenstedt  Schreiben Sie einen Gästebucheintrag für Hoppenstedt

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Cadmium
Funktioniert einwandfrei.
Danke.

Gruss Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz