Aller au contenu

Une justification de texte sans mouvement..


Arno_Ap

Messages recommandés

 

Bonjour,

 

Je suis débutant en VB, (oui je sais c'est appelé à disparaitre mais pour l'instant cela existe ^^)

 

Pour mon boulot j'exporte des textes ayant un certain calque, et une certaine hauteur pour recuperé une liste de point basé sur le point d'insertion afin d'y inseré des blocs.

 

Par contre la justification n'est pas bonne (millieu centre) donc le point d'insertion est en bas à gauche.

 

En justifiant à la "main" à gauche le point d'insertion reste en bas à gauche mais le texte ce déplace (le point d'insertion ce deplace jusqu'à l'ancien point centrale)

 

Par contre je souhaite le faire en automatique (avant extraction des coordonnées)

J'ai donc ajouter ceci avec export =>

 

If Textes.Height = 0.1 And Textes.Layer = "CODE_PIECE" Then

 

Textes.Alignment = acAttachmentPointleft (<= que j'ai ajouté)

 

Par contre la propriété du texte change bien (en passant à gauche) mais le point d'insertion reste le même, le texte ne bouge pas.... :(

 

Une idée ?

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Il me semble qu'il faut d'abord définir l'alignement puis le point d'alignement.

 

Essaie de rajouter la ligne suivante après ta ligne 'Textes.Alignment=...'

 

 
Textes.TextAlignmentPoint = (point d'alignement que tu souhaites définir)

 

A essayer

_______________________________

R.A.

Développeur AutoCAD C#.net

www.danialu.fr

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Merci de la réponse.

 

Mais non, il ne le comprend pas... (enfin jue n'ai pas du lui parler correctement.)

 

Lorsque tu dis "point d'alignement que tu souhaites définir" dans mon cas c'est celui ci non?

 

(Dsl je bug un peu sur le principe vb encore mais cela va venir ^^)

 

Comme ceci : Textes.TextAlignmentPoint = ("left") ? je ne pense pas (parce que de 1 ca ne marche pas, et de deux cela sera trop facile ^^)

 

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je n'ai pas très bien compris ce que tu veux faire exactement en relisant ton premier message.

 

Mais en général, d'après ce que j'ai pu observer pour insérer un texte et définir un alignement spécifique, il faut bien respecter l'ordre suivant:

- Il faut d'abord insérer ton texte à un point d'insertion que tu définis.

- Ensuite, tu définis le type d'alignement

- Et en dernier, tu définis le point d'alignement.

 

Mais en gros, voici un petit bout de code qui permettra peut-être de mieux expliquer comment il faut procéder:

 Sub test()

   Dim PointInsertion(0 To 2)  As Double
   Dim PointAlignement(0 To 2)  As Double
   Dim L_obj_Texte As AcadText

   PointInsertion(0) = 0#:     PointInsertion(1) = 0#:     PointInsertion(2) = 0#
   PointAlignement(0) = 2#:     PointAlignement(1) = 2#:     PointAlignement(2) = 0#

   Set L_obj_Texte = ThisDrawing.ModelSpace.AddText("MonTexte", PointInsertion, 30)
   L_obj_Texte.Alignment = acAlignmentCenter
   L_obj_Texte.TextAlignmentPoint = PointAlignement
End Sub

 

Je ne sais pas si ça t'aidera à faire ce que tu veux, sinon regarde également les exemples de l'aide.

 

a+

_______________________________

R.A.

Développeur AutoCAD C#.net

www.danialu.fr

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Bonjour,

 

Désolé j'ai mis tres tres longtemps à revenir, (bloquer sur des macro excel).

 

Pour résumer :

 

J'extrait (depuis un module vba) les informations provenant de diffrents textes présents dans mon plan (suivant les calques) sur les quelles ils se trouvent et notamment le point d'insertion.

 

Ce point d'insertion me sert pour créé des blocs avec attributs et les inserer à ce fameux point d'insertion.

 

Hors le texte est justifier en milieux centre, mais pour que mon point d'insertion soit correct il faut que ce texte soit justifier à gauche.

 

Exemple : si on selectionne un texte (simple) qui est justifié en milieu centre, il apparait deux poignées de selections, une au centre (qui correspond au point sur le quel je doit me basé pour mon insertion de bloc) et une à gauche qui correspond au point d'insertion du texte.

 

Si on change la propriét du texte en justification : gauche, le texte ce "déplace" pour aligné la poignée gauche sur l'ancien point central.... et il ne reste plus qu'une poignée...

 

Si j'utilise acAlignmentleft dans ma macro, le texte ne se "déplace" pas, il supprime juste la poignée centrale.....

 

Je ne suis pas sur d'être bien clair la ........ :casstet:

 

 

(Pour info j'ai tester ces parametre la : 'Set Textes = Textes.TextAlignmentPoint("left")

 

'Textes.Alignment = acAttachmentPointleft)

 

[Edité le 18/5/2011 par Arno_Ap]

Lien vers le commentaire
Partager sur d’autres sites

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é