Estaqueamento

No forum autolisp, postei esta rotinazinha:


(defun c:est (/ ss dist ent comp compt
pt1 pt2 lay offset ang angp
)
(
tbn:error-init (list (list “cmdecho” 0) T))
(
vl-load-com)
(
prompt “nSelecione os objetos…n”)
(
setq ss (ssget ( (0 . “*LINE,~MLINE;ARC”)))
dist (getdist “Distância entre os pontos <20>:n”)
offset (getdist “nEntre com o tamanho da marca <1>“)
offset (if offset offset 1)
dist (if dist dist 20)
lay (getstring “qual o nome do layer? <0>“ t)
lay (if (/= lay “”) lay “0”)
)

(repeat (if ss (sslength ss) 0)
(
setq ent (ssname ss 0)
compt(vlax-curve-getDistAtParam ent
(vlax-curve-getEndParam ent))
pts nil
comp 0)
(
ssdel ent ss)
(
while (<= comp compt)
(
setq pt1 (vlax-curve-getPointAtDist ent comp)
ang (vlax-curve-getfirstderiv ent
(vlax-curve-getparamatdist ent comp))
ang (angle (0 0) ang)
angp (+ ang (/ pi 2))
pt2 (polar pt1 angp offset))
(
entmake (list (0 . “LINE”)
(
cons 8 lay)
(
cons 10 pt1)
(
cons 11 pt2)))
(
entmake (list (0 . “TEXT”)
(
cons 8 lay)
(10 0 0 0)
(
cons 40 offset)
(
cons 1 (rtos comp 2 2))
(
cons 50 ang)
(72 . 1)
(
cons 11 pt2)
(73 . 1)))
(
setq comp (if (and (< comp compt)
(
> (+ comp dist) compt))
compt
(+ comp dist)))))
(
tbn:error-restore ))


Ela desenha linhas e textos marcando a extensão percorrida em uma linha qualquer… tipo um estaqueamento, saca?
o Civil 3d faz isso muito melhor, claro, mas fica um exemplo… próximos passos: aplicar reactors às entidades para que, ao alterar a linha do eixo, as escatas mudem de lugar e marcar pontos notaveis, tipo, tangencia, curva…

4 comentários em “Estaqueamento”

  1. Neyton, onde foi que vc encontrou o tutorial sobre estaqueamento de 20 em 20 metros?
    Tem como colocar um "E" na frente dos números? Eu vi num vídeo do YouTube que o estaqueamento aparecei assim, mas falava sobre outro assunto.
    No aguardo e grato desde já.

  2. até onde eu sei, só é possível determinar a distância entre as estacas, isto é, fazê-lo marcar de 20 em 20 metros… já fazê-lo numerar 1+19.20 por exemplo…. não consegui…

    para nós isto significaria 39.20m ( com estaqueamento de 20 em 20 ) e para o civil 3d isso significa 119.20 metros…, percebe o que eu quero dizer?

Deixe um comentário

Carrinho de compras
Rolar para cima