Aller au contenu

Rotation de plusieurs textes avec leurs points d'origine


Messages recommandés

Posté(e)

Bonjour,

J'ai plusieurs textes dans mon dessin Autocad. Ceux-ci sont d'un angle différent et j'aimerais tous les sélectionner et les faire tourner de 180°, par exemple.

Je ne souhaite pas les faire tous tourner autour d'un point défini mais que chacun tourne autour de son point d'origine, tout en gardant la même position.

Sur la même idée mais seulement pour les blocs, j'ai trouvé ce sujet :

https://cadxp.com/topic/35654-rotation-bloc-avec-point-dorigine/

 

En espérant avoir été assez clair pour mon explication, je vous remercie d'avance.

Posté(e)

Salut @THBDM,

Juste par curiosité, pourquoi souhaites-tu faire faire une rotation de tes textes à 180° ?

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e) (modifié)

1.thumb.JPG.831bdc419500e869c3d301f8230a132a.JPGBonjour,

La solution proposée par Bred dans votre lien sur le sujet concernant les blocs, à l'époque, ne convient pas ? Cela semble correspondre à votre demande.

Sélection des textes à pivoter, puis dans Propriétés, Rotation, Indication de la valeur de rotation.

Modifié par DOMI

Formateur AutoCAD - Revit Architecture - SketchUp - V-Ray / Architecte d'intérieur

https://www.domicrea.fr/

Posté(e)

Coucou @THBDM,

Pas testé mais cela convient-il à la demande ?

(defun c:ROT180TXT (/ jsel i name n a)
  (if (setq jsel (ssget '((0 . "MTEXT,TEXT"))))
    (progn
      (repeat (setq i (sslength jsel) n i)
        (setq
          name (ssname jsel (setq i (1- i)))
          a (cdr (assoc 50 (entget name)))
        )
        (or
          (entmod
            (subst
              (cons 50 (+ a pi))
              (assoc 50 (entget name))
              (entget name)
            )
          )
          (ssdel name jsel)
        )
      )
      (sssetfirst)
      (sssetfirst nil jsel)
      (prompt (strcat "\nSuccessfully rotated " (itoa (sslength jsel)) "/" (itoa n) " text(s)"))
    )
  )
  (princ)
)

Une variante ci-dessous pour permettre à l'utilisateur de choisir la valeur de l'angle de rotation :

(defun c:ROTANGTXT (/ val jsel i name n a)
  (if (setq jsel (ssget '((0 . "MTEXT,TEXT"))))
    (progn
      (or
        (setq val (getreal "\nEnter the rotation angle (°) or <180> : "))
        (setq val 180)
      )
      (setq val (/ (* val pi) 180.))
      (repeat (setq i (sslength jsel) n i)
        (setq
          name (ssname jsel (setq i (1- i)))
          a (cdr (assoc 50 (entget name)))
        )
        (or
          (entmod
            (subst
              (cons 50 (+ a val))
              (assoc 50 (entget name))
              (entget name)
            )
          )
          (ssdel name jsel)
        )
      )
      (sssetfirst)
      (sssetfirst nil jsel)
      (prompt (strcat "\nSuccessfully rotated " (itoa (sslength jsel)) "/" (itoa n) " text(s) with an angle of " (rtos (/ (* val 180) pi) 2 2) "°"))
    )
  )
  (princ)
)

Pas testé non plus...

Bisous,
Luna

  • 1 an après...
Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é