Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Untersuchen von Funktionen

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:  Untersuchen von Funktionen (1143 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 31. Okt. 2012 10:44    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


GE_GetOffsetPts.lsp

 
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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 31. Okt. 2012 10:59    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 cadplayer 10 Unities + Antwort hilfreich

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


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 31. Okt. 2012 11:45    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

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.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 31. Okt. 2012 11:50    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 cadplayer 10 Unities + Antwort hilfreich

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.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 31. Okt. 2012 12: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 cadplayer 10 Unities + Antwort hilfreich

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


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

Beiträge: 1832
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 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 Marco für deine Zeit & Hilfe.
Ich lese mir´s nochmal durch und komme evtl. nochmal zurück...

------------------
Gruss Dirk

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

CADblue
Mitglied



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

Beiträge: 117
Registriert: 20.07.2011

ACAD18,Linear19

erstellt am: 05. Nov. 2012 14:00    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 cadplayer 10 Unities + Antwort hilfreich

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


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 05. Nov. 2012 15:41    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

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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 05. Nov. 2012 22:11    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 cadplayer 10 Unities + Antwort hilfreich

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

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