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
 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  

blubossa
Utente Senior



102 Messaggi

Inserito il - 30 marzo 2011 : 15:21:03  Mostra Profilo Invia a blubossa un Messaggio Privato  Rispondi Quotando
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

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 30 marzo 2011 : 16:41:56  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
Una cosa da nulla...
Torna all'inizio della Pagina

blubossa
Utente Senior



102 Messaggi

Inserito il - 30 marzo 2011 : 16:54:15  Mostra Profilo Invia a blubossa un Messaggio Privato  Rispondi Quotando
Messaggio inserito da Giuseppe Mauro

Una cosa da nulla...


si fa quel che si può
Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 30 marzo 2011 : 18:16:58  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2778 Messaggi

Inserito il - 30 marzo 2011 : 20:12:36  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
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

Torna all'inizio della Pagina

blubossa
Utente Senior



102 Messaggi

Inserito il - 01 aprile 2011 : 08:36:19  Mostra Profilo Invia a blubossa un Messaggio Privato  Rispondi Quotando
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


Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 01 aprile 2011 : 08:55:15  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
(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...
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2778 Messaggi

Inserito il - 01 aprile 2011 : 14:52:55  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
@Terminator

Ci mancherebbe... nessun problema, anzi...
Torna all'inizio della Pagina

blubossa
Utente Senior



102 Messaggi

Inserito il - 01 aprile 2011 : 18:26:51  Mostra Profilo Invia a blubossa un Messaggio Privato  Rispondi Quotando
grazie a tutti, c'è sempre da imparare da Voi

bb
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 0,81 secondi.