Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Befehlabruch bei Eingabe von 0

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
  
PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  Befehlabruch bei Eingabe von 0 (1275 mal gelesen)
Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 12. Okt. 2005 17:42    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 liebe Lispgemeinde,
ich habe 2 Anliegen und zwar wuerde mich intressieren wie ich bei einer einer Eingabe von null mein Programm dahingehen trimme, dass ich nichts gezeichnet bekomme.
Habe ein Programm geschrieben, dass mir Saulenlaengen in einem Giebel bereichnet, nun wenn ich die fortlaufenden Grundmasse eingebe moechte ich dass es mir bei der Eingabe von 0 diese nicht ausfuehrt.
bis jetzt zeichnet es mir immer einen Saule ueber die Eingabe von zuvor.

In der 2. Angelegenheit kommt wieder mein leidigs Problem mit der Texteingabe zur Sprache und zwar moechte ich einen einen Schriftkopf machen, der ueber meiner Zeichnung erscheint.
Es soll eine Abfrage kommen, in der ich den Giebelnamen eingeben kann, z.B. A  Und dann haette ich gern dass mir mein Programm ueber die Zeichnung "Giebel A" schreibt.

Hoffe mir kann da jemand auf die Spruenge helfen, schaffe es leider selbst nicht.

viele Gruesse Karli

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

SebZ
Mitglied
Bauingenieur Tiefbau


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

Beiträge: 189
Registriert: 17.10.2004

AutoCAD 2010 Civil 3D DACH
WinXP Professional 2002 SP3
MS Office 2007
Intel Core2Duo 2.80 GHz, 3.00 GB RAM

erstellt am: 12. Okt. 2005 18:06    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 Karli 99 10 Unities + Antwort hilfreich

1: Wenn deine Eingabe in einer Variablen gespeichert wird, dann kannst du das ganz einfach steuern, z.b.
(if (/= eingabe 0)
    (progn
    .... ; alle weiteren Schritte
    ) ; end progn
    .... ; was passiert, wenn die Eingabe=0 ist? (optional)
) ; end if

2: Schau mal in der Lispreferenz unter GETSTRING nach.

------------------
Gruß
SebZ

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

Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 12. Okt. 2005 19: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

Hallo SebZ, ich moechte dass bei der Eingabe von 0 fuer das Grundmass das Programm alle weiteren Schritte, wie das Zeichnen oder Bemassung der Saeule nicht ausfuehrt.
Leider weiss ich nicht was ich jetzt eingebe an der Stelle " .... ; was passiert, wenn die Eingabe=0 ist? (optional)"

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

StephanJP
Mitglied
CAD-Admin


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

Beiträge: 837
Registriert: 09.11.2000

AutoCAD ,MAP 3D, Civil 3D, Recap Pro, InfraWorks, VehicleTracking alles bis 2024, BBSoft, Win 10 Enterprise, Canon PlotClient
Canon TX2000, TX3000

erstellt am: 12. Okt. 2005 19:42    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 Karli 99 10 Unities + Antwort hilfreich

Hallo Karli,

sollen wir hier raten, wie Dein Programm aussieht? Wann gibst Du 0 ein, was sind fortlaufende Eingaben, öffnet Dein Programm eine Dialogbox?
Sei mir nicht böse, aber bei deiner Fragestellung kann ich mir beim besten Willen nicht vorstellen, dass Du das Programm geschrieben hast.

Auch zu Deinem zweiten Problem wird mir die Aufgabenstellung nicht klar.

------------------

gruß
Stephan

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

Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 12. Okt. 2005 20:26    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 Stephan, habe jetzt versucht die Datei anzuhaengen, aber leider kommt da die Meldung "ungueltige Anlage". Weiss nicht woran das liegt.
Aber wenn du denkst dass du mir weiterhelfen koenntest, dann kannn ich dir auch ne mail schicken

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 12. Okt. 2005 22:20    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 Karli 99 10 Unities + Antwort hilfreich

Hi Karli

Einen Programmabbruch kann man mit (exit) erzwingen.

z.B.
...
(setq var (getreal "\nWert einegeben:"))
(if (= var 0) (exit))
...

oder man läßt von gar keine "0" als Eingabe zu mit (initget).
...
(initget 2) ; bei nächster Eingabe keine '0' zulassen -> siehe Lisp Hilfe
(setq var (getreal "\nWert eingebn:"))
...

