Jump to content

Spostare testi lungo orientamento (AutoCAD)


Recommended Posts

Buongiorno a tutti.

 

Volevo sapere se qualcuno fosse a conoscenza di un modo per muovere più testi in AutoCAD di una data misura lungo il proprio orientamento in una volta sola.

Trovo un'analogia con 3D Studio Max quando voglio muovere più oggetti lungo le proprie coordinate locali tutti assieme.

Purtroppo (e inaspettatamente) non sono riuscito a trovare nulla su un'operazione del genere.

 

Allego un veloce schizzo, che un'immagine vale più di mille parole.

 

Grazie anticipatamente.

schema.jpg

Link to post
Share on other sites

Vero, però a me servirebbe spostare tutti i testi in una volta lungo il loro orientamento.

 

Il metodo che mi suggerisci tu è quello che ho usato finora, ovvero selezionare per range di 10° i testi, cambiare provvisoriamente l'UCS e spostare della misura che mi serve, il tutto ripetuto per 36 volte. Questo metodo funziona.

Ma se avessi la necessità di spostare i testi esattamente lungo il loro orientamento (cosa che solo per ora non mi è ancora capitata) dovrei ripetere quella procedura 360 volte... un lavoraccio!

 

Però a me sembra che AutoCAD abbia già tutte le informazioni per fare quello che vorrei, ma non so se è contemplato il comando. Mi farebbe risparmiare un sacco di tempo.

 

Link to post
Share on other sites

Un utente di un altro forum mi ha gentilmente creato un LISP che fa esattamente ciò che voglio.

 

Col suo permesso lo pubblico anche qui su Treddi, che magari può servire a qualcun'altro oltre a me.

 

(defun c:tt (/ txt t1 p1) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (princ "\Selezionare i testi da spostare") (setq txt (ssget '((0 . "TEXT")))) (setq d (cond ( (getdist (strcat "\nDistanza di spostamento" (if d (strcat " <" (rtos d 2 2) ">: ")": "))) ) ( d ) ) ) (if (and txt d) (repeat (setq n (sslength txt)) (vla-move (vlax-ename->vla-object (setq t1 (ssname txt (setq n (1- n))))) (vlax-3d-point (setq p1 (cdr (assoc 10 (entget t1))))) (vlax-3d-point (polar p1 (+ (cdr (assoc 50 (entget t1))) (/ pi 2)) d))) ) ) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) )

 

Questo LISP funziona solo con i testi normali, per quelli multilinea basta aggiungere un asterisco in questa riga
(setq txt (ssget '((0 . "*TEXT"))))

 

Grazie ugualmente a chi è intervenuto in questa discussione.

 

Buona giornata!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Per garantire la migliore esperienza di navigazione possibile questo sito utilizza cookie tecnici, statistici e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all'uso dei cookie. Privacy Policy - Cookie Policy