Autore |
Discussione |
cantacad
Utente Master
662 Messaggi |
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
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 12 luglio 2011 : 11:51:06
|
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 |
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 12 luglio 2011 : 13:34:08
|
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? |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 12 luglio 2011 : 15:09:57
|
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... |
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 12 luglio 2011 : 16:44:10
|
Un pò come quando ti ho chiesto il comando "ruota come" nel quale dovevi tirare su il valore di rotazione del blocco? |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 12 luglio 2011 : 17:15:45
|
Ma li sogni di notte questi comandi? |
|
|
joseph
Utente Master
Regione: Lombardia
Prov.: Cremona
Città: Casalmaggiore
1884 Messaggi |
Inserito il - 12 luglio 2011 : 17:52:11
|
Copiare in una cella di una tabella? E il comando Rename, cosa c'entra? |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 12 luglio 2011 : 17:59:50
|
Intendeva dire che, una volta fatto Ctrl+C sul testo, poteva incollarlo con qualsiasi comando che richieda una stringa come input. |
|
|
GP
Utente Master
Regione: Piemonte
Prov.: Vercelli
2776 Messaggi |
Inserito il - 12 luglio 2011 : 18:15:06
|
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)
) |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 12 luglio 2011 : 18:20:29
|
Non funziona, con il copyclip copio l'entità-testo, non la sua stringa relativa. |
|
|
joseph
Utente Master
Regione: Lombardia
Prov.: Cremona
Città: Casalmaggiore
1884 Messaggi |
Inserito il - 12 luglio 2011 : 20:33:59
|
...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? |
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 13 luglio 2011 : 07:43:51
|
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 |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 13 luglio 2011 : 08:19:41
|
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)
) |
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 13 luglio 2011 : 11:16:39
|
beh, non è malvagio...lo ritieni finito o mi faccio l'appunto di venire a vedere questa discussione per eventuali "upgrade"? |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 13 luglio 2011 : 11:25:22
|
Dai pure un'occhiata ogni tanto, non si sa mai... |
|
|
numero1
Utente Master
Città: Da qualche parte
683 Messaggi |
Inserito il - 13 luglio 2011 : 18:20:50
|
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 |
|
|
arri
Utente Master
Regione: Lombardia
14951 Messaggi |
Inserito il - 13 luglio 2011 : 18:26:07
|
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 |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 13 luglio 2011 : 19:19:38
|
| 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... |
|
|
Terminator
Utente Master
725 Messaggi |
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)
) |
|
|
cantacad
Utente Master
662 Messaggi |
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 |
|
|
arri
Utente Master
Regione: Lombardia
14951 Messaggi |
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.
|
|
|
Discussione |
|