• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

カスタムマルチディレクトリ

CristianC

Guest
salve a tutti, ho trovato un lisp e l'ho modificato leggermente per utilizzare un certo stile di multileader quando si preme un tasto desiderato, inoltre la multileader in questione viene posizionata direttamente su di un layer e con un colore ben preciso. chicca finale viene automaticamente spezzata (dimbreak) se interseca qualcosa
in questo caso la multileader ha funzione text, lavora abbastanza bene ma chiedo a qualcuno se ha idea di come fare per poter utilizzarla non perdendo la funziona mtext durante il comando mleader. questo perchè durante la funzione pause, il lisp lavora correttamente fermando l'elaborazione ma quando arriva il momento in cui si dovrebbe scrivere il multitesto a video, si deve invece scriverlo (solo 1 parola perchè gli spazi non vengono considerati) sulla linea di comando (non a video come lavora invece normalmnete il multitesto) obbligando l'operatore poi a rieditare il testo manualmente.
grazie dell'aiuto

ecco a voi il lisp:

(setq layer1 (getvar "clayer"))
(setvar "cmdecho" 1)
(command "-layer" "m" "testo" "c" "y" "" "")
(command "cmleaderstyle" "smi_text")
(command "_mleader" "h")
(while (> (getvar "cmdactive") 0)
(command pause))
(command "_dimbreak" "l" "a")
(setvar "clayer" layer1)
(command "ddedit" "l")
(princ)
 
mi sono dimenticato di dire che la penultima linea (command "ddedit" "l") l'ho aggiunta solo per rieditare la multileader a fine comando. in realtà se si trova il modo di sistemare il lisp questa linea non ha più senso.
 
dovresti prendere l'abitudine di anteporre l'underscore ai comandi, in maniera da rendere utilizzabili i lisp che posti anche da parte di usa la versione in italiano.

riguardo al tuo problema, verifica se trovi la maniera di inserire i dati del testo digitato dopo averli salvati con (getstring t), l'opzione t permette di non fare arrabbiare autocad se si digitano spazi da riga di comando.
 
ok recepito! :smile:

riguardo alla funzione (getstring t) preferirei trovare un modo per non utilizzare l'inserimento del testo nella linea di comando bensì riuscire ad utilizzare il multitesto nativo del comando mleader possibilmente direttamente a video.
mi sono tra l'altro accorto di una cosa molto strana, pensavo che questo comportamento fosse causa del fatto che il comando mleader si trova all'interno di un lisp, ho provato invece a creare un nuovo pulsante autocad ed inserire semplicemente:

^c^c_cmleaderstyle pippo _mleader

anche solo in questo modo (sinceramente non capisco il perchè) il comando mleader non presenta più la richiesta di inserimento testo a display con multitesto ma la presenta in riga di comando....bah...qualche idea?
forse l'unico modo è ricorrere al pulsante di creazione macro...
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top