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

Nota: Devi essere registrato per poter inserire un messaggio.

Larghezza finestra:
Nome Utente:
Password:
Icona Messaggio:              
             
Messaggio:

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


   Allega file
  Clicca qui per sottoscrivere questa Discussione.
 
    

V I S U A L I Z Z A    D I S C U S S I O N E
admin Inserito il - 05/01/2010 : 18:42:31
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.
15   U L T I M E    R I S P O S T E    (in alto le più recenti)
admin Inserito il - 01/02/2011 : 21:53:42
Ciao,
allora...
qui è meglio mettere
(command "_vslide" mostra "_delay" 3000 "_regen")
attento che:
1) o "mostra" è completo di percorso + nomefile
2) inserire nei percorsi di ricerca del cad la directory di sono le slide

poi per riaprire la libreria (la cosa stava sfuggendo anche a me) devi mettere
(c:apriicon) che praticamente è come se la digitassi di nuovo sul prompt.
Con solo (apriicon) si richiama una funzione interna, cioè una funzione all' interno di un'altra funzione principale dove quella principale viene chiamata da "c:nomefunzione" .... se non ricordo male.
Ciao e fammi sapere.

Ah... attento anche al nome del file DCL che nella funzione che mi hai inviato era sbagliato.
Comunque sistemate queste cosa a me ha funzionato, nel senso che rimaneva la slide x 3 secondi e dopo si riapriva la libreria

Riciao!
zenobio Inserito il - 29/01/2011 : 19:58:07
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


admin Inserito il - 26/01/2011 : 08:48:51
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.
zenobio Inserito il - 25/01/2011 : 19:31:09
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



admin Inserito il - 25/01/2011 : 09:04:46
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.
zenobio Inserito il - 25/01/2011 : 07:56:53
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.

admin Inserito il - 24/01/2011 : 21:34:53
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.
admin Inserito il - 24/01/2011 : 15:42:01
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?
zenobio Inserito il - 20/01/2011 : 19:49:00
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
admin Inserito il - 18/01/2011 : 13:31:46
Bene, dalla list-box al momento selezioni e poi clicchi "ok"
zenobio Inserito il - 18/01/2011 : 08:58:18
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
admin Inserito il - 17/01/2011 : 22:29:56
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.
admin Inserito il - 17/01/2011 : 22:22:47
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?
admin Inserito il - 17/01/2011 : 22:17:07
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.

zenobio Inserito il - 17/01/2011 : 17:23:29
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
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