Autore |
Discussione  |
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 04 dicembre 2010 : 11:42:58
|
ciao a tutti, sto scrivendo un lisp che deve leggere i file .dwg presenti in una directory per poi eseguire delle operazioni su ognuno di essi ad esempio
apri, zoom estensioni, stampa e chiudi file
ho iniziato a scrivere (SETQ PERCORSO "C:\\pippo\\pluto\\Desktop\\test\\") (setq elencofile (vl-directory-files PERCORSO nil 1))
il mio problema è quello di voler filtrare solo i file con estensione .dwg
c'è qualche funzione che lo fa? grazie bb
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 04 dicembre 2010 : 17:19:50
|
(vl-directory-files PERCORSO "*.dwg" 1) |
 |
|
Giuseppe Mauro
Amministratore

Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 04 dicembre 2010 : 18:02:47
|
Termi, dove posso trovare tutte le funzioni VL e VLAX? Nei doc che ho non se ne fa menzione  |
 |
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 04 dicembre 2010 : 18:07:02
|
| Messaggio inserito da Giuseppe Mauro
Termi, dove posso trovare tutte le funzioni VL e VLAX? Nei doc che ho non se ne fa menzione 
|
Dovresti trovare il tutto nell'help della documentazione per sviluppatori, almeno nella versione AutoCAD 2007-2008. Nella 2011 è questa:
http://docs.autodesk.com/ACD/2011/ITA/landing.html |
 |
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 29 dicembre 2010 : 16:30:58
|
ciao a tutti,
ho scritto questa routine che deve aprire, zommare e stampare i tutti i file dwg presenti in una directory, però c'è qualcosa che non mi funziona correttamente chi mi aiuta?
(vl-load-com) (defun c:st_el ()
(setq percorso (getstring "immetti percorso: ")
(setq Lista_dwg (vl-directory-files PERCORSO "*.dwg" 1))
(setq conta 0)
(foreach aa lista_dwg
(setq aa (vla-open (vla-get-documents (vlax-get-acad-object)) aa)) (vla-activate aa) (command "_zoom" "_e") ;;; (command "_plot" .......)
(command "_close" "_y")
(setq conta (+ conta 1)) )
);def
grazie bb |
 |
|
joseph
Utente Master

Regione: Lombardia
Prov.: Cremona
Città: Casalmaggiore
1884 Messaggi |
Inserito il - 29 dicembre 2010 : 21:18:35
|
| Messaggio inserito da Giuseppe Mauro
Termi, dove posso trovare tutte le funzioni VL e VLAX? Nei doc che ho non se ne fa menzione 
|
Guarda anche questi 2 files. Scarica allegato:
Elenco-VisualLISP_Functions.zip 172,29 KB
Scarica allegato:
VLR-VLA-VLAX-Implemented.zip 14,07 KB |
 |
|
Giuseppe Mauro
Amministratore

Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 31 dicembre 2010 : 14:28:50
|
grazie josh |
 |
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 06 gennaio 2011 : 00:55:45
|
ho letto gli allegati di Joseph e sono utilissimi, ma non riesco ancora ad inquadrare la soluzione. qualcuno di Voi ci ha provatro?
grazie bb |
 |
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 06 gennaio 2011 : 10:37:56
|
Uno dei metodi che risolve la situazione, è il seguente:
(defun c:st_el ()
(vl-load-com)
(setq percorso (getstring "immetti percorso: "))
(setq lista_dwg (vl-directory-files percorso "*.dwg" 1))
(foreach disegno lista_dwg
(setq nn (vla-open (vla-get-Documents (vlax-get-acad-object))
(strcat percorso "\\" disegno)
)
)
(vla-close nn :vlax-true)
)
)
Poi crei un lisp con i comandi che desideri:
(defun C:PIPPO ()
(command "_zoom" "e" "_plot" .....)
)
Carichi questo file con il comando APPLOAD --> gruppo di avvio e successivamente fai partire il lisp ST_EL. In ogni file aperto della cartella dei disegni partiranno i comandi specificati in PIPPO.LSP. Ricordati alla fine di rimuovere il file PIPPO.LSP dal gruppo di avvio, altrimenti ogni file aperto subirà lo stesso trattamento.
Il metodo non è il massimo dal punto di vista estetico ma funziona. |
 |
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 06 gennaio 2011 : 19:07:03
|
Piccola errata corrige al post precedente:
(vla-close nn :vlax-true) ;;; il file viene chiuso e salvato
(vla-close nn :vlax-false) ;;; il file viene chiuso e non salvato
Se devi solo zoomare e stampare, meglio la seconda scelta.
|
Modificato da - Terminator in data 06 gennaio 2011 21:13:37 |
 |
|
|
Discussione  |
|