cg-Cad

Lisp »Tips 'n Tricks »Funzioni varie (1)

G2r() converte un angolo da gradi in radianti

(defun g2r (ang)
   (* pi (/ ang 180.0))
)
Esempio:
Command: (* pi (/ 30 180.0))
0.523599

R2g() converte un angolo da radianti in gradi.

(defun r2g (ang)
   (/ (* ang 180.0) pi)
)
Esempio:
Command: (/ (* 0.523599 180) pi)
30.0

Sel() mostra sulla linea di comando la lista dei valori di un'entità linea.

(defun c:sel ( / s1 cod ent)
   (setq s1 (entsel "\n Seleziona una linea: "))
   (setq cod (car s1))
   (setq ent (entget cod))
   (princ ent)
   (princ)
)

InsTxt() inserisce nel disegno un testo generico, la funzione chiede punto di origine, altezza e angolo di inserimento.

(defun c:InsTxt ( / p1 alt ang txt)
   (setq p1 (getpoint "\n Origine del testo:"))
   (setq alt (getdist "\n Altezza carattere: " p1))
   (setq ang (getorient "\n Angolo di rotazione: "))
   (setq ang (r2g ang)) ;usa la funzione r2g()
   (setq txt (getstring "\n Testo: "))
   (command "_text" p1 alt ang txt)
   (princ)
)

Llist() mostra gli elementi che compongono una lista.

(defun llist ( L1 / lung k e1)
   (setq lung (length L1))
   (setq k 0) ;contatore
   (repeat lung ;cicla lungo la lista
      (setq e1 (nth k L1)) ;|estrae l'elemento
                             e1(k) della lista L1|;
      (princ e1)
      (princ " ")
      (setq k (+ k 1))
   )
   (princ)
)
Creo la lista L1:
Command: (setq L1 (list 1.2 "abc" 3))
Eseguo la funzione:
Command: (llist L1)
E questo è il risultato:
Command: (llist L1)
1.2 abc 3

Lisp »Tips 'n Tricks