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
 AutoLISP
 inserisci blocchi automatico

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Faccine
Felice [:)] Davvero Felice [:D] Caldo [8D] Imbarazzato [:I]
Goloso [:P] Diavoletto [):] Occhiolino [;)] Clown [:o)]
Occhio Nero [B)] Palla Otto [8] Infelice [:(] Compiaciuto [8)]
Scioccato [:0] Arrabbiato [:(!] Morto [xx(] Assonnato [|)]
Bacio [:X] Approvazione [^] Disapprovazione [V] Domanda [?]
Seleziona altre faccine

    
 
   

V I S U A L I Z Z A    D I S C U S S I O N E
blubossa Inserito il - 30 marzo 2011 : 15:21:03
ciao a tutti,
ho una cartella con una libreria di blocchi che vorrei inserire in automatico in un disegno in cui ci sono dei testi che hanno lo stesso nome dei blocchi insomma:

vorrei fare una selezione a finestra dei testi, se è presente un blocco con lo stesso nome del testo il blocco viene inserito nel punto di inserimento del testo, in caso il blocco non è presente deve venire fuori un alert con il nome del blocco mancante e successivamente il programma continua ad analizzare gli altri testi fino ala fine del programma.

chi mi da una mano a mettere un po di ordine e a darmi qualche consiglio?


spero di essere stato chiaro.

grazie
bb
8   U L T I M E    R I S P O S T E    (in alto le più recenti)
blubossa Inserito il - 01 aprile 2011 : 18:26:51
grazie a tutti, c'è sempre da imparare da Voi

bb
GP Inserito il - 01 aprile 2011 : 14:52:55
@Terminator

Ci mancherebbe... nessun problema, anzi...
Terminator Inserito il - 01 aprile 2011 : 08:55:15
(prompt "\Selezionare i testi")
 (setq T_tot (ssget '((0 . "TEXT"))))
 (setq cont -1)
 (repeat (sslength T_tot)
  (setq primo_T (ssname T_tot (setq cont (1+ cont))))
  (setq DWGname (strcat (cdr (assoc 1 (entget primo_T))) ".DWG"))
  (if (not (findfile DWGname))
   (alert (strcat "Non trovato il file:  " DWGname))
  )
  (if (findfile DWGname)
   (progn
    (setq P_inser (cdr (assoc 10 (entget primo_T))))
    (command "_-INSERT" DWGname P_inser "1" "1" (/ (* (cdr (assoc 50 (entget primo_T))) 180.0) pi))
   )
  )
 )


chiedo scusa a GP se mi sono intromesso...
blubossa Inserito il - 01 aprile 2011 : 08:36:19
Messaggio inserito da GP

Prova così:

(prompt "\Selezionare i testi")
(setq T_tot (ssget '((0 . "TEXT"))))
(setq cont -1)
(repeat (sslength T_tot)
    (setq primo_T (ssname T_tot (setq cont (1+ cont))))
    (setq DWGname (strcat (cdr (assoc 1 (entget primo_T))) ".DWG"))
    (if (not (findfile DWGname)) (alert (strcat "Non trovato il file:  " DWGname)))
    (if (findfile DWGname)
	(progn
	    (setq P_inser (cdr (assoc 10 (entget primo_T))))
	    (command "_-INSERT" DWGname P_inser "1" "1" "1")
	)
    )
) 


cia GP,
funziona alla grande

e se volessi fare inserire il blocco con la stesso angolo di rotazione del testo?

cosa devo estrarre dal db dell'oggetto testo? per poi utilizzarlo nell'agolo di inserimento del blocco....

grazie
bb








Chiaramente i dwg devono risiedere in cartelle del percorso di AutoCAD


GP Inserito il - 30 marzo 2011 : 20:12:36
Prova così:

(prompt "\Selezionare i testi")
(setq T_tot (ssget '((0 . "TEXT"))))
(setq cont -1)
(repeat (sslength T_tot)
    (setq primo_T (ssname T_tot (setq cont (1+ cont))))
    (setq DWGname (strcat (cdr (assoc 1 (entget primo_T))) ".DWG"))
    (if (not (findfile DWGname)) (alert (strcat "Non trovato il file:  " DWGname)))
    (if (findfile DWGname)
	(progn
	    (setq P_inser (cdr (assoc 10 (entget primo_T))))
	    (command "_-INSERT" DWGname P_inser "1" "1" "1")
	)
    )
) 


Chiaramente i dwg devono risiedere in cartelle del percorso di AutoCAD

Giuseppe Mauro Inserito il - 30 marzo 2011 : 18:16:58
Dai un ssget dei testi con filtro testo, e crei quindi un set di selezione che contiene solo i testi
Poi fai leggere la tua dir, ricavandone i nomi dei blocchi (che saranno dwg immagino) e li immagazzini in un altra lista
Se invece sono blocchi presenti nel disegno, devi sfogliarli con tblsearch e tblnext

Poi con un ciclo sfogli una per una le entita' contenute nella lista dei testi, con una cosa del tipo

setta contatore=0

Ciclo:
Ad entita' num.0
fai estrarre il valore del testo
Se esiste (blocco con nome = testo)
(progn
inserisci (blocco = valore testo) nel punto (valore coord inserimento entita' num 0)
cancella (nome entita' num.0)
)
Se non esiste (blocco con nome = testo) (alert "Il blocco relativo al nome:" valoretesto " non esiste")
setta contatore = contatore +2
chiusura ciclo

Ovviamente il tutto e' estremamente schematico, ma almeno hai un canovaccio su cui lavorare
blubossa Inserito il - 30 marzo 2011 : 16:54:15
Messaggio inserito da Giuseppe Mauro

Una cosa da nulla...


si fa quel che si può
Giuseppe Mauro Inserito il - 30 marzo 2011 : 16:41:56
Una cosa da nulla...

TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,33 secondi.