| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Funktionsaufruf ergibt Fehler (1170 mal gelesen)
|
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 08. Apr. 2008 15:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, nachdem ich den Code Zeile für Zeile getippt und getestet habe, versuche ich nun, immer wiederkehrendes in SUBs auszulagern. Das wird mich aber vermutlich eher früher als später in die Klapper bringen... Das geht:
Code: (defun blabla ( ) (setq AP (list YA ZA XA)) (setq EP (list YE ZE XE)) (setq rad (angle AP EP)) ;Radians des NVec1 (setq deg1 (atof (angtos rad 0 2))) ;Grad des NVec1 (weiter im Code... )
Und das hier nicht:
Code: (defun blabla ( ) (setq AP (list YA ZA XA)) (setq EP (list YE ZE XE)) (setq deg1 (Wi AP EP)) ;Grad des NVec1 (weiter im Code... ) (defun Wi (AP EP) (setq rad (angle AP EP)) ;Radians des Wi (setq Wi (atof (angtos rad 0 2))) ;Grad des Wi )
Fehlermeldung dazu :
Code: ; Fehler: Fehlerhafte Funktion: 6.0
6.0 ist aber tatsächlich der Winkel der rauskommen soll - nur eben keine Funktion! Was läuft hier schief?Grüsse, Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 08. Apr. 2008 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
einmal definierst du WI als Funktion mit defun und einmal als Vareiable mit setq .... ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." 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: 08. Apr. 2008 15:44 <-- 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: 08. Apr. 2008 16:54 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Hallo Frank, "subs" sollten ihre Variablen immer lokal verwenden, dann kommen sie auch nicht in Konflikt mit anderen Funktionen. Folgendes funktioniert daher tadellos, wenn es auch vom Compiler (zu recht) "angemeckert" wird: Code: (defun Wi (AP EP / Wi rad) (setq rad (angle AP EP)) ;Radians des Wi (setq Wi (atof (angtos rad 0 2))) ;Grad des Wi )
(Dazu gab's auch mal einen Beitrag, finde ihn aber im Moment nicht....)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 |
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 08. Apr. 2008 18:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Hennning, ja, eigentlich weiß ich das auch. Und die Variable Wi (und rad natürlich auch) wird nach verlassen der SUB nicht mehr gebraucht. Wi ist jetzt in Dummy umbenannt. Irgendwie war ich der Meinung, das müßte so sein, damit der richtige Wert zurückgegeben wird. Ich arbeite eben doch viel häufiger mit VBA. Da wär das gar nicht so verkehrt gewesen. Der Hauptgrund ist aber, daß heute schon Dienstag und die Woche - genauso wie ich - nicht mehr taufrisch ist. Jetzt ist schon wieder die nächste unerklärliche Sache aufgetreten. Eben ging's noch und nu nicht mehr. Aber ich werf's jetzt hin und mache morgen weiter. Für Interessierte (und noch Arbeitende) hier das Rätsel:
Code: (defun blabla () (setq DN "C:\Liste.txt") (setq DHnd (open DN "w")) (drehen) (close DHnd) ) (weitere SUBs...
Aus mir unerfindlichen Gründen wird jetzt die Datei "C:\Liste.txt" nicht mehr angelegt... Wie gesagt, vorhin ging's noch. Ich habe schon aus Test- und Sicherheitsgründen die Zeile wieder eingefügt, in der der Name festgelegt wird. Könnte man ja auch so schreiben:
Code: (setq DHnd (open "C:\Liste.txt "w"))
Fazit: Mein Rechner ist wohl auch müde. Bis morgen, 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: 08. Apr. 2008 18:39 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 08. Apr. 2008 18:51 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
|
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 09. Apr. 2008 09:14 <-- editieren / zitieren --> Unities abgeben:
|