(defun c:32 () ;;; trasforma una o pił polilinee 3D in 2D... (setvar "cmdecho" 0) (setq lista-punti nil) (setq clay(getvar "clayer")) (princ "\n Seleziona le polilinee 3D... ") (setq gruppoide(ssget)) (setq i 0) (if gruppoide (progn (repeat (sslength gruppoide) (if (= (cdr(assoc 0 (entget (ssname gruppoide i)))) "POLYLINE")(vai6 (ssname gruppoide i))) (setq i(1+ i)) ) ))(princ) ) (defun vai6 (RF0) (setq lista-punti nil) (setq Ramo(entget RF0)) (setq 0ent0(entnext RF0)) (setq 0ent(entget 0ent0)) (setq 0entT(cdr(assoc 0 0ent))) (while (/= 0entT "SEQEND") (setq X(car (cdr(assoc 10 0ent)))) (setq Y(cadr (cdr(assoc 10 0ent)))) (setq Z(caddr (cdr(assoc 10 0ent)))) (setq lista-punti(cons (list X Y 0) lista-punti)) (setq 0ent0(entnext 0ent0)) (setq 0ent(entget 0ent0)) (setq 0entT(cdr(assoc 0 0ent))) ) (setq ent(entget RF0)) (setq piano(cdr(assoc 8 ent))) (command "_erase" RF0 "" ) (CreaPolilinea lista-punti) ) (defun CreaPolilinea (lista-vertici) (entmake (list (cons 0 "POLYLINE") (cons 8 piano) ;;;(cons 70 0) ;;; togliere questa riga se si vuole una poly2D ) ) (setq k 0) (repeat (length lista-vertici) (setq V(nth k lista-vertici)) (setq VX(car V)) (setq VY(cadr V)) (setq VQ(caddr V)) (entmake (list (cons 0 "VERTEX") (cons 8 piano) (cons 10 (list VX VY 0.00)) ;;; inserire 0.00 per la Z se si vuole una poly2D ;;;(cons 70 32) ;;; togliere questa riga se si vuole una poly2D ) ) (setq k(+ k 1)) ) (entmake (list (cons 0 "SEQEND") (cons 8 piano))) ) ;--------------------------------------------------------------------- (princ "\n ") (princ "\n Digitare 32 per lanciare il programma") (princ)