Unire diverse linee trasformandole in polilinee con un solo comando

rotten80

Utente poco attivo
Professione: geom
Software: autocad
Regione: veneto
#1
Buon giorno a tutti!
chiedo aiuto a qualche anima pia che possa risolvere il mio problema o darmi un consiglio !

devo unire diverse linee e trasformarle in polilinee, per fare ciò uso il comando _MPEDIT che mi richiede di:
- selezionare gli oggetti,
- convertirli in archi o polilinee,
- inserire una opzione di comando tipo JOIN,
- e una distanza di tolleranza entro il quale raccordare le linee.
che ripetuto per centinaia di volte mi sta facendo impazzire :)

esiste la possibilità di creare un automatismo tipo lisp (o altro) che mi permetta di:
- lanciare il comando,
- selezionare gli oggetti
e dando il comando invio (tasto destro mause) inserisca l'opzione join e la variabile di raccordo = 0 in automatico?

Grazie per la vostra attenzione
Rotten80
 

giulio1962

Utente poco attivo
Professione: disegnatore
Software: cad
Regione: Marche
#2
Buon giorno a tutti!
chiedo aiuto a qualche anima pia che possa risolvere il mio problema o darmi un consiglio !
Ma hai provato il comando "UNISCI"?
(Il comando unisce diverse linee unite in un unica polilinea 3d)
Quali sono i problemi che hai ha usare questo comando?
 
Ultima modifica da un moderatore:

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#3
(command "pedit" "_m" "_all" "" "_Y" "_J" 1 "")
1 è la tolleranza
tutte le entità vengono selezionate e trasformate in polilinee
se invece vuoi selezionarle diventa
(command "pedit" "_m" (ssget) "" "_Y" "_J" 1 "")
Creati un bottone e associagli questo comando o ti crei un lisp.
 

rotten80

Utente poco attivo
Professione: geom
Software: autocad
Regione: veneto
#4
o-O il comando "UNISCI" l'ho provato 40.000 volte lo giuro non ha mai funzionato fino a oggi...............
tanto che ho provato a leggere qualche manuale di lisp dalla dsperazione!
con il sudore della fronte ero quasi arrivato a questa soluzione:
(command "pedit" "_m" (ssget) "" "_Y" "_J" 1 "")

ma credo che mi manchi tutta la parte per creare il file lisp con la sintassi giusta!

in ogni caso vi ringrazio vado di "unisci" come non ci fosse un domani :)
 

lattu

Moderatore Autocad
Staff Forum
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
#5
quello che ti ha suggerito rpor ha già la sintassi giusta. sai come creare un comando personalizzato?
la variabile di raccordo non è il raggio di raccordo ma è la distanza che c'è tra una linea e l'altra. se le tue linee sono attaccate va bene 0 ma se sono staccate di svariate misure devi inserire un valore che ti unisca tutte le linee entro tale distanza
 

Cristallo

Utente Standard
Professione: Leggo e confronto
Software: Lettura critica
Regione: Fuori dalla cerchia
#6
in alternativa cerca il tool PolyTools di Lee Mac, che tra le altre cose hai un join pline avanzato
 

rotten80

Utente poco attivo
Professione: geom
Software: autocad
Regione: veneto
#7
in realtà no! non so come realizzare un comando personalizzato o almeno non credo di intendere quello che mi dite!
in ogni caso grazie mille per l'aiuto e per aver stimolato la mia curiosità!
vado a studiare un po di lisp e un po di "comando personalizzato"
 

lattu

Moderatore Autocad
Staff Forum
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
#8
i comandi li crei e li gestisci da _cui (oppure strumenti > personalizza interfaccia utente)
giusto per darti una pista: crei un nuovo comando, assegni una nuova icona e inserisci la macro personalizzato, poi sposti il comando nelle barre strumenti.
 

rotten80

Utente poco attivo
Professione: geom
Software: autocad
Regione: veneto
#9
.... ok non ci arrivo.......
- il comando "UNISCI" è utile se ho piu linee ma se devo convertirne una sola devo usare un altro comando.
- ho provato con la macro "^C^C_.PEDIT M \ S U 0" ma da quello che ho capito non posso selezionare più di una linea alla volta

il comando che fa per me è "_mpedit" che scelga una o più linee me le converte e le unisce indistintamente
credo dovrei fare un lisp con queste istruzioni:

(defun c:ROTTEN ()
(command "_MPEDIT" (ssget) "" "Y" "J" 0 "")
)

Ma non vuole riconoscere il comando "_MPEDIT" o_O perchè?
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#10
.... ok non ci arrivo.......
- il comando "UNISCI" è utile se ho piu linee ma se devo convertirne una sola devo usare un altro comando.
- ho provato con la macro "^C^C_.PEDIT M \ S U 0" ma da quello che ho capito non posso selezionare più di una linea alla volta

il comando che fa per me è "_mpedit" che scelga una o più linee me le converte e le unisce indistintamente
credo dovrei fare un lisp con queste istruzioni:

(defun c:ROTTEN ()
(command "_MPEDIT" (ssget) "" "Y" "J" 0 "")
)

Ma non vuole riconoscere il comando "_MPEDIT" o_O perchè?
Ti sei perso in un bicchiere d'acqua; mpedit si ottiene con pedit multiple
(defun c:ROTTEN ()
(command "pedit" "_m" (ssget) "" "_Y" "_J" 0 "")
)
 

rotten80

Utente poco attivo
Professione: geom
Software: autocad
Regione: veneto
#11
Mittico!!!!
ora parte pedit seleziono le linee e poi va in errore perche non capisce "_M"
datemi una spintina finale vi prego!!!

NO OK CORRETTO FUNZIONA!!!

alla fine pero mi da :
comando: nil

cosa vuol dire?
 
Ultima modifica:

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#12
Nulla.
Se non vuoi il messaggio basta aggiungere (princ) prima dell'ultima parentesi a chiudere.
defun c:ROTTEN ()
(command "pedit" "_m" (ssget) "" "_Y" "_J" 0 "")
(princ)
)
 

rotten80

Utente poco attivo
Professione: geom
Software: autocad
Regione: veneto
#13
ottimo! funziona alla grande
vi ringrazio tutti per l'auito siete stati cortesi e gentili!
alla prossima
Rotten80