Cotar curvas de nivel

Você ainda não usa o civil 3d? ok, tudo bem, hehehe
E quando você quer cotar curvas de nível, como você faz? Usa o comando “text”?
aff… que tal agilizar isso um pouco?
Só pra exercitar um pouco:

mais…

(setq dc1:altura 1.0
dc1:estilo “ARIAL”
dc1:alin “mc”
dc1:layer “S-CURVA_TXT”)

(defun c:dc1 (/ tmp pt rot lst pt)
(
tbn:error-init nil)
(
if (progn
(initget 0 “S N”)
(
= “S” (getkword “\nQuer formatar o texto antes? <Sim, Não> [Não]”)))
(
setq tmp (getreal (strcat “\nQual a altua do texto? <” (rtos dc1:altura) “>”))
dc1:altura (if tmp tmp dc1:altura)

tmp (getstring (strcat “\nQual o estilo do texto? <” dc1:estilo “>”) t)
dc1:estilo (if (= tmp “”) dc1:estilo tmp )

tmp (initget 0 “L C R A M F TL TC TR ML MC MR BL BC BR”)
tmp (getkword (strcat “\nAplicar o alinhamneto [L,C,R,A,M,F,TL,TC,TR,ML,MC,MR,BL,BC,BR] <” dc1:alin “>”))
dc1:alin (if tmp tmp dc1:alin)

tmp (getstring (strcat “\nQual o layer do texto? <” dc1:layer “>”) t)
dc1:layer (if (= “” tmp) dc1:layer tmp)))

(while (progn (if lst (initget 128 “U”))
(
if (setq tmp (entsel (strcat “\nClique a linha no ponto onde a cota deve aparecer” (if lst ” [Undo]” “”))))
t
(= 7 (getvar “errno”))))
(
if (null tmp)
(
prompt “\nOps!”)
(
if (listp tmp)
(
if (member (dxf 0 (car tmp)) (“LINE””POLYLINE””LWPOLYLINE””SPLINE”))
(
setq pt (trans (cadr tmp) 1 0)
pt (vlax-curve-getClosestPointTo (car tmp) pt)
tmp (draw-text (itoa (fix (arred (caddr pt) 0)))
pt
dc1:layer

(rot-of-ucs (get-tan-of-pt (car tmp) pt))
dc1:altura
dc1:estilo
dc1:alin
)
lst (cons tmp lst))
(
prompt “\nEste elemento é inválido…”))
(
if (= tmp “U”) (progn (del-ent (car lst)) (setq lst (cdr lst)))))))
(
tbn:error-restore))

(defun arred (num dec /)
(
atof (rtos num 2 dec)))
(
defun rot-of-ucs (rot / rucs)
(
setq rucs (angle (0 0) ;ucs
(trans
(polar (trans (0 0) 1 0) rot 1) ;vetor wcs
0 1 ;WCS -> UCS
)))
(
if (and (>= rucs (/ pi 2)) (< rucs (* 3 (/ pi 2))))
(
+ rot pi)
rot))


Link(s) da(s) subrotina(s) usada(s):
tbn:error-init, dxf, draw-text, arred, rot-of-ucs, get-tan-of-pt, del-ent, tbn:error-restore

Pra usar é simples, tenhas as curvas de nível, claro, em 3d, senão nem adianta
e carrega esta lisp (e as demais dos com os links) e use, é bem simples!!

Tem preguiça de baixar cada lispezinha?, pegue logo o programa compilado, é só baixar e usar!!

11 comentários em “Cotar curvas de nivel”

  1. estes links não funcionam porque as subrotinas ja estão inseridas no programa…

    minha duvida é: eu salver os arquivos mas durante a execução eu tive o seguinte erro:

    Clique a linha no ponto onde a cota deve aparecer
    Error: no function definition: ENAME-OF

    (não sei o que isso significa…)

  2. estas sub-rotinas não tem link porque elas ja estão inseridas no texto da rotina principal…

    apos criar um arquivo .lsp com as rotinas citadas, eu tentei rodar a lisp e obtive o seguinte bug:

    Clique a linha no ponto onde a cota deve aparecer
    Error: no function definition: ENAME-OF

    o que será isso?

Deixe um comentário

Carrinho de compras
Rolar para cima