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
 Nuova Discussione  Rispondi
 Versione Stampabile 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

cantacad
Utente Master



662 Messaggi

Inserito il - 12 luglio 2011 : 11:18:57  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
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

Terminator
Utente Master



725 Messaggi

Inserito il - 12 luglio 2011 : 11:51:06  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Non so se era quello che volevi, comunque, ecco qua:

(defun C:RBT (/ bloc nomeblocco)
 (vla-GetEntity (vla-get-utility (vla-get-activedocument (vlax-get-acad-object))) 'bloc nil "\nSelezionare blocco: ")
 (setq nomeblocco (vla-get-EffectiveName bloc))
 (vl-cmdf "_TEXT")
 (princ "\nInserire il punto di testo con il nome del blocco: ")
 (vl-cmdf pause "" "" nomeblocco)
 (princ)
)

Modificato da - Terminator in data 12 luglio 2011 11:52:23
Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 12 luglio 2011 : 13:34:08  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
ciao, intanto grazie.
Ti segnalo che manca il (vl-load-com) se vuoi inserirlo nella versione finale.
Non ho capito la parte in cui chiedi "Inserire il punto di testo con il nome del blocco"...da li in poi non vedo cambiamenti.
In realtà quello che vorrei fare (dopo aver selezionato il blocco e quindi aver "caricato" il suo nome) è aprire un comando come ad esempio rename e incollare il testo in memoria (nome del blocco) in una cella tramite ctrl+v.
Sono ancora fumoso o è più chiaro?
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 12 luglio 2011 : 15:09:57  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Aridaje con 'sto (vl-load-com), lo dimentico sempre!

Il problema è più complesso di quello che pensavo. Si tratta di memorizzare non l'entità-testo, bensì la stringa dell'entità testo...
Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 12 luglio 2011 : 16:44:10  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
Un pò come quando ti ho chiesto il comando "ruota come" nel quale dovevi tirare su il valore di rotazione del blocco?
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 12 luglio 2011 : 17:15:45  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Ma li sogni di notte questi comandi?
Torna all'inizio della Pagina

joseph
Utente Master



Regione: Lombardia
Prov.: Cremona
Città: Casalmaggiore


1884 Messaggi

Inserito il - 12 luglio 2011 : 17:52:11  Mostra Profilo Invia a joseph un Messaggio Privato  Rispondi Quotando
Copiare in una cella di una tabella?
E il comando Rename, cosa c'entra?
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 12 luglio 2011 : 17:59:50  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Intendeva dire che, una volta fatto Ctrl+C sul testo, poteva incollarlo con qualsiasi comando che richieda una stringa come input.
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2776 Messaggi

Inserito il - 12 luglio 2011 : 18:15:06  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
Sfruttando il listato di terminator:

(defun C:RBT (/ bloc)
   (vla-GetEntity (vla-get-utility (vla-get-activedocument (vlax-get-acad-object))) 'bloc nil "\nSelezionare blocco: ")
   (vl-cmdf "_TEXT" "0,0" "" "" (vla-get-EffectiveName bloc))
   (vl-cmdf "_copyclip" (entlast) "")
   (entdel (entlast))
   (princ)
)
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 12 luglio 2011 : 18:20:29  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Non funziona, con il copyclip copio l'entità-testo, non la sua stringa relativa.
Torna all'inizio della Pagina

joseph
Utente Master



Regione: Lombardia
Prov.: Cremona
Città: Casalmaggiore


1884 Messaggi

Inserito il - 12 luglio 2011 : 20:33:59  Mostra Profilo Invia a joseph un Messaggio Privato  Rispondi Quotando
...un lisp che metta a disposizione come testo incollabile, il nome del blocco selezionato...
...incollare il testo in memoria (nome del blocco)...


Da qui sembra che intenda proprio il nome del blocco, come giustamente entrambi i codici restituiscono.

con il copyclip copio l'entità-testo, non la sua stringa relativa.
Per esempio?
Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 13 luglio 2011 : 07:43:51  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
x terminator: si si me li sogno di notte! mi fanno risparmiare migliaia di clik (magari questo meno, ma quelli che ho chiesto finora direi di si)
x terminator: hai capito benissimo cosa vorrei fare
Ho provato il nuovo lisp e non mi pare funzioni
ciao a tutti
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 13 luglio 2011 : 08:19:41  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Più che sogni direi incubi!
Scherzi a parte, il listato qui sotto non sarà il massimo in fatto di automazione, ma è sempre un passo avanti. Devi effettuare il CTRL+C manualmente.

(defun C:RBT (/ bloc)
 (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")
 ;;; QUI DEVI FARE IL CTRL+C MANUALE POI 2 VOLTE INVIO
 (entdel (entlast))
 (princ)
)
Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 13 luglio 2011 : 11:16:39  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
beh, non è malvagio...lo ritieni finito o mi faccio l'appunto di venire a vedere questa discussione per eventuali "upgrade"?
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 13 luglio 2011 : 11:25:22  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Dai pure un'occhiata ogni tanto, non si sa mai...
Torna all'inizio della Pagina

numero1
Utente Master

Città: Da qualche parte


683 Messaggi

Inserito il - 13 luglio 2011 : 18:20:50  Mostra Profilo Invia a numero1 un Messaggio Privato  Rispondi Quotando
Siore e siori il premio SANTA PAZIENZA 2011 viene assegnato di diritto a Terminator, e vista la sua manifesta superiorità gli viene assegnato anche per tutti gli anni a venire.

Gli incubi continueranno ad arrivare Terminator eh eh eh :)
Anche se ...... il tuo nickname non è quello di un personaggio molto paziente.

Ciao

numero1
Torna all'inizio della Pagina

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 13 luglio 2011 : 18:26:07  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
Messaggio inserito da Terminator

(defun C:RBT (/ bloc)
 (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")
 ;;; QUI DEVI FARE IL CTRL+C MANUALE POI 2 VOLTE INVIO
 (entdel (entlast))
 (princ)
)


in alternativa a questo lisp dedicato, si può usare il lisp di GP

RB - Lisp per Rinominare Blocchi velocemente. Nella finestra di dialogo viene riproposto il nome attuale

Al posto di rinominare si usa il CTRL+C

http://www.cadlandia.com/forum/topic.asp?TOPIC_ID=6324&whichpage=7


Modificato da - arri in data 13 luglio 2011 18:27:03
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 13 luglio 2011 : 19:19:38  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Messaggio inserito da numero1

Anche se ...... il tuo nickname non è quello di un personaggio molto paziente.


Paziente come Schwarzenegger quando entra nella centrale di polizia del film...
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 13 luglio 2011 : 20:53:47  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
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)
)
Torna all'inizio della Pagina

cantacad
Utente Master



662 Messaggi

Inserito il - 14 luglio 2011 : 08:13:09  Mostra Profilo Invia a cantacad un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 14 luglio 2011 : 08:16:34  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
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.
Torna all'inizio della Pagina
Pagina: di 2 Discussione Precedente Discussione Discussione Successiva  
Pagina Successiva
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,88 secondi.