V I S U A L I Z Z A D I S C U S S I O N E |
cantacad |
Inserito il - 12 luglio 2011 : 11:18:57 Salve, per la serie "comandi mai visti" chiedo se sia possibile realizzare un lisp che metta a disposizione come testo incollabile, il nome del blocco selezionato. Per averlo a disposizione adesso lo copio tramite il comando lisp, ma saltare questo passaggio sarebbe comodissimo!
Ringrazio anticipatamente per eventuali risposte |
20 U L T I M E R I S P O S T E (in alto le più recenti) |
arri |
Inserito il - 06 ottobre 2012 : 18:06:11 Messaggio inserito da joseph
Prima che qualcuno mi cerchi a "Chi l'ha visto" su Rai3, rassicuro tutti: sono vivo e vegeto, ma mi hanno assalito un sacco di problemi (e dire che sono in pensione!). Spero di rientrare a presto; prima però devo farmi un corso accelerato di aggiornamento; ho tutti i meccanismi arrugginiti. Ciao
bello rivederti joseph grazie per l'avviso |
Roberto07 |
Inserito il - 06 ottobre 2012 : 16:17:19 Bella joseph! Contentissimo di sapere che stai bene |
joseph |
Inserito il - 06 ottobre 2012 : 15:03:11 Prima che qualcuno mi cerchi a "Chi l'ha visto" su Rai3, rassicuro tutti: sono vivo e vegeto, ma mi hanno assalito un sacco di problemi (e dire che sono in pensione!). Spero di rientrare a presto; prima però devo farmi un corso accelerato di aggiornamento; ho tutti i meccanismi arrugginiti. Ciao |
arri |
Inserito il - 28 settembre 2012 : 08:23:12 Messaggio inserito da Terminator
Questa è veramente una chicca! Grande Jo!
Era proprio quello che stavo cercando, ma che non ho trovato in rete
è da mesi purtroppo che joseph è sparito da tutti i forum ... gravissima perdita |
cantacad |
Inserito il - 15 luglio 2011 : 14:45:21 Che equipe! adesso è proprio come lo volevo! |
Terminator |
Inserito il - 14 luglio 2011 : 17:52:35 Aggiungo, per completezza, un grande assente:
(vlax-create-object "Shell.Application")
Un'altra delle funzioni ActiveX che hanno una marea fra proprietà e metodi...
|
joseph |
Inserito il - 14 luglio 2011 : 15:42:41 | Messaggio inserito da Terminator ....A volte credi di sapere qualcosa e poi ti rendi conto che non sai proprio nulla, bah...
|
Sta proprio lì la molla del sapere, che è poi uno dei segreti del vero talento: "saper di non sapere", e quindi guardare alle cose " come se fosse la prima volta". Ciao
|
Terminator |
Inserito il - 14 luglio 2011 : 14:35:02 | Messaggio inserito da joseph
Su Google "copy string autolisp clipboard"
Ma ecco spuntare altri mondi: (vlax-create-object "Scripting.FileSystemObject") (vlax-create-object "Excel.Application.11") (vlax-create-object "Word.Application") (vlax-create-object "Outlook.Application") (vlax-create-object "Sapi.SpVoice") (setq goo (vlax-create-object "GoogleEarth.ApplicationGE")) (setq ht (vlax-create-object "htmlfile"))
Ho provato solo questi due, non avendo installato Office. (vlax-dump-object goo T) (vlax-dump-object ht T)
Buon divertimento |
E ti pareva che non avevo cercato bene... era da scrivere clipboard
Di questi conoscevo solo Excel.Application e Word.Application. Esiste pure quello per Google Earth! Mi sa che ti devo offrire una cena per tutte queste informazioni.
Senza aggiungere nulla al comando clip1, approfitto per creare da questo la relativa funzione per uso generalizzato:
Sintassi: (ctextc stringa)
Argomento: stringa - una stringa valida
Se l'argomento non è di tipo stringa la funzione restituisce nil
(defun ctextc (stringa / html result)
(if (= (type stringa) 'STR)
(progn
(setq html (vlax-create-object "htmlfile")
result (vlax-invoke
(vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData)
'setData
"Text"
stringa
)
)
(vlax-release-object html)
result
)
nil
)
)
A volte credi di sapere qualcosa e poi ti rendi conto che non sai proprio nulla, bah... |
joseph |
Inserito il - 14 luglio 2011 : 14:21:14 Su Google "copy string autolisp clipboard"
Ma ecco spuntare altri mondi: (vlax-create-object "Scripting.FileSystemObject") (vlax-create-object "Excel.Application.11") (vlax-create-object "Word.Application") (vlax-create-object "Outlook.Application") (vlax-create-object "Sapi.SpVoice") (setq goo (vlax-create-object "GoogleEarth.ApplicationGE")) (setq ht (vlax-create-object "htmlfile"))
Ho provato solo questi due, non avendo installato Office. (vlax-dump-object goo T) (vlax-dump-object ht T)
Buon divertimento
|
Terminator |
Inserito il - 14 luglio 2011 : 14:05:40 Ho dato un'occhiata alle proprietà e metodi di queste nuove entità ActiveX, come per le entità AutoCAD, ebbene, si è aperta una nuova dimensione. Veramente la cosa sta diventando senza limiti. Già mi aveva sorpreso le entità legate alla "Shell.Application" di windows, per aprire un riquadro di dialogo dove compariva la selezione cartella, senza usare le DOSLib. Ora invece sta diventando quasi impossibile stare dietro a tutto quello che è ActiveX.
Una curiosità rivolta a Jo, cosa hai inserito nel motore di ricerca per scovare questo comando? Io avevo inserito "CTRL-C LISP" ma senza successo... |
joseph |
Inserito il - 14 luglio 2011 : 13:55:12 E' già la seconda volta che sovrascrivo un comando: spero di non aver creato dei guai anche ad altri: ho corretto in fretta quindi anche il mio post.
|
Terminator |
Inserito il - 14 luglio 2011 : 13:40:29 Questa è veramente una chicca! Grande Jo!
Era proprio quello che stavo cercando, ma che non ho trovato in rete |
arri |
Inserito il - 14 luglio 2011 : 13:24:20 Messaggio inserito da joseph
Assemblando le intuizioni di Terminator e di Patrick_35 (http://www.theswamp.org/index.php?topic=21764.msg263059#msg263059), ne è uscito questo codice, che non ha bisogno di nessun intervento dell'utente, tranne che la scelta del blocco.
(defun c:cnb () (vla-GetEntity (vla-get-utility (vla-get-activedocument (vlax-get-acad-object))) 'bloc nil "\nSelezionare blocco: ") (setq nom-bl (vla-get-EffectiveName bloc)) (setq html (vlax-create-object "htmlfile") result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" nom-bl) ) ;_end_setq (vlax-release-object html) )
grazie joseph, ottimo
Ho modificato clip in cnb perchè clip è un comando AutoCAD |
joseph |
Inserito il - 14 luglio 2011 : 13:21:48 Assemblando le intuizioni di Terminator e di Patrick_35 (http://www.theswamp.org/index.php?topic=21764.msg263059#msg263059), ne è uscito questo codice, che non ha bisogno di nessun intervento dell'utente, tranne che la scelta del blocco.
(defun c:clip1 () ;correzione del nome da clip a clip1 (vla-GetEntity (vla-get-utility (vla-get-activedocument (vlax-get-acad-object))) 'bloc nil "\nSelezionare blocco: ") (setq nom-bl (vla-get-EffectiveName bloc)) (setq html (vlax-create-object "htmlfile") result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" nom-bl) ) ;_end_setq (vlax-release-object html) )
|
cantacad |
Inserito il - 14 luglio 2011 : 11:07:12 Ok, mi sono scordato di chiedere perchè alcuni file lisp hanno bisogno del .DCL di appoggio e altri no (pur non essendo dei .vlx) |
arri |
Inserito il - 14 luglio 2011 : 10:07:45 Messaggio inserito da cantacad
Grazie, per finire cosa vuol dire che manca il file DCL? quadro scarico il pacchettino c'è un terzo file che ha estensione DCL...dove andrebbe messo? (perchè così mi sistemo un altro lisp di cui invece non ho il .vlx)... ciao e grazie
il file DCL devi copiarlo in una di queste:
Opzioni -> File -> percorso di ricerca file di supporto
|
cantacad |
Inserito il - 14 luglio 2011 : 09:58:53 Grazie, per finire cosa vuol dire che manca il file DCL? quadro scarico il pacchettino c'è un terzo file che ha estensione DCL...dove andrebbe messo? (perchè così mi sistemo un altro lisp di cui invece non ho il .vlx)... ciao e grazie |
arri |
Inserito il - 14 luglio 2011 : 08:16:34 Messaggio inserito da cantacad ...non mi è chiara una cosa, se uso il .lisp mi da errore,
perchè manca il file DCL nel percorso di AutoCAD
Messaggio inserito da cantacad se invece uso il .vlx tutto ok...cos'è un .vlx? per fare il pulsante dedicato uso lo stesso giro che ho utilizzato per i .lisp (appload ecc ecc?) Ciao e grazie
il VLX contiene anche il file DCL,
tutto uguale per il pulsante ecc.
|
cantacad |
Inserito il - 14 luglio 2011 : 08:13:09 Boh, ieri RBT funzionava, oggi invece del nome del blocco mi scrive sempre "0"... Nel frattempo ho provato RB che praticamente arriva allo stesso punto e poi volendo rende più comodo la rinomina del file (e quello il suo scopo effettivamente)...non mi è chiara una cosa, se uso il .lisp mi da errore, se invece uso il .vlx tutto ok...cos'è un .vlx? per fare il pulsante dedicato uso lo stesso giro che ho utilizzato per i .lisp (appload ecc ecc?) Ciao e grazie |
Terminator |
Inserito il - 13 luglio 2011 : 20:53:47 Altro passetto avanti: Mi risparmio un INVIO. Come esiste (command) per interrompere un comando esistente, deve esserci un modo di simulare un CTRL-C.
(defun C:RBT (/ bloc nomeblocco)
(vla-GetEntity (vla-get-utility (vla-get-activedocument (vlax-get-acad-object))) 'bloc nil "\nSelezionare blocco: ")
(vl-cmdf "_TEXT" (list 0 0) "" 0 (vla-get-EffectiveName bloc) "DDEDIT" "_L")(vl-cmdf)
;;; QUI DEVI FARE IL CTRL+C MANUALE POI INVIO
(entdel (entlast))
(princ)
) |