Grüße
Andi

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

Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 12. Okt. 2005 23:38    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

Ich denke dass es hilfreich waere, wenn ich mein Programm hier anhaengen koennte, leider hackt's da bei mir...
Vieleicht hatte einer von euch auch schon dieses Problem mit der "ungueltige Anlage".
Waere gut zu wissen, was ich falsch mache beim hochladen.

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: 4189
Registriert: 17.05.2001

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

erstellt am: 13. Okt. 2005 06: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 Karli 99 10 Unities + Antwort hilfreich

Hallo Karli99,

es dürfen nur Anlagen < 1MB in den Dateiformaten TXT/ZIP/GIF/JPG verwendet werden.
Benenne deine Datei also einfach um z.B. in Name.lsp.txt - dann sollte es klappen.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

Jackpot on demand - Wir eröffnen den Spätsommer mit einer Verlosung!

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

Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 14. Okt. 2005 18: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


Gableprogrammnew.txt

 
So jetzt habe ich es auch geschafft die Datei hochzuladen, ich hoffe dass jetzt etwas Licht ins Dunkle kommt.
Gleich noch ein paar sinnvolle Angaben, dass ihr euch etwas darunter vorstellen koennt: Gable Width: 500
                  Pitch Rise: 12
                  Step: 3
                  Pitch+: 2
                  alle Gainmasse: 12
                  alle Centermasse: 50
Ist etwas schwer sich etwas drunter vorzustellen, da alle Eingaben in Inch erfolgen und sich sicher die Wenigsten etwas unter den Begriffen vorstellen koennen, aber wenn es dann gezeichnet ist, wird klar worauf ich hinaus will (das hoffe ich zumindest:-).

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: 4189
Registriert: 17.05.2001

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

erstellt am: 14. Okt. 2005 20:21    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 Karli 99 10 Unities + Antwort hilfreich

Hallo Karli,

nimms mir nicht übel - aber bei mir passiert nichts. Stell mal eine Zeichnung rein, wo man sieht, was es werden sollte.

Wenn ich nachher noch Lust habe, dann schau ich auch mal, weshalb bei mir nichts passiert.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

Jackpot on demand - Wir eröffnen den Spätsommer mit einer Verlosung!

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 14. Okt. 2005 21:26    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 Karli 99 10 Unities + Antwort hilfreich

Hi Karli !

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargh !!!!!!!!!!!

Sorry für den lauten Schrei, aber Dein Lispprogramm ist ziemlich vermurkst !

- läuft es auf meinem Acad (Deutsch) nicht , da nicht alle Befehle und Optionen mit "_" beginnen. Außerdem ist bei den Circle-Befehlen irgendwie der Wurm drin (im Textfenster "unbekannter Befehl _CIRCLE")

- keine lokalen Variablen definiert (dafür jede Menge globale Variablen)
Wenn Du schon globale Variablen definiertst  (z.B. für Vorgabewerte), dann kennzeichne diese z.B. mit Sternchen - *globaleVariable*

- Eingabe, Berechnung und Zeichnen doppelt programmiert.
Das ist nicht nötig, wenn Du den Vorgabewerte den Variablen vor der Eingabe zuweist. Dann brauchst Du nur den Programmteil in der while-Schleife.

- Du kannst Dir einiges an Programmierarbeit sparen, wenn Du dir eigene Funktionen defierst, für Sachen die öfters vorkommen.
z.B. Eingaben mit Vorgabewerten. Diese Funktionen kannst Du dann auch in eine seperate Datei (z.B. Library.lsp) auslagern. Am Programmanfang einfach vor dem ersten Defun ein (load "Libraray") setzen, dann stehen Dir die Funktionen zur Verfügung.

- Die Rechnerei mit den Bemassungen könnte man auch mit einer Funktion  sparen. (siehe LibraryFunktion 'dim-ver')

Schau Dir mal Mapcar's Seiten an. Da findest Du einiges zur LISP-Programmierung. http://www.tutorial.autolisp.info/

Hier mal ein Beispielcode
Code:

