OI
Alguem pode me ajudar?
preciso cotar coordenadas utm no cad, uso o comando id, ponto por ponto do arquivo descarregado do gps, e tenho que que copiar e colar os valores um a um, exite uma lisp ou mesmo um comando que facilite esse processo?
cotar coordenadas utm no cad com facilidade
Moderador: Moderadores
olá ...
Estou postando aqui uma rotina para azimutar polilinhas ...
Coloquei aqui uma linha a mais, preenchendo então o X e o Y de cada ponto ...
O autor da rotina original é o Orlei e está aqui:
http://www.autolisp.com.br/autolisp/mod ... =0&thold=0
Vamos a rotina, que é o que interessa:
[lsp]
(princ "tDigite azpol p/ara iniciar ")
(defun c:azpol ()
(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 mostre (entsel "nMostre a Polyline <2d> : "))
(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 )
;; ACRESCENTEI ESTA LINHA ...
(command "text" pto1 2.50 0 PTO1)
;;
(command "osmode" padroes)
)
(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))
)
)
(setq COM1 (strcat COM1 LETRAT ))
(setq XL (1+ XL))
)
)
(defun RTD ()
(/ (* (angle A B) 180) Pi)
)
(defun DTR (AZIMUTE)
(* (/ AZIMUTE 180) Pi)
)
;==== fim===[/lsp]
Precisando de ajuda para desenvolver, aponte aqui onde estão as dúvidas e tentaremos esclarecer.
Estou postando aqui uma rotina para azimutar polilinhas ...
Coloquei aqui uma linha a mais, preenchendo então o X e o Y de cada ponto ...
O autor da rotina original é o Orlei e está aqui:
http://www.autolisp.com.br/autolisp/mod ... =0&thold=0
Vamos a rotina, que é o que interessa:
[lsp]
(princ "tDigite azpol p/ara iniciar ")
(defun c:azpol ()
(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 mostre (entsel "nMostre a Polyline <2d> : "))
(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 )
;; ACRESCENTEI ESTA LINHA ...
(command "text" pto1 2.50 0 PTO1)
;;
(command "osmode" padroes)
)
(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))
)
)
(setq COM1 (strcat COM1 LETRAT ))
(setq XL (1+ XL))
)
)
(defun RTD ()
(/ (* (angle A B) 180) Pi)
)
(defun DTR (AZIMUTE)
(* (/ AZIMUTE 180) Pi)
)
;==== fim===[/lsp]
Precisando de ajuda para desenvolver, aponte aqui onde estão as dúvidas e tentaremos esclarecer.
http://www.inf.ufpr.br/nldm07/progs/rtc4.zip
é um programinha que fiz uns tempos atraz, acho que te servirá
é um programinha que fiz uns tempos atraz, acho que te servirá
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
ae neyton, obrigado pelo programinha vai me ajudar bastante.
cara ja que estou falando contigo, só uma duvida...encontrei em outro forum uma rotina que necessita de sub-rotinas, vi que vc colocou os links, mas como devo proceder com essas sub-rotinas? é só copiar e colocar no final da principal ou tem algum segredo?
valew.
cara ja que estou falando contigo, só uma duvida...encontrei em outro forum uma rotina que necessita de sub-rotinas, vi que vc colocou os links, mas como devo proceder com essas sub-rotinas? é só copiar e colocar no final da principal ou tem algum segredo?
valew.
copia e cola... so isso...
de qual vc esta falando? para algumas delas eu compilei um VLX ou FAS, veja se nao ta nesta lista:
http://www.inf.ufpr.br/nldm07/progs/
de qual vc esta falando? para algumas delas eu compilei um VLX ou FAS, veja se nao ta nesta lista:
http://www.inf.ufpr.br/nldm07/progs/
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!