sechanbask Posté(e) le 24 novembre 2006 Posté(e) le 24 novembre 2006 Bonjour, Je cherche à connaitre sous forme de fonction si possible la taille de l'interlignage en fonction de la taille du texte. j'ai bien essayé de le mesurer en faisant un TCIRCLE autour de mon texte puis en tabluant les mesures sous excel pour en tirer la fonction, mais je ne suis pas satisfait du résultat. Je voudrais connaitre l'interlignage pour pouvoir insérer un Mtext de 2 lignes avec comme point de base le milieu de la hauteur. Merci par anticipation. [Edité le 19/12/2006 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 26 novembre 2006 Auteur Posté(e) le 26 novembre 2006 Bonjour, Les propriétés du Mtext m'ont donné la solution j'ai donc pris, pour plusieurs taille de texte, l'interlignage et j'ai tabulé ça sous EXCEL: Soit y l'interlignage, et x la taille du Mtext: Y=(5/3)*x et soit Z la distance séparant le bas de la première ligne et le haut de la seconde Z=(2/3)*x si ça peut servir à quelqu'un. Sait-on jamais... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 13 mai 2007 Auteur Posté(e) le 13 mai 2007 En fait ça ne fonctionne que sur certaines polices... alors je suis preneur d'une solution générale car pour faire une insertion automatique avec une macro VBA, ça me serait bien utile... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
(gile) Posté(e) le 13 mai 2007 Posté(e) le 13 mai 2007 Salut, La valeur par défaut pour l'espacement entre les lignes est bien de 5/3, mais il faut la multiplier par le "Facteur d'espacement" (entre 0.25 et 4) http://img524.imageshack.us/img524/3949/txtmp3.png Je ne connais pas le VBA, mais tu retrouvreras la hauteur nominale avec Height Property, le facteur d'espacement avec LineSpacingFactor Property. En multipliant ces deux résultants entre eux puis par 5/3 tu auras l'espacement entre les lignes tel que donné dans la fenêtre de propriété. Tu peux aussi obtenir directement ce résultat avec LineSpacingDistance Property Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sechanbask Posté(e) le 7 juillet 2007 Auteur Posté(e) le 7 juillet 2007 Merci beaucoup, j'ai trouvé comment le faire en VBA, c'est assez bizarre voire stupide mais bon j'ai pas trouvé mieux pour l'instant : je le posterais quand je ferai le tri dans ma procédure. Bon voilà le code : s'il manque des explications ou de déclarations de variables... demandez-moi, je serai ravi que ce code aide quelqu'un: dim taille as single dim Mtextobj as dim sngInterlignegc as single dim decalage as single dim directiontexte as double dim pins as variant taille = ThisDrawing.ActiveTextStyle.LastHeight 'si on ne connait pas l'interligne If sngInterlignegc = 0 Then 'point d'insertion du Mtextobj sui sera supprimé Dim dblPinsgc(0 To 2) As Double dblPinsgc(0) = 0: dblPinsgc(1) = 0: dblPinsgc(2) = 0 'insertion du Mtextobj Set MTextObj = ThisDrawing.ModelSpace.AddMText(dblPinsgc, 25, "chaine inutile") 'on trouve la distance d'espacement sngInterlignegc = MTextObj.LineSpacingDistance With MTextObj .Update End With 'on supprime l'objet car on ne pouvait pas bien le centrer puisqu'on dois connaitre sngInterlignegc 'avant d'utiliser la méthode Set MTextObj.Delete End If 'on connait maintenant sngInterlignegc donc on peut calculer le décalage decalage = taille / 2 + sngInterlignegc / 2 'point d'insertion pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "Insérer : " & texteins) directiontexte = ThisDrawing.Utility.GetOrientation(pins, vbCrLf & "Direction du texte...") 'Création du text multiligne 'Centrer en X le texte pins(0) = pins(0) - decalage * Sin(directiontexte) 'Centrer en Y le texte pins(1) = pins(1) + decalage * Cos(directiontexte) 'insertion du texte Set MTextObj = ThisDrawing.ModelSpace.AddMText(pins, largeur_du_Mtext, texteins) sngInterlignegc = MTextObj.LineSpacingDistance With MTextObj 'partie à modifier .Rotation = directiontexte .AttachmentPoint = acAttachmentPointMiddleLeft 'regen du texte uniquement .Update End With Je vais également le poster dans les routines VBA. [Edité le 7/7/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
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