24
135
111
初露锋芒
使用道具 举报
(defun c:perfil()(setq cota-base (getpoint "\nInforme um ponto para cota base :"))(setq valor-cota (getreal "\nInforme a cota :"))(setq mostre (entsel "\nSelecione a linha do projeto : "))(setq bto (getpoint "\nInforme um ponto base para os textos :")) ;;;------------------------------------------------------------------------------------------------------------(setvar"cmdecho" 0) ;(command "osmode" 0) (command "angbase" 270) (command "angdir" 1) (setq flagv "falso") (setq controle 0) (setq controle1 0) (setq contador 0) (while (= flagv "falso")(setq linha (entget (car mostre ))) (setq verificador (cdr(assoc 0 linha))) (if (= verificador "LWPOLYLINE") (progn (setq verif (cdr (assoc 70 linha))) (setq flagv "verdade") ) (princ "tNão é Polyline !! ") ) ) (setq controle1 (length linha)) (setq amostra '()) (repeat controle1 (setq x (caar linha)) (if (= x 10) (progn (setq item (car linha)) (setq amostra (cons item amostra)) (setq contador (1+ contador)) ) ) (setq linha (cdr linha)) ) (setq amostra1 (reverse amostra)) (if (= verif 1) (setq amostra (cons (car amostra1) amostra)) (setq contador (1- contador)) ) (setq controle contador) (repeat controle (setq PTO1 (cdr(car amostra))) (setq PTO2 (cdr(car(cdr amostra)))) (AZIMUTAR) (setq amostra(cdr amostra)) ) (princ) ) (defun AZIMUTAR () (setq padroes (getvar "osmode")) (setvar"cmdecho" 0) (command "osmode" 0) (setq A PTO1) (setq B PTO2) ;;(setq C " - Az ") ;;(setq D (angtos (angle A B) 1 4)) ;;(MUDAR) ;;(setq E (rtos (distance A B) 2 4)) ;;(setq DADO (strcat E C PALAV)) ;;(PARALELO) ;;(command "text" "j" "mc" ponto_meio 2.5 inicio dado ) ;;(command "osmode" padroes) (setq angulo (angle A B)) (setq ang2 (+ angulo (dtr 90))) (princ angulo) (princ ang2) ;-------------------------------------------------------------------------------------------------------------------------------------(setq x-bto (car bto) x-b (car b)) (setq dist (- x-b x-bto)) (setq p-proj (polar bto 0 dist)) (setq p-proj (polar p-proj (/ pi 2) 0.1)) (setq p-proj (polar p-proj 179 0.1)) (setq cota (cadr cota-base) c-proj (cadr b)) (setq cota-final (rtos(+(abs(- c-proj cota))valor-cota)2 3)) (command "zoom" "o" mostre "")(command "text" p-proj (/ pi 2) cota-final "");------------------------------------------------------------------------------------------------------------------------------------- )(defun PARALELO () (setq A1 (polar A (+ (/ pi 2)(angle B A )) 2)) (setq B1 (polar B (+ (/ pi 2)(angle B A )) 2)) (setq ptx (/ (+ (car B1) (car A1)) 2)) (setq pty (/ (+ (cadr B1) (cadr A1)) 2)) (setq ponto_meio (list ptx pty)) (if (< (car A1)(car B1)) (setq inicio B1) (setq inicio A1) ) ) (defun MUDAR () (setq XL 2) (setq J "d") (setq COM1 (substr D 1 1)) (while (< XL 5) (setq LETRAT (substr D XL 1)) (setq RESTOT (substr D (+ 1 XL) )) (if (= LETRAT J) (progn (setq J "%%d") (setq XL 6) (setq PALAV (strcat COM1 J RESTOT)) )