| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: If mit NOT oder OR (1186 mal gelesen)
|
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 09. Apr. 2008 17:14 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Frank88
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
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 09. Apr. 2008 17:28 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 09. Apr. 2008 17:33 <-- editieren / zitieren --> Unities abgeben:
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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 / zitieren --> Unities abgeben: Nur für Frank88
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
Beiträge: 334 Registriert: 13.04.2002
|
erstellt am: 09. Apr. 2008 18:02 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
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
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 09. Apr. 2008 18:51 <-- editieren / zitieren --> Unities abgeben:
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 |