Professional Documents
Culture Documents
LSP-------------------------------;;;----------------------------------------------------------;;;
;;; Aquest lisp senyalant un punt escriu les seves coordenades,
;;; en el dibuix.
;;; Per Jaume Pla Torra
;;; 27.NOV.92
;;; 26.mar.94
;;;
;;;-------------------PROGRAMA-------------------------------;;;
(defun c:acp (/ osm blp htf acp_ver acp_err olderr mlst
tip-n unctr anb ho au ii sd si id n5
nx ny nz n2 n3 n4 nr2 nr3 nr4 ncon lpun2 temp ctrbas)
;(acp_dec op-ctr tex tey tez co-z ht td )
(graphscr)
(setq acp_ver "2.3 (v12)")
;------------------------------------------------------------(defun MODES (a)
(setq MLST '
())
(repeat (length a)
(setq MLST (append MLST (list (list (car a) (getvar (car a))))))
(setq a (cdr a))
)
)
;;;----------------------------------------------------------(defun MODER ()
(repeat (length MLST)
(setvar (caar MLST) (cadar MLST))
(setq MLST (cdr MLST))
)
)
;------------------------------------------------------------(defun acp_err (st)
(if (/= st "Function cancelled")
(if(= st "quit / exit abort")(exit)
(princ (strcat "\nError: " st))
))
(if (and (/= htf 0) (boundp 'htf))
(command "_.STYLE" "" "" htf "" "" "" "")
)
(command "_.UNDO" "_END")
(if olderr (setq *error* olderr))
(moder)
(princ)
)
;-----------------------------------------------------------(if *error*
(setq olderr *error* *error* acp_err)
(setq *error* acp_err))
;------------------------------------------------------------(modes '("CMDECHO" "BLIPMODE" "OSMODE" "PICKBOX"))
(command "_.UNDO" "_group")
(setvar "CMDECHO" 0)
)
)
(if (>= angu 400)(setq angu (- angu 400)))
(setq lang (cons angu lang))
)
)
((= (getvar "AUNITS") 3) ;radians
(repeat (length lpun)
(setq angu (angle xyb (nth ctrn lpun)))
(setq ctrn (+ ctrn 1))
(cond
((equal (getvar "ANGBASE") 0.00 0.01)
(if (= (getvar "ANGDIR")1)(setq angu(-(* 2 pi)angu)))
)
((equal (getvar "ANGBASE") 1.57 0.01)
(if (= (getvar "ANGDIR") 1)(setq angu (+(-(* 2 pi)angu)(/ pi 2)))
(setq angu (+(/(* 3 pi)2)angu)))
)
((equal (getvar "ANGBASE") 3.14 0.01)
(if (= (getvar "ANGDIR") 1)(setq angu (+(-(* 2 pi)angu)(* pi 1)))
(setq angu (+(* pi 1)angu)))
)
((equal (getvar "ANGBASE") 4.71 0.01)
(if (= (getvar "ANGDIR") 1)(setq angu (+(-(* 2 pi)angu)(/(* 3 pi)2)))
(setq angu (+(/ pi 2)angu)))
)
)
(if (>= angu (* 2 PI))(setq angu (- angu (* 2 PI))))
(setq lang (cons angu lang))
)
)
((or(= (getvar "AUNITS") 1) (= (getvar "AUNITS") 4))
(repeat (length lpun)
(setq lang (cons '0 lang))
)
)
)
(princ "\nEscrivint...")
(p-angu)
(escr-a)
)
;-------------------------------------------------------------(defun escr-a (/ ctrn2 conj pte pte1 m 1t 2t 3t 4t 5t
m lf 1i 2i lv1 lv2 lv3 lv4)
(setq pte (getvar "VIEWCTR"))
(setq pte1 pte)
(setq ctrn2 (1+ ncon))
(setq ctrn 0)
(setvar "blipmode" 0) (setvar "osmode" 0)
(setq lpun (reverse lpun))
(setq m (* 10 ht))
(setq 1t (/ m 4) 2t m 3t (* m 2) 4t (* m 3) 5t (* m 4)
lf (* m 4.5) 1i (* ht 2) 2i (* ht 0.5)
lv1 (/ m 2) lv2 (* m 1.5) lv3 (* m 2.5) lv4 (* m 3.5)
)
(command "_.LINE" pte (list(+(car pte)lf) (cadr pte)) "")
-l)
(setq pte (list (car pte) (- (cadr pte)1i)))
(a
(list(+(car pte)3t) (cadr pte)) ht "" (strcat " 0 (list(+(car pte)4t) (cadr pte)) ht "" (substr au 1
(list(+(car pte)5t) (cadr pte)) ht "" (substr ho 1
(cadr pte)2i)))
(a-l)
(a-l)
nx 2 acp_dec))) (a-l)
ny 2 acp_dec))) (a-l)
nz 2 acp_dec))) (a-l)
nx 2 acp_dec))) (a-l)
ny 2 acp_dec))) (a-l)
)
;----------------------------------------------------------------(defun line2 ()
(if (= co-z "Si")
(command "_.LINE" n5 (list (car n5) (+ (cadr n5)(* ht 3) ht) ) "")
(command "_.LINE" n5 (list (car n5) (+ (cadr n5)(* ht 1.5) ht) ) "")
)
(cond
((and (<= (car tip-n)(car n5)) (<= (cadr tip-n)(cadr n5)))
(command "_.LINE" tip-n n5 "")
)
((and (< (car tip-n)(car n5)) (> (cadr tip-n)(cadr n5)))
(if (= co-z "Si")
(setq n5 (list(car n5)(+ (cadr n5)(* ht 3) ht)(caddr n5)))
(setq n5 (list(car n5)(+ (cadr n5)(* ht 1.5) ht)(caddr n5)))
)
(command "_.LINE" tip-n n5 "")
)
((and (>= (car tip-n)(car n5)) (> (cadr tip-n)(cadr n5)))
(if (= co-z "Si")
(setq n5 (list(car n5)(+ (cadr n5)(* ht 3) ht)(caddr n5)))
(setq n5 (list(car n5)(+ (cadr n5)(* ht 1.5) ht)(caddr n5)))
)
(command "_.LINE" tip-n n5 "")
)
((and (> (car tip-n)(car n5)) (<= (cadr tip-n)(cadr n5)))
(command "_.LINE" tip-n n5 "")
)
)
)
;-----------------------------------------------------------(princ "\nEscriu coordenades d'un punt. Activar amb ACP")