(defun c:gable (/ run p1)
  (setq run t)
  (while run
    ;; Vorgabewerte setzen (wenn noch 'nil)
    (mapcar '(lambda (var val)
              (if (not (eval var))
                (set var val)
              )
            )
            ;; Variablen (global)
            '
            (*s1* *an* *st* . . . etc)
            ;; zugehörige Vorgabewerte
            '
            (500.0 12.0 0 . . . etc)
    )
    ;; Benutzer Eingaben
    (setq p1  (getpoint "\nPosition: ")
          *s1* (getdist>0 "Gable Width (inches)" *s1*)
          *an* (getdist>0 "Pitch Rise" *an*)
          *st* (getdist= "Step" *st*)
          ..etc
    )

...weiteres programm...

    (setq run (getkword_flag "Go on" t))
  ) ;while
)

Library Funktionen:
;;;--------------------------------
;;; Zeichnet Bemaßung mit Abstand von den Endpukten
;;; Argumente: pt1 - 1.Punkt für Hilfslinie
;;;            pt2 - 2.Punkt für Hilfslinie
;;;            dist1 - Abstand der Hilflinien von pt1/pt2 (positiv=rechts negativ = links)
;;;            dist2 - Abstand der Bemaßungslinie von pt1 (positiv=rechts negativ = links)
;;;            text - Textüberschreibung OHNE "<>"
;;; Beispiel: (dim-ver <Punkt1> <Punkt2> 1.0 11.0 " Testbemassung")
;;;--------------------------------
(defun dim-ver (pt1 pt2 dist1 dist2 text /)
  (command "_dim"
  "_ver"
  (polar pt1 0.0 dist1)
  (polar pt2 0.0 dist1)
  "_T"
  (strcat "<>" text)
  (polar pt1 0.0 dist2)
  "exit"
  )
)
;;;--------------------------------
;;; GETKWORD_FLAG - Ja/Nein Abfrage
;;; Anfragetext,Vorgabe T/nil
;;; gibt T/nil zurück
;;;--------------------------------
(defun getkword_flag (anfrage vorgabe / word)
  (initget "Yes No")
  (setq word (getkword (strcat "\n"
                              anfrage
                              " (Yes / No) <"
                              (if vorgabe
                                "Yes"
                                "No"
                              )
                              ">: "
                      )
            )
  )
  (cond ((= word "Yes") t)
        ((= word "No") nil)
        (t vorgabe)
  )
)
;;;--------------------------------
;;; GETDIST= - gedist mit Vorgabewert
;;;--------------------------------
(defun getdist= (anfrage vorgabe)
  (initget 0)
  (cond ((getdist (strcat "\n" anfrage " <" (rtos vorgabe 2 (getvar "LUPREC")) ">: ")))
        (t (float vorgabe))
  )
)
;;;--------------------------------
;;; GETDIST>0 - gedist mit Vorgabewert (größer 0)
;;;--------------------------------
(defun getdist>0 (anfrage vorgabe)
  (initget (+ 2 4))
  (cond ((getdist (strcat "\n" anfrage " <" (rtos vorgabe 2 (getvar "LUPREC")) ">: ")))
        (t (float vorgabe))
  )
)

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

Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 14. Okt. 2005 22:57    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 Andi,

dass mein Programm nicht sauber ist, weiss ich selbst. Ich habe das programmieren mit Lisp auch nie richtig gelernt und versuche es halt mir einigermassen hinzubasteln... Bin aber schon stolz dass ich soweit gekommen bin und es hier auf meinem Firmenrechner laeuft. Ich weiss nicht wieso es in der deutschen Version nicht geht.
Werde mal schauen ob ich am Wochenende Zeit und Lust habe mich da noch bisschen in deine Angaben einzuarbeiten.
Schon mal danke fuer die Hilfe...
Und Sorry dass dir meinetwegen die Haare zu Berge stehen (-;  es ist sicher fuer nen Profi wie dich lustig was so manch einer zusammenstuempert... aber wie gesagt bei mir lauft es erstmal

Allen Beteiligten noch ein schoenes Wochenende

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

Karli 99
Mitglied
Zimmerer


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

Beiträge: 17
Registriert: 18.08.2005

erstellt am: 14. Okt. 2005 23:12    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


Gableprogram.jpg

 
Habe euch jetzt nochmal ein Bild angehaengt, dass ihr seht wie's bei mir ausschaut.

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)2024 CAD.de | Impressum | Datenschutz