Lisp »Tips 'n Tricks »Quota Z
QZ
Scrive nel disegno la coordinata Z di tutti i punti presenti su un layer.
;|
qz.lsp - 30 Maggio 2006
(C) 2006 by Claudio Piccini
http://www.cg-cad.com/
Scrive la coordinata Z di tutti i punti
presenti su un layer
|;
(defun myerror (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(ripVar)
(princ)
)
(defun salVar ()
(setq orto (getvar "orthomode"))
(setq snapp (getvar "osmode"))
(setq snm (getvar "snapmode"))
(setq piano (getvar "clayer"))
)
(defun ripVar ()
(command "_redraw")
(setvar "cmdecho" 1)
(setvar "osmode" snapp)
(setvar "snapmode" snm)
(setvar "orthomode" orto)
(setvar "clayer" piano)
(setvar "cecolor" "BYLAYER")
(setq *error* olderr)
(princ)
)
(defun C:QZ (/ olderr s1 nEnt
hT ; altezza testo
k ent l1 pl1
snapp snm orto piano
)
(setq olderr *error* *error* myerror)
(setvar "cmdecho" 0)
(salVar)
(setq hT (getvar "textsize"))
(command "osnap" "_node")
(setq s1 (entsel "\n Seleziona un punto di riferimento:"))
(setq ent (entget (car s1)))
(setq nomeLayer (cdr (assoc 8 ent)))
(setq s1 (ssget "X" (list (cons 8 nomeLayer))))
(setq nEnt (sslength s1))
(setq k 0)
(repeat nEnt
(setq ent (entget (ssname s1 k)))
(if (= "POINT" (cdr (assoc 0 ent)))
(progn
(setq l1 (assoc 10 ent))
(setq pl1 (cdr l1))
(command "_text" pl1 hT 0.0 (rtos (caddr pl1) 2 3))
)
)
(setq k (+ k 1))
)
(ripVar)
)
;;;eof
|
Test del Lisp
Per provare il lisp per prima cosa disegno un insieme di punti casuali nello spazio (in automatico con il lisp RPT3, vedi AutoLISP Tips & Tricks Volume I):
Command: rpt3
Valore del seme?
0
Quanti numeri?
100
Intervallo da 0 a?
1000
più grande è il numero e più sono distanziati i punti.
Quindi uso QZ; il lisp chiede di selezionare un punto qualsiasi (è attivo l'osnap NODE) indi legge la coordinata Z di tutti i punti presenti sul piano a cui appartiene il punto selezionato.
Infine scrive accanto al punto la coordinata Z (l'altezza del testo è letta, in automatico, dalla variabile di sistema TEXTSIZE):
Command: qz
Seleziona un punto di riferimento
Lisp »Tips 'n Tricks
Ultimo Aggiornamento_Last Update: 30 Maggio 2006
|