Bonjour a tous,
J'ai un petit souci pour vouloir écrire dans des rectangles à partir du VBA excel (version 2007) dans Autocad (version 2018)
Le rectangle j'arrive a le faire y a pas de souci, je connais également les X et Y des 4 coins.
Je souhaiterai écrire au centre du rectangle mais le nombre de caractère peux changer, et je ne trouve pas comment faire.
Pour info les Points(0 à 4) sont déclarer bien avant en Double, se sont les coordonées x et y d'une polyligne qui forme le rectangle
J'ai donc essayer avec ceci
Mais j'obtiens le début du texte et le bas du texte en point d'insertion "InsPoint"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 'déclaration des variables Dim ObjTexte As AcadText Dim InsPoint(0 To 2) As Double Dim Haul_Texte As Double Dim Val_Texte As String Dim Milieu(0 To 1) As Double Milieu(0) = Points(0) + ((Points(4) - Points(0)) / 2) Milieu(1) = Points(3) + ((Points(1) - Points(3)) / 2) 'affectation des variables InsPoint(0) = Milieu(0) InsPoint(1) = Milieu(1) InsPoint(2) = 0 Haul_Texte = 60 Val_Texte = "Cartouche" ' Création du texte Set ObjTexte = AcadPlan.ModelSpace.AddText(Val_Texte, InsPoint, Haul_Texte) ObjTexte.Rotation = 0 ' l'angle 0 (zéro) est la direction des X ObjTexte.Update
Comment je peux dire de reculer de x mm en fonction du nombre de caractère et de descendre de Y mm en fonction de la hauteur du texte ??
---------------------------------------------------------------------------------------------------
Sinon j'ai essayer autrement avec l'envoie de commande mais il ne m'écrit pas le text automatiquement excel m'envoi sur autocad pour que je tape moi même le mot et quand je valide mon mot dans autocad, ma macro excel reprend
les Origine(0 à 1) étant les coins de mon rectangle et le "MC" pour le centrage horizontale et verticale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AcadApp.ActiveDocument.SendCommand "TEXTMULT" & vbCr & Origin(0) & "," & Origin(1) & vbCr & "J" & vbCr & "MC" & vbCr & "H" & vbCr & "60" & vbCr & Origin(0) + 1000 & "," & Origin(1) - 100 & vbCr & "CARTOUCHE"
Et du coup ça fonctionne, mais je suis obliger de taper le texte a chaque fois et je voudrais l'automatiser.
Auriez vous une idée de comment je peux résoudre mon problème de texte centré automatique ??
Merci
Partager