- Visualizzare librerie di blocchi da file "txt"

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

 Tutti i Forum
 Autocad
 Autolisp
 Visualizzare librerie di blocchi da file "txt"
 Nuova Discussione  Rispondi Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Pagina Successiva
Autore Discussione Precedente Discussione Discussione Successiva
Pagina: di 2

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 05/01/2010 : 18:42:31  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
A breve verrà pubblicata una funzione in Autolisp che crea un menù ad icona, quelli per le librerie dei simboli.
E' valida per chi ha già delle slide ed i blocchi DWG come me per esempio.
Vengono memorizzati in un file TXT le slide ed i nomi dei blocchi dove il programma legge il tutto per visualizzare tale librerie.
Spiegherò meglio in una pagina del sito e se per caso qualcuno ha bisogno di alcuni approfondimenti rimango a disposizione.
Grazie.

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 07/01/2010 : 17:59:02  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Pubblicata la funzione per la creazione di librerie di blocchi al seguente indirizzo:

http://www.lucioghirardo.it/sezionecad/creamenuicona.asp

Rimango a diposizione per eventuali chiarimenti e modifiche/migliorie.
Torna all'inizio della Pagina

zenobio
Nuovo Utente

Prov.: Venezia
Città: San Michele al Tagliamento


10 Messaggi

Inserito il - 17/01/2011 : 17:23:29  Mostra Profilo Invia a zenobio un Messaggio Privato  Rispondi Quotando
ciao ho trovato molto interessante questa tua lisp ed ho cercato di modificarla purtroppo ho dei dubbi e delle lacune di competenza non riuscendo a caricare il file con le problematiche te lo invio per mail
mi potresti aiutare per cortesia
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 17/01/2011 : 22:17:07  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
ciao,
intanto fai subito questo e poi riprova:

((= (nht 3 variabili) "70A.sld") (setq mostra "70A.sld"))
((= (nht 3 variabili) "120A.sld") (setq mostra "120A"))
((= (nht 3 variabili) "150A.sld") (setq mostra "150A"))
((= (nht 3 variabili) "200A.sld") (setq mostra "200A"))

su queste righe invece di scrivere "nth" hai scritto "nht" :)))
ci ho messo anch'io qualche minuto per rendermene conto :))

Intanto ti do questa risposta, poi semmai ci risentiamo.

Ma usi Zwcad??

Io al momento ho dovuto verificare il codice con Autocad che ha l'applicativo del Visual Lisp.
Comunque la mia che è un pò più complessa nella parte di gestione inserimenti funziona con ZWcad... l'ho fatta apposta per Zwcad.

Ciao.

Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 17/01/2011 : 22:22:47  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
poi è meglio mettere così:
(cond
((= (strcase (nth 3 variabili)) (strcase "70A.sld")) (setq mostra "70A.sld"))
((= (strcase (nth 3 variabili)) (strcase "120A.sld")) (setq mostra "120A"))
((= (strcase (nth 3 variabili)) (strcase "150A.sld")) (setq mostra "150A"))
((= (strcase (nth 3 variabili)) (strcase "200A.sld")) (setq mostra "200A"))
)

Ma sei sicuro che funziona il delay all'interno del comando vslide?
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 17/01/2011 : 22:29:56  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
e ancora...
su
(command "_vslide" mostra "delay" 200000 "") oppure
(command "_vslide" (strcat dir "\\" mostra) "delay" 200000 "")

o "mostra" è completo di tutta la directory o setti il percorso sui percorsi di ricerca di Autocad/Zwcad
Ciao e chiudo.
Torna all'inizio della Pagina

zenobio
Nuovo Utente

Prov.: Venezia
Città: San Michele al Tagliamento


10 Messaggi

Inserito il - 18/01/2011 : 08:58:18  Mostra Profilo Invia a zenobio un Messaggio Privato  Rispondi Quotando
grazie ai tuoi consigli per il momento sono riuscito a vedere le slide, ho modificato così:
(progn
(if (= (nth 2 variabili) (strcase "VSLIDE"))
(progn
(cond
((= (strcase (nth 3 variabili)) (strcase "70A.sld")) (setq mostra "70A.sld"))
((= (strcase (nth 3 variabili)) (strcase "120A.sld")) (setq mostra "120A.sld"))
((= (strcase (nth 3 variabili)) (strcase "150A.sld")) (setq mostra "150A.sld"))
((= (strcase (nth 3 variabili)) (strcase "200A.sld")) (setq mostra "200A.sld"))
); Fine COND
(command "_vslide" mostra "delay" 3000 "regen")
) ; Fine condizione
) ; Fine IF
) ; Fine progn
) ; Fine IF principale


e funziona
ho omesso di indicare "dir" visto che per riuscire a far leggere la *.slb ho impostato il percorso in Zwcad.

è proprio per il fatto che anche tu usi Zwcad che mi sono permesso di importunarti, io non è molto che lo uso ma ho già notato che ci sono alcune diversità rispetto ad autocad soprattutto nella gestione di inserimento dei blocchi ma di questo eventualmente ne discuteremo + avanti se non ti disturba.

una cosa vorrei chiederti subito si riesce a far partire il comando anche selezionandolo dalla box-list?
per il momento a me funziona solo se selezionando l'icona

ora cerco di vedere se riesco ad andare avanti con questo lisp-patchwork che sto componendo spero che non ti spiaccia aiutarmi

Modificato da - zenobio in data 18/01/2011 09:17:16
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 18/01/2011 : 13:31:46  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Bene, dalla list-box al momento selezioni e poi clicchi "ok"
Torna all'inizio della Pagina

zenobio
Nuovo Utente

Prov.: Venezia
Città: San Michele al Tagliamento


10 Messaggi

Inserito il - 20/01/2011 : 19:49:00  Mostra Profilo Invia a zenobio un Messaggio Privato  Rispondi Quotando
ciao
sono riuscito ad impostare la lisp in modo che mi legga la variabile che non sia "vslide" ma sembra che la tratti come testo e
non come comando infatti me la scrive nella riga di comando ma non reindirizza alla subroutine che ho aggiunto.

Comando: "D:\\LZ\\Lsp\\Prove\\2"
Comando: fin0
Comando: _undo
Impostazioni Correnti: Auto = ON, Control = TUTTO
Annulla: Contrassegno/inDietro al contrassegno/iniZia impostazione/Fine impostazione/COntrollo/Auto/: _end

ti invio il file a mezzo mail non riesco a caricarlo mi da sempre errore

il comando da list-box non so perchè non va non ho modificato nulla all'inizio della lisp e nel dcl solo la grandezza delle slide

Modificato da - zenobio in data 20/01/2011 19:54:18
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 24/01/2011 : 15:42:01  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Ciao,
intanto
(setq funz (getstring (nth 2 variabili)))
(funz)
richiama la funzione "funz" che non vedo, se "funz" è all'interno di un altro file lisp devi fare in modo che siano caricati tutti i file ".lsp"
La funzione Fin0 deve essere chiamata dalla libreria?
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 24/01/2011 : 21:34:53  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Ciao,
ho provato ma si blocca... va in errore, perchè non trova la funzione "funz"
hai detto che non riesci a caricarlo, ma subito quando avvii la funzione o dopo aver selezionato l'icona?

Hai ragione sul dire che selezionando sull'elenco e poi cliccare su "Ok" non funziona... controllo su quello che ho al lavoro e poi ti dico.
Ciao.
Torna all'inizio della Pagina

zenobio
Nuovo Utente

Prov.: Venezia
Città: San Michele al Tagliamento


10 Messaggi

Inserito il - 25/01/2011 : 07:56:53  Mostra Profilo Invia a zenobio un Messaggio Privato  Rispondi Quotando
Ciao
spero di riuscire a spiegarmi:

-"funz" non è una ruotine specifica ma quello che imposto con
(= (nth 2 variabili) (strcase (getstring (nth 2 variabili))))
(setq funz (getstring (nth 2 variabili)))
e che viene definito nella terza colonna del file *.txt (es. fin0, Quofi, elinf ecc.) ossia delle sotto lisp
che per amor di brevità ho, per il momento, omesso di inserire nella lisp modificata dove ho copiato solo fin0 per vedere se funziona;

-per riuscire a caricarlo lo carico solo che il caricamento avviene in due fasi
la prima caricare la lisp (load "D:\\miadir\\apriicon.LSP") o inserirlo nel caricamento automatico dell'avvio e
poi ^C^C(setq dir "D:\\miadir");apriicon;
ho provato a fare un "bottone" con un comando unico ^c^c(load "D:\\miadir\\apriicon.LSP");(setq dir "D:\\miadir");apriicon;
per caricare la lisp solo quando serve ma non sembra funzionare.


Modificato da - zenobio in data 25/01/2011 07:57:15
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 25/01/2011 : 09:04:46  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Ciao,
allora.... funz scritta (funz) richiama una funzione che si chiama funz, quindi se non è una funzione devi togliere quella riga.

Ho provato a modificare la macro assegnata ad un mio pulsante esistente e ha funzionato, nel mio caso è così:
(load "t:\\libsimazw\\autolisp\\caricalibrerie.lsp");(setq dir "t:/libsimaZW/sld/Morsetti1");apriicon;

Ho guardato per quanto riguarda la selezione dalla lista-box più tasto ok ed effettivamente manca una riga...
dove ci sono tutte le righe con (action_tile "....."), nella parte finale dovresti avere queste righe,

(action_tile "list" "(rigasel_ok)")
(action_tile "next" "(next_ok)")
(action_tile "prev" "(prev_ok)")
(action_tile "cancel" "(cancel)")

diventano:

(action_tile "list" "(rigasel_ok)")
(action_tile "next" "(next_ok)")
(action_tile "prev" "(prev_ok)")
(action_tile "accept" "(progn (leggisett_ok sld))")
(action_tile "cancel" "(cancel)")

mancava la riga relativa all'accept che riguarda il pulsante ok.

chiedo perdono della mancanza, appena posso devo cambiare il file scaricabile dal sito.
Ciao.
Torna all'inizio della Pagina

zenobio
Nuovo Utente

Prov.: Venezia
Città: San Michele al Tagliamento


10 Messaggi

Inserito il - 25/01/2011 : 19:31:09  Mostra Profilo Invia a zenobio un Messaggio Privato  Rispondi Quotando
Ciao
grazie per i consigli e la pazienza
il primo ha funzionato alla grande
il secondo purtroppo no
non capisco di cosa tu ti scusi quando dopo aver messo a disposizione
di tutti una lisp così utile sei anche disponibile a dare consigli ed aiuto
a quelli come me che si permettono con scarse conoscenze di modificare una cosa che
di suo funziona
comunque come pensavo non sono riuscito a farmi capire per quanto riguarda funz proviamo
a vedere se cambiando il nome della variabile ci riesco
di seguito riporto le righe incriminate modificate

(if ;2
(= (nth 2 variabili) (strcase (getstring (nth 2 variabili)))) ;2 Condizione
;(prog
(setq PIPPO (getstring (nth 2 variabili)))
(PIPPO)
;)
) ;fine If 2

dove PIPPO in questo caso

[nth0]Finestre(Fin0)*[nth1]Finestra Catasto*[nth2]fin0

è fin0 comando che mi lancia le una lisp che aggiungo in fondo alla tua

