Newsgroup: it.comp.software.cad
Titolo: perimetro retino solido

C'è il modo di recuperare la polilinea di perimetro da un retino solido
creato precedentemente senza mantenere il contorno?
Grazie a chi risponderà.
CB

ehm scusate con ACAD 14 o 2000!
Grazie.
CB

Grazie ugualmente per il consiglio, ho molti retini solidi, il risultato che
vorrei ottenere è estrarre dal retino in questione il suo perimetro per il
calcolo di un'area.
Pensavo che esistesse una modalità di editazione o una lisp.
CB

> Pensavo che esistesse una modalità di editazione o una lisp.
Esiste questo Lispino che ho scritto tempo fa.
Te ne allego 2 copie
1) parte con il comando ' contorno' e genera il bordo del retino che
selezioni
2) parte con il comando 'contorno' e genera il contorno del retino quando
questo ha un'isola generata da quattro vertici (per es. un testo)
verso la fine del secondo LISP è evidenziaa una riga che puoi modificare
secondo i vertici dell'isola che incontri.
Ciao Massimo Ghio
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BOF
contorno;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:CONTORNO (/)
  (COMMAND "CMDECHO" "0")
  (COMMAND "_UNDO" "_M")
  (SETQ OLDAUNITS (GETVAR "AUNITS"))
  (SETVAR "AUNITS" 3)
  (SETQ OLDSNAP (GETVAR "OSMODE"))
  (SETVAR "OSMODE" 0)
  (setq RETINI (ssget (list (cons 0 "HATCH"))))
     ;seleziona oggetti validi
  (if RETINI
    (progn
      (setq lung (sslength RETINI))
      (setq cont 0)
      (setq n 0)
      (repeat lung
 (setq n (+ 1 n))
 (setq ent (ssname RETINI cont))
 (SETQ P1 (ENTGET ENT))  ;DATI
 (setq listpt nil)  ;LISTA VERTICI
 (setq counter -1)
 (repeat (length p1)
   (setq counter (1+ counter))
   (if (= (car (nth counter p1)) 10)
     (setq
       listpt (append
         listpt
         (append (list (append (CDR (nth counter p1)))))
       )
     )
   )    ;END IF
 )
      )     ;end_repeat (LENGTH P1)
      (setq cont (+ 1 cont))
      (setq a 2)
      (COMMAND "_PLINE" (nth 1 listpt))
      (Repeat (- (length listpt) 3)
 (command (nth a listpt))
 (setq a (1+ a))
      )
      (command "_C")
    )     ;END PROGN
  )     ;END IF
  (SETVAR "AUNITS" OLDAUNITS)
  (SETVAR "OSMODE" OLDSNAP)
)     ;END DEFUN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EOF
contorno;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BOF
contorno4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:CONTORNO4 (/)
  (COMMAND "CMDECHO" "0")
  (COMMAND "_UNDO" "_M")
  (SETQ OLDAUNITS (GETVAR "AUNITS"))
  (SETVAR "AUNITS" 3)
  (SETQ OLDSNAP (GETVAR "OSMODE"))
  (SETVAR "OSMODE" 0)
  (setq RETINI (ssget (list (cons 0 "HATCH"))));seleziona oggetti validi
  (if RETINI
    (progn
      (setq lung (sslength RETINI))
      (setq cont 0)
      (setq n 0)
      (repeat lung
 (setq n (+ 1 n))
 (setq ent (ssname RETINI cont))
 (SETQ P1 (ENTGET ENT));DATI
 (setq listpt nil);LISTA VERTICI
 (setq counter -1)
 (repeat (length p1)
   (setq counter (1+ counter))
   (if (= (car (nth counter p1)) 10)
       (setq listpt (append listpt (append (list (append (CDR (nth counter
p1)))))))
       );END IF
     );end_repeat (LENGTH P1)
 (setq cont (+ 1 cont))
 (setq a 2)
 (COMMAND "_PLINE"  (nth 1 listpt))
 (Repeat (- (length listpt) 7);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,7 è
valido per quattro vertici 8 per cinque 9 per sei ect.
   (command (nth a listpt))
   (setq a (1+ a))
   )
 (command "_C")
 );END REPEAT LUNG
      )     ;END PROGN
    )     ;END IF
  (SETVAR "AUNITS" OLDAUNITS)
  (SETVAR "OSMODE" OLDSNAP)
  )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EOF
contorno4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 Esiste questo Lispino che ho scritto tempo fa.
Grazie mille ho provato il primo e fa proprio al caso mio.
Sei stato gentilissimo e rapidissimo nella tua risposta.
Buon lavoro.
CB