Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  If mit NOT oder OR

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:  If mit NOT oder OR (1180 mal gelesen)
Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 09. Apr. 2008 17:14    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,

damit:

Code:
(setq PErr (* -1 (atof(getstring "Misalignment Pitch:"))))
(setq HErr (* -1 (atof(getstring "Misalignment Heading:"))))
(terpri)
(SKipp PErr HErr)
gebe ich Werte ein und übergebe sie an diese SUB:
Code:
(defun SKipp (PC HC)
(if (or(< PC 0)(> PC 0))(kippP PC))
(if (or(< HC 0)(> HC 0))(kippH HC))
)
Alternativ habe ich auch das hier probiert:
Code:
(defun SKipp (PC HC)
(if (not(= PC 0))(kippP PC))
(if (not(= HC 0))(kippH HC))
)
Ich würde erwarten, daß bei numerischen Eingaben ungleich '0' - also z.B. 1 - die SUBs kippP und kippH durchlaufen werden. Das passiert aber nicht.
Hintergrund ist der: In kippP und kippH wird ein Objekt mit "3ddrehen" gedreht. Ist aber der angegebene Winkel=0 wird der Programmablauf unterbrochen und der Wert nachgefragt.
Das darf nicht sein. Vielmehr müssen auch Werte=0 zulässig sein. Nur soll dann eben die jeweilige SUB nicht ausgeführt werden.

Grüsse,
Frank

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 09. Apr. 2008 17:23    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 Frank88 10 Unities + Antwort hilfreich

Zitat:
Das passiert aber nicht.

Bist Du sicher?
bei mir funktionierts, auch wenn ich hier gleich mit "getreal" arbeiten würde, da dann Fehleingaben verhindert werden.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

      http://www.voxelman.de

[Diese Nachricht wurde von wronzky am 09. Apr. 2008 editiert.]

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

Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 09. Apr. 2008 17:28    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 Henning,

ganz sicher. So sicher, wie man nach einer Stunde rumprobieren nur sein kann. Ohne diese IF-Abfrage (sofort Aufruf der kippP und kippH) funktioniert es, wie es soll.
Füge ich die Abfrage ein, werden die Kipp-SUBs nicht mehr durchlaufen.

Grüsse,
Frank

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

Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 09. Apr. 2008 17:33    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

Danke übrigens für den Tipp mit GETREAL. Ist schon geändert, weil natürlich viel besser.

Grüsse,
Frank

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 09. Apr. 2008 18: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 Frank88 10 Unities + Antwort hilfreich

Also wenn ich ausführe:
Code:
(defun c:test ()
  (setq PErr (getreal "Misalignment Pitch:"))
  (setq HErr (getreal "Misalignment Heading:"))
  (terpri)
  (SKipp PErr HErr)
)

(defun SKipp (PC HC)
  (if (not (= PC 0))
    (kippP PC)
  )
  (if (not (= HC 0))
    (kippH HC)
  )
)

(defun kippP (p)
  (print p)
)
(defun kippH (p)
  (print p)
)


ist bei mir die Ausgabe (bei Eingabe von 1)
-1
-1

Keine Ahnung, wieso es bei Dir nicht läuft.

GRüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

Claudio
Mitglied
Architekt


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

Beiträge: 334
Registriert: 13.04.2002

erstellt am: 09. Apr. 2008 18:02    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 Frank88 10 Unities + Antwort hilfreich

Hallo Frank!
nachdem es ja um NOT oder OR ging :
UNGLEICH wird einfacher durch /= dargestellt->
(if (/= PC 0)...
(if (/= HC 0)...

Der Rest funktioniert eigentlich, eine mögliche Fehlerursache könnte
sein, daß die Variablen PC, HC vor der Prüfung (IF..) aus irgend einem
Grund auf Null gestellt werden.
Schreib zum Testen (princ PC)(terpri)(princ HC) ins Prog (vor den IFs).
Dann siehst Du die Werte im Textfenster und kannst
vielleicht den Fehler eingrenzen.

Gruß Claudio

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

Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 09. Apr. 2008 18:51    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,

danke für Eure Hilfe. 99% der Fehler geschehen zwischen Bürostuhl und Tastatur.
Erstmal habe ich den viel übversichtlicheren Ausdruck '/=' verwendet. Danke dafür.
Das hat mir dann auch den Blick wieder frei gemacht für einen anderen Fehler. Aus Gründen des schnelleren Testens habe ich für beide Kippungen den Wert 1 gewählt. Nur in den Vorzeichen so bescheuert, daß sich das - zusammen mit einem Fehler beim Definieren der Kippachse - wieder aufgehoben hat.

Jetzt läuft alles tip-top. Mein Wochenende ist gerettet! 

Grüsse,
Frank

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