Newsgroup: it.comp.software.cad
Titolo: domanda banale sui vertici

Salve, scusate se la mia domanda sarà banale:
in Autocad 2000 come posso cancellare uno o più vertici (interni) da una
polilinea chiusa?
Questo per "semplificare" il tracciato della polilinea.
Grazie in anticipo.

 wrote in message
news:AsLl8.42096$%g7.13...@twister2.libero.it...

basta selezionare la plinea (senza chiamare alcun comando) per
evidenziare i 'grips'.
Poi click su un vertice e trascinalo nel successivo.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Soluzione poco pulita.
Considera che esiste un'opzione di edita polilinea che consente di
aggiungere vertici, toglierli, ecc.
Ciao Mario Scavroni

 wrote in message
news:a79k5s$hsg$1...@fe1.cs.interbusiness.it...

Se togli vertici ad una polilinea con pedit rischi di morire di 
vecchiaia prima...
a proposito: ma dov'è cancella vertici in pedit?
ciao


 > in Autocad 2000 come posso cancellare uno o piů vertici (interni) da una


 Altre idee??
capisco, intendi dire che le coordinate dei due vertici sovrapposti
vengono in pratica  memorizzate 2 volte.
Qui ci vorrebbe un lispino che cancelli dal databese della plinea tutti
i vertici dispari (o pari).
Chissà! 
Un appello al buon Emiliano emicad o ad Aniello Annunziata?
aloha


Prova questo programmino.
Ciao Claudio
;---------------------------------------------------------------------
;---------------------------------------------------------------------
(defun c:EV () ;;; elimina un vertice della polilinea.
(setvar "cmdecho" 0)
(setq lista-punti nil)
(setq lista-puntiZ nil)
(setq clay(getvar "clayer"))
(setq RF0(car(entsel "\n Seleziona la polilinea: ")))
(if RF0 (vai6))
(princ)
)
(defun vai6 ()
(if (or (= (cdr (assoc 0 (entget RF0))) "LWPOLYLINE")(= (cdr (assoc 0
(entget RF0))) "POLYLINE"))
(progn
(setq lista-punti nil)
(setq Xmin 100000000.00)
(setq Ymin 100000000.00)
(setq Xmax -100000000.00)
(setq Ymax -100000000.00)
(setq Ramo(entget RF0))
(if (= (cdr(assoc 0 Ramo)) "POLYLINE")
(progn
(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 Z) lista-punti))
(setq 0ent0(entnext 0ent0))
(setq 0ent(entget 0ent0))
(setq 0entT(cdr(assoc 0 0ent)))
(if (< X Xmin)(setq Xmin X))
(if (< Y Ymin)(setq Ymin Y))
(if (> X Xmax)(setq Xmax X))
(if (> Y Ymax)(setq Ymax Y))
)
)
)
(if (= (cdr (assoc 0 Ramo)) "LWPOLYLINE")
(progn
(setq lista-punti0(member (assoc 10 Ramo) Ramo))
(setq cont 0)
(repeat (/ (- (length lista-punti0) 1) 4)
(setq cod(nth cont lista-punti0))
(setq lista-punti(cons (list (cadr cod) (caddr cod) 0) lista-punti))
(if (< X Xmin)(setq Xmin X))
(if (< Y Ymin)(setq Ymin Y))
(if (> X Xmax)(setq Xmax X))
(if (> Y Ymax)(setq Ymax Y))
(setq cont(+ cont 4))
)
))
(initget (+ 1 2 128))
(setq Vpoli(getpoint "\n Seleziona il vertice da eliminare: "))
(setq Vpoli (list (car Vpoli) (cadr Vpoli)))
(setq kk 0)
(repeat (length lista-punti)
(setq E1(nth kk lista-punti))
(setq XY(list (car E1) (cadr E1)))
(if (not (equal XY Vpoli 0.0001))
(setq lista-puntiZ(cons E1 lista-puntiZ))
)
(setq kk(+ kk 1))
)
(setq lista-puntiZ(reverse lista-puntiZ))
(setq ent(entget RF0))
(setq piano(cdr(assoc 8 ent)))
(command "_erase" RF0 "" )
(CreaPolilinea lista-puntiZ)
))
)
;---------------------------------------------------------------------
(defun CreaPolilinea (lista-vertici)
(entmake (list
(cons 0 "POLYLINE")
(cons 8 piano)
(cons 70 8)
)
)
(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 VQ))
(cons 70 32)
)
)
(setq k(+ k 1))
)
(entmake (list (cons 0 "SEQEND") (cons 8 piano)))
)
;---------------------------------------------------------------------
(princ "\n Digitare EV per lanciare il programma")
(princ "\n <Copyright: ing. Claudio Granuzzo - 2002> ")
(princ)

 ha scritto nel messaggio
news:o0om8.13286$S52.3...@news2.tin.it...


1) Seleziona e copia quello che ti ho spedito a cominciare dalla riga:
;---------------------------------------------------------------------
2) apri un  nuovo file con NOTEPAD o WORDPAD e incolla quello che hai
copiato.
3) salvi con nome il file chiamandolo "EliminaVerticiPoly.lsp".
4) lanci AutoCAD, vai nel menų "Strumenti" (o "Tools"), poi clicchi su
"Carica Applicazioni" (o "Load Application") e vai a selezionare il file
"EliminaVerticiPoly.lsp", poi premi il tasto "Carica" ("Load").
5) alla riga di comando digita EV per lanciare il programma.
6) ti verrā chiesto di selezionare la polilinea e poi il vertice da
eliminare (per selezionare il vertice utilizza lo snap _Endpoint).
Ciao Claudio

 ha scritto nel messaggio
news:CVpm8.13900$S52.4...@news2.tin.it...


Pedit\Edit vertex
Ciao Mario Scavroni

Un appello al buon Emiliano emicad o ad Aniello Annunziata?
Sono chiamato in appello, e quindi ricompaio.
Secondo me non serve un Lisp, il comando Edita Polilinea, ha l'opzione
Vertex dalla quale si possono aggiungere e cancellare vertici, basta
solo muoversi all'interno della polòilinea.
A volte ciò può essere lungo ma è l'unica soluzione pulita.
Creare un Lsip che faccia ciò diventa molto difficile e lungo... ed
oltre tutto in questo periodo ho poco tempo, magari con calma, lo
farò, perchè parlando già mi è balenata in testa l'idea sul come fare!
Saluti, Aniello
-- 
Aniello Annunziata
Content Director Manager
www.cadlandia.com
aniello.a...@cadlandia.com
Per rispondermi in privato, togli NOGARBAGE dall'indirizzo