(defun C:fin0 (/ larghezza primo secondo terzo quarto...............

il problema non è che non lo legga infatti a video vicino al puntatore
mi compare il quadratino del comando con dentro scritto fin0 nella riga di comando
però si va ad aggiungere dopo apriicon (apriiconfin0) e non succede niente

quasi quasi però visto che non abitiamo distanti ti vengo a trovare e a farmi fare
(pagando si intende) un corso accellerato [:D][:D]

alla prossima




Modificato da - zenobio in data 25/01/2011 19:59:40
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 26/01/2011 : 08:48:51  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Ciao,
allora...
su
(if ;2
(= (nth 2 variabili) (strcase (getstring (nth 2 variabili)))) ;2 Condizione
per essere sicuri dovresti mettere strcase su tutte e 2 le stringhe di confronto e quindi.
(if ;2
(= (strcase (nth 2 variabili)) (strcase (getstring (nth 2 variabili)))) ;2 Condizione

poi, scusa se te lo ridico... una parola scritta tra parentesi come "(pippo)" viene interpretato da lisp come eseguire la funzione (pippo), quindi devi togliere (pippo), tanto è già settata con
(setq PIPPO (getstring (nth 2 variabili))).

Per quanto riguarda il corso accellerato ci sarebbero un pò di problemi nel senso che tra a fine aprile dovrebbe (come data intendo) nascere il bimbo.
In più sono autodidatta e potrei insegnarti con dei metodi non molto corretti/migliori... poi vedi te.
Torna all'inizio della Pagina

zenobio
Nuovo Utente

Prov.: Venezia
Città: San Michele al Tagliamento


10 Messaggi

Inserito il - 29/01/2011 : 19:58:07  Mostra Profilo Invia a zenobio un Messaggio Privato  Rispondi Quotando
Auguroni a te e a tua moglie per il bimbo
io ormai ho già dato i miei due bambini hanno
28 e 21 anni vado per nonno

tornando alla lisp lo so che (pippo)viene interpretato come comando per eseguire la
funzione pippo e proprio quello che cerco di fare;
se alla tua ho intenzione di aggiungere pippo che poi mi disegna delle cose (fin0 nel file che
ti ho inviato)
il problema è che non lo fa nel senso che lo legge lo imposta (con setq) lo fa vedere
a schermo ma poi finisce lì non va avanti.

per esempio adesso sto modificando la versione nuova che hai gentilmente messo tra i download
ho inserito la mia routine per visualizzare le slide tutto gira bene fin qui dopo il comando

(command "_vslide" mostra "delay" 3000 "regen")

ho messo

(apriicon)

perché mi riapra la lisp (visto che il comando mi serve solo per dare un esempio di come dovrebbero
venire le finestre) ma la lisp non si riapre da sola il problema è lo stresso di cui ti dicevo sopra
praticamente sembra non legga i comandi interni
ad esempio nella lisp che mi disegna le finestre c'è una routine che disegna solo i davanzali estreni che
ho chiamato (defun DavEs () per non riscrivere la stessa porzione di lisp per ogni tipo di finestra ad un
certo punto metto (DavEs) e viene disegnato il davanzale esterno questo visto che i disegni delle
finestre hanno una gran parte di linee eguali mi permette di suddividere il tutto in tanti pezzettini da usare volta per volta solo quello che mi serve.

Come al sempre ti invio il file per mail



Modificato da - zenobio in data 31/01/2011 07:44:09
Torna all'inizio della Pagina
Pagina: di 2 Discussione Precedente Discussione Discussione Successiva  
Pagina Successiva
 Nuova Discussione  Rispondi Bookmark this Topic Aggiungi Segnalibro
Vai a:
© Torna all'inizio della Pagina
Tradotto Da: Vincenzo Daniele & Luciano Boccellino- www.targatona.it | Distribuito Da: Massimo Farieri - www.superdeejay.net | Powered By: - Snitz Forums 2000 Version 3.4.03

Antidoto.org | Brutto.it | Estela.org | Equiweb.it