You are on page 1of 10

O código fonte da lisp é este:

(defun C:PNF (/)

(setq d1 (getdist "\nAltura do poliedro"))

(setq pt1 (getpoint "\nPrimeiro ponto"))

(setq pt2 (getpoint "\nSegundo ponto"))

(setq pt3 (getpoint "\nTerceiro ponto"))

(setq pt4 (getpoint "\nQuarto ponto"))

(setq d2 (distance pt1 pt4))

(setq x5 (+ (car pt3) d1))

(setq y5 (cadr pt3))

(setq pt5 (list x5 y5 0))

(command "line" pt3 pt5 "")


(setq pt6 (list x5 (cadr pt1) 0))

(command "line" pt5 pt6 "")

(command "line" pt6 pt2 "")

(setq pt7 (list (car pt2) (+ (cadr pt2) d1)))

(command "line" pt2 pt7 "")

(setq pt8 (list (car pt1) (+ (cadr pt2) d1)))

(command "line" pt7 pt8 "")

(command "line" pt1 pt8 "")

(setq pt9 (list (- (car pt1) d1) (cadr pt1)))

(command "line" pt1 pt9 "")

(setq pt10 (list (car pt9) (cadr pt4)))

(command "line" pt9 pt10 "")


(command "line" pt10 pt4 "")

(setq pt11 (list (car pt4) (- (cadr pt4) d1)))

(setq pt12 (list (car pt3) (- (cadr pt3) d1)))

(command "line" pt4 pt11 "")

(command "line" pt11 pt12 "")

(command "line" pt12 pt3 "")

(setq pt13 (list (car pt11) (- (cadr pt11) d2)))

(setq pt14 (list (car pt12) (- (cadr pt12) d2)))

(command "line" pt11 pt13 "")

(command "line" pt13 pt14 "")

(command "line" pt12 pt14 "")

(if (>= d1 8.49)


((setq pt15 (list (+ (car pt13) 3) (- (cadr pt13) 3)))

(setq pt16 (list (- (car pt14) 3) (- (cadr pt14) 3)))

(setq pt15 (list (+ (car pt13) 3) (- (cadr pt13) 3)))

(setq pt16 (list (- (car pt14) 3) (- (cadr pt14) 3)))

(command "line" pt13 pt15 "")

(command "line" pt14 pt16 "")

(command "line" pt15 pt16 "")

(setq pt17 (list (+ (car pt14) 3) (+ (cadr pt14) 3)))

(setq pt18 (list (+ (car pt12) 3) (- (cadr pt12) 3)))

(command "line" pt14 pt17 "")

(command "line" pt17 pt18 "")

(command "line" pt12 pt18 "")


(setq pt19 (list (+ (car pt12) 3) (+ (cadr pt12) 3)))

(setq pt20 (list (+ (car pt3) 3) (- (cadr pt3) 3)))

(command "line" pt12 pt19 "")

(command "line" pt19 pt20 "")

(command "line" pt3 pt20 "")

(setq pt21 (list (- (car pt13) 3) (+ (cadr pt13) 3)))

(setq pt22 (list (- (car pt11) 3) (- (cadr pt11) 3)))

(command "line" pt13 pt21 "")

(command "line" pt21 pt22 "")

(command "line" pt11 pt22 "")

(setq pt23 (list (- (car pt11) 3) (+ (cadr pt11) 3)))

(setq pt24 (list (- (car pt4) 3) (- (cadr pt4) 3)))


(command "line" pt11 pt23 "")

(command "line" pt23 pt24 "")

(command "line" pt4 pt24 "")

(setq pt24 (list (+ (car pt9) 3) (+ (cadr pt9) 3)))

(setq pt25 (list (- (car pt1) 3) (+ (cadr pt1) 3)))

(command "line" pt9 pt24 "")

(command "line" pt24 pt25 "")

(command "line" pt1 pt25 "")

(setq pt25 (list (+ (car pt3) 3) (+ (cadr pt2) 3)))

(setq pt26 (list (- (car pt6) 3) (+ (cadr pt6) 3)))

(command "line" pt2 pt25 "")

(command "line" pt25 pt26 "")


(command "line" pt6 pt26 "")

(setq d3 (distance pt3 pt4))

(setq pt27 (list (+ (car pt11) (/ d3 4)) (- (cadr pt11) (/ d2 2))))

(command "text" pt27 1.5 0 (rtos d1) ""))

(setq pt15 (list (+ (car pt13) 1.3) (- (cadr pt13) 1.3)))

(setq pt16 (list (- (car pt14) 1.3) (- (cadr pt14) 1.3)))

(setq pt15 (list (+ (car pt13) 1.3) (- (cadr pt13) 1.3)))

(setq pt16 (list (- (car pt14) 1.3) (- (cadr pt14) 1.3)))

(command "line" pt13 pt15 "")

(command "line" pt14 pt16 "")

(command "line" pt15 pt16 "")


(setq pt17 (list (+ (car pt14) 1.3) (+ (cadr pt14) 1.3)))

(setq pt18 (list (+ (car pt12) 1.3) (- (cadr pt12) 1.3)))

(command "line" pt14 pt17 "")

(command "line" pt17 pt18 "")

(command "line" pt12 pt18 "")

(setq pt19 (list (+ (car pt12) 1.3) (+ (cadr pt12) 1.3)))

(setq pt20 (list (+ (car pt3) 1.3) (- (cadr pt3) 1.3)))

(command "line" pt12 pt19 "")

(command "line" pt19 pt20 "")

(command "line" pt3 pt20 "")

(setq pt21 (list (- (car pt13) 1.3) (+ (cadr pt13) 1.3)))

(setq pt22 (list (- (car pt11) 1.3) (- (cadr pt11) 1.3)))


(command "line" pt13 pt21 "")

(command "line" pt21 pt22 "")

(command "line" pt11 pt22 "")

(setq pt23 (list (- (car pt11) 1.3) (+ (cadr pt11) 1.3)))

(setq pt24 (list (- (car pt4) 1.3) (- (cadr pt4) 1.3)))

(command "line" pt11 pt23 "")

(command "line" pt23 pt24 "")

(command "line" pt4 pt24 "")

(setq pt24 (list (+ (car pt9) 1.3) (+ (cadr pt9) 1.3)))

(setq pt25 (list (- (car pt1) 1.3) (+ (cadr pt1) 1.3)))

(command "line" pt9 pt24 "")

(command "line" pt24 pt25 "")


(command "line" pt1 pt25 "")

(setq pt25 (list (+ (car pt3) 1.3) (+ (cadr pt2) 1.3)))

(setq pt26 (list (- (car pt6) 1.3) (+ (cadr pt6) 1.3)))

(command "line" pt2 pt25 "")

(command "line" pt25 pt26 "")

(command "line" pt6 pt26 "")

(setq d3 (distance pt3 pt4))

(setq pt27 (list (+ (car pt11) (/ d3 6)) (- (cadr pt11) (/ d2 2))))

(command "text" pt27 1.3 0 (rtos d1) "")

); end defun

You might also like