hallo zusammen!
habe ein kleines autolisp skript geschrieben, welches über drei while schleifen quadrate zeichnet und in diese quadrate wieder kreise. beim ersten aufruf des skripts läuft alles tadellos. beim wiederholten ausführen jedoch, zeichnen die kommandos _pline (plinie) und _circle nicht mehr die punkte an die korrekt berechneten koordinaten (die ich mir zur Überprüfung ausgeben lasse).
beispiel
ausgabe (berechnung):
(1935.0 -1360.0) (2135.0 -1360.0) (2135.0 -1460.0) (1935.0 -1460.0)
tatsächlich gezeichnet:
(1920 -1345) (2135 - 1345) (2135 -1460) (1920 -1460)
kann es eine fehlfunktion von pline sein?
codeauschnitt 1 (_pline):
(while (< y colNumber)
(setq colHeight (nth n l))
(setq p1 (list tempX tempY))
(setq p2 (list (+ tempX colWidth) tempY))
(setq p3 (list (+ tempX colWidth) (- tempY colHeight)))
(setq p4 (list tempX (- tempY colHeight)))
(print (list "--PK: " p1 p2 p3 p4))
(print (list "länge" (- (car p2) (car p1))))
(command "_.pline" p1 p2 p3 p4 p1 "")
codeausschnitt 2 (kreis):
(if (= lockType "h")
(progn
(setq p7 (list (+ tempX 66) (- tempY (+ (/ colHeight 2) 7))))
(setq p8 (list (+ tempX 66) (- tempY (- (/ colHeight 2) 7))))
(command "_line" p7 p8 "")
(setq p9 (list (+ tempX 66) (- tempY (/ colHeight 2))))
;(write-line "++++ h schloss center")
(print (list "p9" p9))
(command "_circle" p9 16)
)
vars sind lokal und werden am ende auf nil/0 gesetzt. die kommandos scheinen recht sporadisch beliebige punkte zu whälen
wäre super wenn mir jemand helfen könnte!
grïüße, ein autolispneuling.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP