Aller au contenu

Rotation des TEXTs/MTEXTs a l'Horizontale suivant le Point de Vue 3D ?


Messages recommandés

Posté(e)

Hello

 

J'etais persuade d'avoir la bonne routine MAIS a priori je ne l'ai pas !

 

Donc dans l'onglet Objet ou dans une Fenetre / FMULT des Presentations ...

 

- Selection AutoCAD classique, on ne retient que les TEXTs / MTEXTs

 

- Rotation des TEXTs / MTEXTs (depuis le point d'insertion de chaque TEXT/MTEXT)

afin qu'ils soient a l'horizontale par rapport au point de vue 3D courant ...

 

****** Autre solution possible ******

Question: si j'utilise le Mode ANNOTATIF et l'option "Faire correspondre l'orientation du texte a la Presentation / Match orientation to Layout" !! MAIS qu'en fait je ne fais pas d'ANNOTATIF (Hauteur du Style = ZERO et Echelle Annotative = 1:1) , est ce jouable ??

 

Merci d'avance, Bonne Annee et LA SANTE, Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Salut,

 

(defun c:AlignToView (/ vd ss i txt pos)
 (setq vd (trans '(0 0 1) 2 0 T))
 (if (setq ss (ssget '((0 . "*TEXT"))))
   (repeat (setq i (sslength ss))
     (setq txt (ssname ss (setq i (1- i)))
           pos (getpropertyvalue txt "Position")
     )
     (setpropertyvalue txt "Normal" vd)
     (setpropertyvalue txt "Rotation" 0)
     (setpropertyvalue txt "Position" pos)
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonsoir,

j'ai essayé de faire quelque chose qui intègre les cotes, les textes, les mtexts et les mleaders

 

(vl-load-com)

(defun c:rotdim (/ s ANG)
 (setq ANG (getvar "VIEWTWIST"))
 (if (ssget '((0 . "DIMENSION,MULTILEADER,TEXT,MTEXT")))
   (progn
     (vlax-for o (setq s (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
       (cond
         ((= (vla-get-objectname o) "AcDbMLeader") (vla-put-textrotation o 0))
         ((= (vla-get-objectname o) "AcDbMText") (vla-put-rotation o 0))
         (T (vla-put-rotation o ANG))
       )
     )
     (vla-delete s)
   )
 )
 (princ)
)

 

Selon le type d'objet, il faut mettre la propriété "rotation" soit à 0, soit à l'angle donné par viewtwist

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Hello

 

MERCI les Pros

 

1) J'ai teste (sous AutoCAD MAP 2017 x64) la routine de Gilles: PARFAIT !

Il me suffit de multiplier (copier) les textes (sur de multiples calques)

suivant les Points de vue et d'utiliser "subtilement" la routine de Gilles ...

 

2) Je n'ai pas encore teste la routine de zebulon_ mais ...

DESOLE il ne se passe rien sur mes TEXTs / MTEXTs alors que la routine de Gilles est OK !

Bien entendu je suis dans le SCG et les Tests ont ete realises dans l'OBJET et dans une Presentation ... Aucun msg d'erreur ...

Pourtant j'ai des valeurs non nuls sur : (getvar "VIEWTWIST")

 

3) SVP quel serait l'inconvenient d'utiliser la propriete de rotation automatique du Mode ANNOTATIF

comme je l'expliquais dans mon sujet ???

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Hello

 

1) Tous les tests ont ete realises (avec des Textes "simples") sous AutoCAD MAP 2017 x64 et dans le SCG !

 

2) Tiens maintenant avec la routine de Gilles , j'ai le probleme suvant :

 

Commande: ALIGNTOVIEW

Sélectionner des objets: Spécifiez le coin opposé: 8 trouvé(s)

Sélectionner des objets:

 

Erreur: Demande ADS erronée

Impossible d'appeler (command) à partir de *error* sans appeler préalablement (*push-error-using-command*).

Il est recommandé de convertir les appels (command) en (command-s).

Commande:

 

CURIEUX car ZERO utilisation de "command" !?

 

2) Je sors complet d'AutoCAD MAP 2017, je relance ET CA MARCHE !

 

Bye, lecrabe

 

*** PS1: Tests refais avec un "simple" AutoCAD 2015 x64 et la routine de Gilles est toujours OK

et malheureusement pour celle de zebulon_ , rien ne se passe !

 

*** PS2: AH AH PROBLEME avec les MTEXTs (avec la routine de Gilles) car la propriete de rotation ne semble pas la meme que pour les Textes SIMPLES !? ... Traitement DIFFERENT pour les entites MTEXT ??

---> ; erreur: Demande ADS erronée

 

Je sens bien un truc lie a ce sujet :

http://cadxp.com/topic/43478-rotation-texte-et-mtext/page__pid__248938#entry248938

Autodesk Expert Elite Team

Posté(e)

Salut,

 

je suis allé un peu vite en besogne...

 

Les textes multiligne provoquent en effet une erreur mais c'est à cause de la propriété "Position".

 

Une nouvelle version qui semble fonctionner avec les textes simples et textes multilignes quels que soient la justification, le SCU courant, etc.

 

(defun c:AlignToView (/ vd ss i txt elst pos)
 (setq vd (trans '(0 0 1) 2 0 T))
 (if (setq ss (ssget '((0 . "TEXT,MTEXT"))))
   (repeat (setq i (sslength ss))
     (setq txt (ssname ss (setq i (1- i))))
         (setpropertyvalue txt "Normal" vd)
     (if (= (cdr (assoc 0 (entget txt))) "MTEXT")
         (setpropertyvalue txt "Rotation" (- (angle '(0 0 0) (getvar 'ucsxdir))))
       (if (= 0 (getpropertyValue txt "Justify"))
         (progn
           (setq pos (getpropertyvalue txt "Position"))
           (setpropertyvalue txt "Rotation" 0)
           (setpropertyvalue txt "Position" pos)
         )
         (progn
           (setq pos (getpropertyvalue txt "AlignmentPoint"))
           (setpropertyvalue txt "Rotation" 0)
           (setpropertyvalue txt "AlignmentPoint" pos)
         )
       )
     )
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité