• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Déplacer les textes d'orientation longs

  • Auteur du sujet Auteur du sujet Il filo
  • Date de début Date de début
  • Tags Tags
    autocad

Il filo

Guest
Bonjour à tous.

Je suis architecte, j'ai rejoint ce forum il y a des années mais, pour diverses raisons, j'ai été loin du monde du design et du cad depuis longtemps.
Au cours de la dernière période, j'ai abordé ce monde principalement en tant que designer et, bien que n'ayant pas rencontré de problèmes pour reprendre l'ancien et familier logiciel, j'ai déjà rencontré certaines opérations que je voudrais effectuer, mais je ne sais pas comment et s'il est possible de le faire.

Je voulais savoir si quelqu'un était conscient d'un moyen de déplacer plusieurs textes autocad d'une mesure donnée le long de leur orientation à la fois.
Je trouve une analogie avec 3d studio max quand je veux déplacer plus d'objets le long de leurs coordonnées locales tous ensemble.

Malheureusement (et de façon inattendue) Je n'ai rien trouvé sur une telle opération.

J'attache un croquis rapide, qu'une image vaut plus de mille mots.

merci d'avance à quiconque veut répondre.
 

Pièces jointes

  • schema.jpg
    schema.jpg
    48.3 KB · Affichages: 6
simplement dans autocad le concept de coordination locale n'existe pas, donc à moins que vous ayez un lisp ou similaire pour soutenir ces opérations, je doute que l'autocad soit capable de manière native
 
Tout d'abord, merci pour la réponse.

Malheureusement, c'est ce que je soupçonnais, le problème est que, malgré l'utilisation déjà de lisp, je ne serais pas en mesure de les créer actuellement.
ou je continue à chercher à trouver un lisp approprié ou essayer de trouver le temps d'apprendre. Nous verrons.

Pouvez-vous laisser la discussion s'ouvrir à nouveau? Peut-être que d'autres utilisateurs ont la solution à mon problème... Au moins j'espère ! ?
 
En effet, il est particulièrement ennuyeux de ne pas avoir de commande directe pour déplacer le texte selon la normale (ou parallèle) de son orientation.

si vous connaissez l'angle (il suffit de regarder dans les propriétés) vous pouvez simplement utiliser un décalage relatif en réglant la longueur et la rotation+90.
dans la pratique, la coordination relative sera une chose du type (où haut 90 à ne pas le faire à l'esprit ou à prendre la calculatrice):
@ distance < (+ angle 90)

autre solution est de définir l'oiseau objet en sélectionnant l'écriture. à ce point un simple mouvement et vous êtes terminé (se souvenir que vous devez réinitialiser l'uct à la valeur précédente).
 
Ces méthodes sont bonnes, mais toujours sur une quantité réduite d'éléments.
Dans mon cas, hélas, il y a plusieurs milliers de textes tournés de la manière la plus diversifiée :eek:

la méthode utilisée jusqu'à présent a été sélectionnée avec le sélérapid pour la plage de 10° textes, changer temporairement les ucts et déplacer la moitié des textes sélectionnés vers le haut et les autres vers le bas (filtre avec la commande trouve), tous répétés pendant 36 fois.
Mais cette méthode fonctionne entre une chose et l'autre me prend entre 40 et 60 minutes.

mais si j'avais besoin de déplacer les textes exactement le long de leur orientation (ce qui ne m'est pas arrivé pour l'instant) je devrais répéter cette procédure 360 fois... un morceau qui durerait des heures!

Cependant, grâce à la réponse, je ne suis pas le seul à poser cette question.
 
Voyez si ça marche.
Code:
(défun c:tt (/txt t1 p1)
(vla-startundomark (vla-get-active document))
(principal "\selezionare et testi da spostare")
(setq txt (ssget '(0 . " texte")))
(setq d (cond
(getdist (strcat "\ndistanza di spostamento" (si d (strcat " <" (rtos d 2 2) ">: ")))) )
(d)
) )
(si (et txt d)
(répète (longueur sss txt)
(vla-move (vlax-ename->vla-objet (setq t1 (ssname txt)))
(vlax-3d-point (setq p1 (cdr))
(vlax-3d-point (polaire p1 (+ (cdr (assoc 50 (entget t1))) (/pi 2))
)
)
(vla-endundomark (vla-get-active document))
(principal)
)
 
Voyez si ça marche.
Code:
(défun c:tt (/txt t1 p1)
(vla-startundomark (vla-get-active document))
(principal "\selezionare et testi da spostare")
(setq txt (ssget '(0 . " texte")))
(setq d (cond
(getdist (strcat "\ndistanza di spostamento" (si d (strcat " <" (rtos d 2 2) ">: ")))) )
(d)
) )
(si (et txt d)
(répète (longueur sss txt)
(vla-move (vlax-ename->vla-objet (setq t1 (ssname txt)))
(vlax-3d-point (setq p1 (cdr))
(vlax-3d-point (polaire p1 (+ (cdr (assoc 50 (entget t1))) (/pi 2))
)
)
(vla-endundomark (vla-get-active document))
(principal)
)
Ouah !
Je vais absolument le prouver dès que je peux, que maintenant je ne suis pas devant l'autocad.

Un super merci !
Je te le ferai savoir quand j'essaierai.
 
Me voilà.

D'accord, j'admets que je suis plutôt ignorant sur la macro, le lisp et la programmation en général.

Tout ce code que j'ai essayé de coller dans la ligne de commande, mais je ne sais pas si ça marche ou pas.
Ces cordes ne doivent-elles pas être collées là ?
 
vous devez créer un fichier texte, avec lsp extension (par exemple tt.lsp) et le copier dans le code entier. après l'avoir enregistré, chargez-le en autocad par appload
à partir de ce moment, pour le lancer, du clavier au tt suivi par l'envoi.
- Oui. Bien sûr (que je vous dis de faire) fonctionne exactement comme un fil qu'il voulait, la seule taupe est qu'il ne travaille que sur des textes purs, pas sur mtext (type d'entité différente ? Plus problématique ? ou juste une question de ssget? )
 
@cristalloMerci pour la dilcidation, cristal. C'est exactement ce que j'ai manqué.
- Oui. Je ne sais pas quoi dire si je ne te remercie pas !
Ça marche exactement comme je le souhaitais.
Je vous remercie de lire et de résoudre mon problème en prenant du temps.

un peu d'information pour tous après quelques tests:
  • J'ai aussi essayé avec mtext et confirme qu'il ne fonctionne pas, il va seulement avec des textes normaux (qui, égoïstement parlant, était ce qui m'intéressait)
  • J'ai essayé de déplacer plusieurs textes avec différentes raisons et ce ultratemps ne semble pas affecter le résultat au minimum.
  • Je peux bouger à la fois positif et négatif.
C'est probablement un peu inutile, mais je l'ai fait de toute façon.
 
- Oui.Je vais te demander une dernière chose.
J'ai également formulé cette question sur un autre forum, mais sans aucun résultat avec d'autres utilisateurs.
Depuis qu'il existe une solution, me donneriez-vous la permission de la partager ?
Ça pourrait servir quelqu'un d'autre que moi.

Ps. Bien sûr que je ne le pelerais pas comme de la farine de mon sac.
 
...le seul néo est qu'il travaille uniquement sur des textes purs, pas sur mtext
...prouve moi aussi cogli mtext et confirme qu'il ne fonctionne pas, il va seulement avec des textes normaux
juste ajouter un astérisque dans cette ligne(setq txt (ssget '(0). "*texte"))

- Oui.Voulez-vous me donner la permission de le partager ?
Pas de problème, tellement ils me connaissent:)
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut