Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Polylinien zur Gesamtlänge aufsummieren

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:  Polylinien zur Gesamtlänge aufsummieren (1181 mal gelesen)
anno45
Mitglied
Techniker


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

Beiträge: 11
Registriert: 09.09.2003

erstellt am: 09. Sep. 2003 18: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 kann mir jemand helfen, das Programm schreibt keine daten weg.
;** Hauptprogramm!!!
;***************************************************************************
*******************************************************
(defun c:gl (/ as elemli plangli z f) 

;** Achtung mit diesem Befehl prüfen, um was für eine Geometrie es sich
hier handelt!!  *****************************
;;;;(cdr(assoc 0(entget(setq curve-object(car(nentsel))))))  ;** zum
Beispiel >>LWPOLYLINE / LINIE / << usw.!!!!!!

;***************************************************************************
*****************************************
(setq as (ssget "_X" (list '(-4 . "<or")
                      '(0 . "POLYLINE")
                            '(0 . "LWPOLYLINE")
                            '(0 . "LINE")
                            '(0 . "ARC")
                            '(0 . "CIRCLE")
                            '(0 . "SPLINE")
                            '(-4 . "or>")
)))
(setvar "CMDECHO" 0)
(if as
  (setq elemli (bau_elemli as) z 0)   

(if elemli
  (progn
    (setq f (open "c:/pll.tmp" "w"))
    (mapcar '(lambda (B)
      (write-line (strcat (car B) "t"
      (rtos
      (apply '+
      (mapcar
      '(lambda (plli)
      (command "_.LENGTHEN" plli "")
      (getvar "PERIMETER")
      )
      (cdr B)
      )
      )
      2 2)
      )
      f)                   
      )
      blkli
    )
    (close f)
  )
);if             
(TEXT_LANG)
)
;***************************************************************************
*******************************************************
(defun bau_elemli (asatz / n elemli)
(setq n 0)
(repeat (sslength asatz)
  (setq elemli (cons (ssname asatz n) elemli) n (1+ n))
)
elemli
)
;***************************************************************************
*******************************************************
;** Text in Zeichnung einfügen!!
;***************************************************************************
*******************************************************
(defun TEXT_LANG (/ XX Text1 Text2 epunkt pt-1 pt-2 verh h1 h a)
(setq a nil xx nil text1 nil text2 nil)
(setq scmde (getvar "CMDECHO"))
(command "layer" "M" "02TNR-01" "")
(setq w0 0 w90 (* (/ PI 180) 90) w180 PI w270 (* w90 3))  ;**
Winkeldefinitionen

(setq xx (apply '+ plangli))
(setq xx (rtos xx 2 0))
(princ "\n\n")(princ "Gesamtlänge (XX)  : ")(princ XX)(princ "\n")     

(setq Text1 (strcat "Gesamtlänge : "XX " mm"))   
(setq h (getvar "DIMTXT"))
(setq verh 1.8) 
(setq h1 (* h verh))
(setq epunkt (getpoint "\n Punkt angeben"))
(setq pt-1 (polar epunkt w270 h1))
;;(setq pt-2 (polar pt-1 w270 h1)) ;** reserve
(command "text" epunkt h 0 Text1)
;;(command "text" pt-1 h 0 Text2)  ;** Reserve
(alert "Gesamt-Fläche des Teiles rechnen (qm) :")
(command "_.area" "_o" pause)
(command "text" pt-1 h 0 (strcat "Blech (qm)  : " (rtos (/ (getvar "area")
1000000) 2 3) " qm"))   
)

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 09. Sep. 2003 22:27    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 anno45 10 Unities + Antwort hilfreich

Hallo anno45,

ich nehme an, du hast etwas Streß beim Programmieren, weshalb du dein Problem sehr wortkarg beschreibst.

Ich bin mal kurz drüber geflogen, nicht getestet!
Was mir aufgefallen ist:
Du hast eine Variable plangli. Dieser wird aber nirgends ein Wert zugewiesen. Könnte schon die Lösung all Deiner Probleme sein.

Ich möchte Dich aber für die Zukunft bitten, dein Problem etwas genauer zu beschreiben, dann kann man auch zielgerichtet danach schauen und Lösungen finden. Du kannst hier von niemandem erwarten, dass er sich Deinen Code zur Brust nimmt, versucht zu ergründen, was mit diesem eigentlich erreicht werden soll und dann auch noch die Stelle sucht, an der der Fehler womöglich zu finden ist.

Hier sind viele hilfsbereite Leute mit sehr viel Ahnung im Forum unterwegs. Bei einer etwas konkreteren Fragestellung, bekommst du dann auch schnelle und gute Hilfe.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
10 - Der Countdown läuft. Wofür?... ./.
Ich bin vom 07.-10.10. in Stuttgart dabei.

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

anno45
Mitglied
Techniker


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

Beiträge: 11
Registriert: 09.09.2003

erstellt am: 09. Sep. 2003 23:17    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 Holger, muß mich entschuldigen bin Anfänger.

Mein Problem ist, daß ich die Daten nicht in eine Datei schreiben kann, da ich bei
>>(lambda (B) (write-line (strcat (car B) "t"
      (rtos
      (apply '+
      (mapcar
      '(lambda (plli)
      (command "_.LENGTHEN" plli "")
      (getvar "PERIMETER")
      )
      (cdr B)
<< den ersten Fehler >>kein Argument<< erhalte!
Das Programm funktioniert ohne Datei zu erzeugen gut!
Möchte mir aber zur Kontrolle eine Liste in eine Datei wegschreiben,
da ich sehr viele Polylinien zusammenzählen muß!

(progn
    (setq f (open "c:/pll.tmp" "w"))
    (mapcar '(lambda (B)
      (write-line (strcat (car B) "t"
      (rtos
      (apply '+
      (mapcar
      '(lambda (plli)
      (command "_.LENGTHEN" plli "")
      (getvar "PERIMETER")
      )
      (cdr B)
      )
      )
      2 2)
      )
      f)                   
      )
      blkli
    )
    (close f)
  )

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

TK_KE
Mitglied



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

Beiträge: 67
Registriert: 15.07.2003

...

erstellt am: 10. Sep. 2003 08:04    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 anno45 10 Unities + Antwort hilfreich

Hallo anno45 !
Wi Holger bin ich auch mal kurz drüber geflogen....
Mir sind auch noch ein paar ungenutzte Variablen aufgefallen:
(setq elemli (bau_elemli as) z 0) .... wozu das z ?
----
(mapcar '(lambda (B) ....  blkli )
..  Wo wird blkli zugewiesen ? - oben arbeitest du mit elemi ! 

Vielleicht war es das ja. Das nur ungetestet in Kürze.
Gruß Thomas

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 10. Sep. 2003 09:17    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 anno45 10 Unities + Antwort hilfreich

Hallo anno45,

ich weiß ja nicht, woher du diesen Code hast. Ich würde dir aber vorschlagen das Original zu verwenden. In dem, was du hier postest ist zu viel geändert, was die Funktion doch erheblich beeinflußt.
Das findest du auf meinen Seiten im Freedownload-Tool 27 oder http://ww3.cad.de/foren/ubb/Forum54/HTML/003000.shtml
Nimm von dort, die c:gl Funktion und füge am Ende das (TEXT_LANG) ein, dann könnte es laufen.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
10 - Der Countdown läuft. Wofür?... ./.
Ich bin vom 07.-10.10. in Stuttgart dabei.

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

anno45
Mitglied
Techniker


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

Beiträge: 11
Registriert: 09.09.2003

erstellt am: 10. Sep. 2003 18:56    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

Vielen Dank für eure Hilfe.
Hallo Holger,
Dein Programm läuft gut.
Nur mein Problem, diese Werte in eine Datei für eine Prüfliste zu schreiben, kann ich leider nicht.

Gruß anno45

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



Planungsingenieur | Elektroingenieur (m/w/d) Stromversorgung
Willkommen bei der WISAG

? einem der führenden Dienstleistungsunternehmen in Deutschland für die Bereiche: Aviation, Facility und Industrie. Mehr als 50.000 Mitarbeiterinnen und Mitarbeiter sind Tag für Tag bei uns im Einsatz.

Die WISAG Elektrotechnik ist spezialisiert auf die Energieversorgung in der Industrie....
Anzeige ansehenElektrotechnik, Elektronik
anno45
Mitglied
Techniker


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

Beiträge: 11
Registriert: 09.09.2003

erstellt am: 11. Sep. 2003 18:58    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 Holger,
habe das Problem gelöst.
war nicht schwer, aber wie Du schon sagst, der Stress.....

    (terpri) ;** Zeilenumbruch
    (setq dd (open "C:/FL01.tmp" "w"))
    (foreach plli plangli
      (write-line (strcat "Länge: " (rtos plli 2 0) "mm") dd)
    )
    (close dd)
Ergebnis: Der Liste in der Datei.
Länge: 1880mm
Länge: 78mm
Länge: 112mm

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