• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Problem mit der Routine Lisp

  • Ersteller Ersteller Angelo2449
  • Erstellt am Erstellt am

Angelo2449

Guest
Hallo alle,
Ich habe bereits eine ähnliche Diskussion geführt, aber bisher hat niemand geantwortet.
Ich möchte das Problem besser erklären.

für Jahre Ich benutze diese beiden Routinen:
Code:
 (Defun c:org (/ pt1 pt2)

(setq pt1 nil)
(while)
(= pt1 nil)
(Prinzip "\npunto base <")
(Schlüsselpunkt)
(principal ">: ")
(setq pt1 (getpoint))
)

(falls pt1 (setq point pt1))

(setq pt2 nil)
(while)
(= pt2 nil)
(Prinzip "\nsecondo punto <")
(Grundpunkt) 2)
(principal ">: ")
(setq pt2 (getpoint))
)

(falls pt2 (Satz 2 pt2))

(Prinzip "\n")
(Schlüsselpunkt)
(Prinzip "\n")
(Grundpunkt) 2)
(Prinzip "\n")

(setq organg (Punkt 2 Winkel)
(Befehl "_line" Punkt 2 ")
(sofern zutreffend)
[CODE] (defunc c:polar (/ ag ag1 ds point1 ptxt)

(wenn (= Punkt nil)
(Progn)
(Sie müssen zuerst die Orientierung definieren)
(Auszug)
)
)

(setq fc3 (findfile "c:\\\autocadsupport\\\provisors\\\\polar.dat")

(falls fc)
(vl-file-delete "c:\\\autocadsupport\\\provisors\\\\polar.dat")
)

(Start "c:\autocadsupporto\liberty\\polar.exe "c:\\autocadsupport\\\liberty\\polar.tkn")

(setq qa nil)
(while)
(setq qa (getpoint "\click any point"))
)

(Sectq fc4 nil)
(sing)
(= fc4 nil)
(setq fc4 (findfile "c:\\\autocadsupport\\\provisors\\\\polar.dat")
)

(setq fp1 (open "c:\\\\\\\autocadsupport\\\\\\provisori\\\\\\polar.dat" "r"))
(setq ptxt (read-line fp1))
(setq ag (read-line fp1))
(setq ds (read line fp1))
(setq htxt (read-line fp1))
(Schließe fp)

(princ "\n")
(princ ptxt)
(princ "\n")
(princ ds)
(princ "\n")
(princ ag)
(princ "\n")
(princ htxt)
(princ "\n")

(setvar "blipmode" 0 )
(Setvar "cmdecho" 0)
(Setq ag1 (Winkelpunkt 2)
(setq agrad)
(setq dsreal)
(setq htxtreal (atof htxt))
(setq agrad (/ agrad 200)
(setq agrad (* agrad pi)

(princ "\n")
(princ ag)
(princ "\n")
(princ agrad)
(princ "\n")

(setq point1 (polar point (- (* 2 pi) (- agrad ag1)) dsreal)
(Befehl "_line" Punkt1 ")
(Befehl "_change" "_last" "_p" "_c" "_red"")
(Befehl "_circle" Punkt1 0.20 ")
(Befehl "_change" "_last" "_p" "_c" "_red"")

(Befehl "_text" Punkt1 htxtreal 0 ptxt)
(Befehl "_change" "_last" "_p" "_c" "_red"")

(alert "tracked glass")

)
von gestern, plötzlich arbeiten sie nicht mehr, die Ergebnisse sind wie folgt:
Befehl:
Befehl: org
Basispunkt < (279.472 258.532 0.0)>
zweiter Punkt (376.673 195.313 0.0)

Befehl:
Befehl:
Befehl: polar
Zahlenpunkt :10

Entfernung : 50

Winkel: 35
; Fehler: zu viele Argumente

Befehl:
Befehl:
Befehl:
Befehl: polar
Nummer 30

Entfernung : 56

Winkel: 57
; Fehler: zu viele Argumente

Ich verstehe nicht, warum, einmal, die erste, die Routine > polar < gearbeitet, dann ist das genug!
Ich verstehe nicht, danke.
 
der Fehler tritt in c:org auf, der Aufruf zum Befehl (c: polar) ist offensichtlich falsch; im veröffentlichten Code fehlt diese Eigenschaft. in jedem Fall zu vermeiden, Befehle zuzuordnen, die dem der lisp-Befehle entsprechen, ist kein Fehler, sondern könnte zu Überlappung führen; Fügen Sie einen Suffix, geben Sie anpolar (einefrost), Ihr Code wird kaum stören, dass von anderen geschrieben.
 
Danke.
Ich fand die Lösung für das Problem.
in der Tat habe ich "polar" umbenannt und alles funktioniert perfekt!
Bitte, in einem letzten Beitrag, Ich bat Sie um Hilfe beim Löschen eines Artikels, wenn Sie einen Blick nehmen können.
Danke noch mal.
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben