Arno_Ap Posté(e) le 17 mars 2011 Posté(e) le 17 mars 2011 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
rom1_am Posté(e) le 17 mars 2011 Posté(e) le 17 mars 2011 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#.netwww.danialu.fr
Arno_Ap Posté(e) le 17 mars 2011 Auteur Posté(e) le 17 mars 2011 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
rom1_am Posté(e) le 18 mars 2011 Posté(e) le 18 mars 2011 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#.netwww.danialu.fr
Arno_Ap Posté(e) le 18 mai 2011 Auteur Posté(e) le 18 mai 2011 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]
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant