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
 AutoCAD
 Comando per copiare il nome di un blocco

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista
   
Icona Messaggio:              
             
Messaggio:

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

Faccine
Felice [:)] Davvero Felice [:D] Caldo [8D] Imbarazzato [:I]
Goloso [:P] Diavoletto [):] Occhiolino [;)] Clown [:o)]
Occhio Nero [B)] Palla Otto [8] Infelice [:(] Compiaciuto [8)]
Scioccato [:0] Arrabbiato [:(!] Morto [xx(] Assonnato [|)]
Bacio [:X] Approvazione [^] Disapprovazione [V] Domanda [?]
Seleziona altre faccine

    
 
   

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

TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,14 secondi.