Correction elevation (Z) of polyline.

Correction elevation (Z) of polyline.

neam
Collaborator Collaborator
411 Views
4 Replies
Message 1 of 5

Correction elevation (Z) of polyline.

neam
Collaborator
Collaborator

Hi everyone
How to correction elevation (Z) of polyline:

Z=980.00112108 ==> 980.00

Z=939.99999986 ==> 940.00

0 Likes
412 Views
4 Replies
Replies (4)
Message 2 of 5

rolisonfelipe
Collaborator
Collaborator

edit elevation

rolisonfelipe_0-1717301314838.png

 

Message 3 of 5

neam
Collaborator
Collaborator

thanx for reply dear rolisonfelipe

I have a lot of polylines with different elevation that I wanted to do with Lisp.

Message 4 of 5

rolisonfelipe
Collaborator
Collaborator

The process will be the same, but you will have to enter the elevation for each line

 

(defun c:ChangeElevation (/ ss elevation i ent dataEnt)
(setq elevation (getreal "\nDigite a nova elevação: ")) ; Solicita ao usuário a nova elevação
(setq ss (ssget)) ; Solicita ao usuário que selecione os objetos
(if ss
(progn
(setq i 0)
(while (< i (sslength ss))
(setq ent (ssname ss i))
(setq dataEnt (entget ent))
(if (assoc 38 dataEnt)
(progn
(setq dataEnt (subst (cons 38 elevation) (assoc 38 dataEnt) dataEnt)) ; Altera a elevação
(entmod dataEnt) ; Aplica a alteração
)
(progn
(setq dataEnt (append dataEnt (list (cons 38 elevation)))) ; Adiciona elevação se não existir
(entmod dataEnt) ; Aplica a alteração
)
)
(setq i (1+ i))
)
)
)
(princ)

)

 

 

good job for you

Message 5 of 5

neam
Collaborator
Collaborator

may be this:

(defun c:Test ( / int sel ent)
(setq int 0)
(setq sel (ssget "_:L" '((0 . "LWPOLYLINE"))))
(setq m (sslength sel))
(repeat m
(setq ent (ssname sel int))
(setq obj (vlax-ename->vla-object (ssname sel int)))
(setq el (vla-get-elevation obj))
(setq ele (atoi (rtos el 2 2)))
(vlax-put obj 'Elevation ele)
(setq int (1+ int))
)
(princ)
)

0 Likes