| |
| 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 – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Untersuchen von Funktionen (1173 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 31. Okt. 2012 10:44 <-- editieren / zitieren --> Unities abgeben:
Meine Frage zu dem begefügten Link, wie kann man die Funktionen untersuchen was sie eigentlich tun. Ich bin kein grosser Programmierkünstler - schaue mir zum Lernen gern codeSchnipsel an. Die Beschreibungen in den Funktionen sind sehr notdürftig. Die Frage "Was wird verlangt oder muss in den Symbolen angegeben werden?" Link Funktion GE_GetOffsetPts als Beispiel interessiert mich [edit] file angehangen ------------------ Gruss Dirk [Diese Nachricht wurde von cadplayer am 31. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 31. Okt. 2012 10:59 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Um dein Beispiel zu nehmen ist der Aufruf sogar schon etwas dokumentiert ! Ansonsten muß man einfach nachsehen mit welchen funktionen die Parameter bearbeitet werden. (defun addieren (X Y) (rtos (+ (atof X) Y) 2 0) ) X wird hier also mit ATOF weiterverarbeitet, ATOF erwartet einen String (Steht in der Doku zu ATOF) Y wird in eine Addition eingebunden, es kann also nur eine Ganz oder Realzahl verarbeitet werden. X=String Y=Zahl fertig analysiert.. Das debuggen in der VLide ist angenehm und zudem sagen Fehlermeldungen auch aus was erwartet wird. Befehl: (strcase 6.55) Fehler: Fehlerhafter Argumenttyp: stringp 6.55 Befehl: (+ "wer" 7) Fehler: Fehlerhafter Argumenttyp: numberp: "wer" Befehl: (ssname "watt?" 55) Fehler: Fehlerhafter Argumenttyp: lselsetp "watt?" Kurz: WISSEN ist das Zauberwort, ganz einfach ! ( wobei man nicht alles auswendig wissen muß, man muß nur wissen wo man nachsehen kann = F1 )
------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad)
[Diese Nachricht wurde von cadffm am 31. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 31. Okt. 2012 11:45 <-- editieren / zitieren --> Unities abgeben:
Zitat: ( wobei man nicht alles auswendig wissen muß, man muß nur wissen wo man nachsehen kann = F1 )
Vielen Dank für deine Erläuterung. Ich stimme dir überein, dass man alles mit dem nötigen Wissen "entzaubern" kann. Ich hatte nur gedacht, das es da einen anderen Weg gibt Funktionen zu testen als mit dem vlide-editor. Naja der ist ja schon äusserst bequem, aber darum gehts in meinem Fall nicht. Also dann lege ich mich mal wieder ins Zeug. Das heisst rückwärts aufdruseln der vorgegebenen Funktion und F1 benutzen. Nochmal kurz nachgehakt. #pb2 ... ist nirgendwo definiert num ... muss ein numerischer Wert sein, da (repeat Num... Collapse... da stehe ich auf dem Schlauch, was kontrolliert was hier (if (and Collapse (= cnt 1)) Hilft da nur probieren??? ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 31. Okt. 2012 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
hallo cadplayer, in der von dir angegebenen funktion wird die globale variable "#pb2" verwendet, die nirgends definiert ist. demzufolge wirst du beim testen an der stelle definitiv einen fehler bekommen. wenn ich mir anschaue, wofuer diese verwendet wird, muesste die definition der variablen folgendes sein: (setq #pb2 (/ pi 2.0)). gruss marco ------------------ Marco Heuer www.arc-aachen.de Airport Office Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 31. Okt. 2012 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Zitat: Hilft da nur probieren???
es hilft auch die parameterbeschreibung zu lesen, sich zu ueberlegen, was bei nichtdefinierten variablen passiert und code zu verstehen (mit eventueller zuhilfenahme der hilfe). 'Num' - Number of offset points on either side bedeutet: Num ist vom typ integer 'Collapse' - If T, first offset will collapse to half width bedeutet: Collapse ist vom typ boolean (t oder nil) (if (and Collapse (= cnt 1)) bedeutet: wenn collapse = t und cnt = 1, dann führe das folgende aus, ansonsten das andere ------------------ Marco Heuer www.arc-aachen.de Airport Office Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 31. Okt. 2012 13:24 <-- editieren / zitieren --> Unities abgeben:
|
CADblue Mitglied
Beiträge: 117 Registriert: 20.07.2011 ACAD18,Linear19
|
erstellt am: 05. Nov. 2012 14:00 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Zitat: (defun addieren (X Y) (rtos (+ (atof X) Y) 2 0) )X wird hier also mit ATOF weiterverarbeitet, ATOF erwartet einen String (Steht in der Doku zu ATOF) Y wird in eine Addition eingebunden, es kann also nur eine Ganz oder Realzahl verarbeitet werden. X=String Y=Zahl
(defun addi(x y)(rtos (+(atof (rtos x 2 0))y) 2 0)) X= ZAHL Y= ZAHL sry mir war langweilig Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 05. Nov. 2012 15:41 <-- editieren / zitieren --> Unities abgeben:
woran liegt es eigentlich, wenn man eine Funktion abbricht (Esc) und anschliessend mit Enter wieder aufruft. kommt bei mir Unknown command "" Beispiel: Code: (defun c:- () (while (setq ent (car (entsel "\nHöhen Block wählen "))) (if (= (cdr (assoc 2 (tblsearch "BLOCK" "plushöjd"))) (cdr (assoc 2 (entget ent)))) (progn (setq pt (trans (cdr (assoc 10 (entget ent))) 0 1)) (setq pt (list (car pt) (- (cadr pt) 0.1))) ;;; (entmod (subst (cons 10 pt)(assoc 10 (entget ent)) (entget ent))) (command "_move" ent "" (trans (cdr (assoc 10 (entget ent))) 0 1) pt) ) ) ) (princ) (c:-) )
------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Nov. 2012 22:11 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Bei mir kommt diese Meldung nicht, das kann aber unter Umständen an der Einstellung von Inputhistorymode liegen (ungeprüft). Letztendlich hat AutoCAD sich als letzte Eingabe ein "" gemerkt laut Meldung.. Dein Befehl ruft sich selbst auf ? Dein (c:-) am Ende gehört da imho nicht hin. (vor allen Dingen kann man den Befehl dann auch ordentlich verlassen und muß ihn gar nicht abbrechen) ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |