TuttoCAD Forum

TuttoCAD Forum
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Album Fotografico | Download | | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 1 - TuttoCAD Software
 AutoCAD
 Hatch - unire o dividere
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

cantacad
Utente Master



662 Messaggi

Inserito il - 12 gennaio 2012 : 11:21:55  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
Salve, avrei bisogno di eseguire alcune operazioni su una serie di tratteggi.
I tratterggi in questione rappresentano delle aree dove succede qualcosa.
Praticamente so che i tratteggi si possono tagliare rispetto ad una linea...io invece vorrei, rispetto ad una linea, ottenere due tratteggio nel caso partissi da uno solo.
Inoltre vorrei unire più tratteggi per avere una sola entità.
Sono possibili queste due operazioni?
Saluti

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2778 Messaggi

Inserito il - 12 gennaio 2012 : 14:18:20  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
Per dividere i tratteggi non credo esista, appena ho tempo posso provare a mettere giù qualcosa, mentre per unire prova questo lisp:


;; © Juan Villarreal 11.20.2011 ;;
;; massoc (Jaysen Long) ;;
;; Minor Modification by Jvillarreal ;;
;; Extracts info from list by key ;;
;; Found @ http://www.theswamp.org/index.php?topic=40149.0
(defun massoc (key alist / x nlist)
(foreach x alist
(if
(eq key (car x))
(setq nlist (cons x nlist))
)
)
(reverse nlist)
);defun
(defun c:MergeHatch ( / hentinfo ss i ent ent# seedpt# entinfo entinfo2 ent# seedpt# seedpts MergedHatchList)
(while (/= (cdr (assoc 0 hentinfo)) "HATCH")
(setq hentinfo (car (entsel "\nSelect Hatch Pattern to use:")))
(If hentinfo (setq hentinfo (entget hentinfo)) (princ "\nMissed. Try again.")))
(while (not ss) (princ "\nSelect hatch entities to merge:")(setq ss (ssget '((0 . "HATCH")))))
(setq MergedHatchList
(list (cons 0 "HATCH")
(cons 100 "AcDbEntity")
(assoc 8 hentinfo)
(cons 100 "AcDbHatch")
(assoc 10 hentinfo)
(assoc 210 hentinfo)
(assoc 2 hentinfo)
(assoc 70 hentinfo)
(assoc 71 hentinfo)
(cons 91 (sslength ss))
) i -1 seedpt# 0 ent# 0)
(repeat (sslength ss)
(setq n -1
entinfo (entget (ssname ss (setq i (1+ i))))
entinfo2 (member (assoc 92 entinfo) entinfo)
entinfo2 (reverse (cdr (member (assoc 75 entinfo2)(reverse entinfo2))))
ent# (+ ent# (cdr (assoc 91 entinfo)))
seedpt# (+ seedpt# (cdr (assoc 98 entinfo)))
seedpts (append seedpts (cdr (member (assoc 98 entinfo) entinfo)))
MergedHatchList (append MergedHatchList entinfo2)
)
(entdel (ssname ss i))
)
(setq MergedHatchList (subst (cons 91 ent#)(assoc 91 MergedHatchList) MergedHatchList)
MergedHatchList
(append MergedHatchList
(append
(reverse (cdr (member (assoc 98 hentinfo)(reverse (member (assoc 75 hentinfo) hentinfo)))))
(cons (cons 98 seedpt#) seedpts))))
(if (= (cdr (assoc 71 hentinfo)) 1)(setq MergedHatchList (append MergedHatchList '((-3 ("ACAD" (1010 0.0 0.0 0.0)))))))
(entmake MergedHatchList)
(setq ent (entlast))
(if (= (cdr (assoc 71 hentinfo)) 1)
(mapcar
'(lambda (x / entlist)
(setq entlist (entget (cdr x)))
(entmod (subst (cons 330 ent) (assoc 330 entlist) entlist))
)
(massoc 330 MergedHatchList)
)
)
)
(defun c:MH () (c:MergeHatch))
Torna all'inizio della Pagina

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 12 gennaio 2012 : 14:50:03  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
bello !
grazie GP
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2778 Messaggi

Inserito il - 12 gennaio 2012 : 15:22:55  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
Prego.

Però il lisp ha i suoi difettucci, vedi la discussione nel link al suo interno.

Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 13 gennaio 2012 : 07:36:22  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
uhm, mi sembra che abbia fatto quello che mi serviva fare...casomai andrò a leggermi gli effetti collaterali...
terrò d'occhio questa discussione per eventuali miracoli per la divisione degli hatch, intanto grazie
Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 13 gennaio 2012 : 08:50:37  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
Beh ma per dividerlo, basta semplicemente copiare il tratteggio su se stesso e una volta tagli la parte a dex della linea e successivamente quella a sx della linea.

Cosa molto piu complessa se hai aree completamente integrate (tipo un rettangolo che vuoi scorporare), ma il metodo funziona uguale.
La cosa complicata e' farlo fare via lisp, credo
Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 14 gennaio 2012 : 14:27:56  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
Si in effetti ho sempre fatto così, ma dato che ogni domanda ha risvolti inaspettati, chiedo sempre quando mi pare di effettuare una procedura "barbara"...pensa te facevo giusto ha ha
Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 14 gennaio 2012 : 18:54:10  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
Canta, il "giusto" o lo "sbagliato", con Autocad non esiste.
Esistono "infilate" di comandi piu veloci e meno veloci.
Comunque capisco la logica del chiedere e la approvo in toto.
Dopo 24 anni di Autocad, quanche giorno fa, chiedendo, ho imparato una cosa nuova, assolutamente inaspettata.
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 4,86 secondi.