Deleligne Posté(e) le 23 janvier 2006 Posté(e) le 23 janvier 2006 Bonjour à tous,Voilà, pour être bref, j'aimerai, en VBA, écrire un texte (simple et/ou multiligne) avec une rotation horizontale (qui correspondrait à 100 grade (90°) si mon SCU serai parallèle à la fenêtre). En gros, selon la direction de mon curseur (Résol;rotation). Je pense que cela peut avoir un rapport avec la variable SNAPANG mais..... je but ! ! Et aussi, comment créer un nouveau style de police (toujours en VBA) Merci aux créateur de ce site et merci à tous pour l'alimenter...
didier Posté(e) le 23 janvier 2006 Posté(e) le 23 janvier 2006 bonjour,un peu trop bref, peut être, tu veux que ce texte provienne d'un programme VBA ?c'est à dire que tu dois écrire des renseignements via un VBAet tu veux que ce texte obtenu se colle sur l'axe des X du scu courant ? si oui, précise le et on va t'aider... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Deleligne Posté(e) le 23 janvier 2006 Auteur Posté(e) le 23 janvier 2006 Bravo Didier, c'est exactement çà ! !Et le tout, après avoir créé un style de texte (avec simplex.shx).... Encore bravo...et merci
didier Posté(e) le 23 janvier 2006 Posté(e) le 23 janvier 2006 Bien le Bonsoir,je te fais ça vite fait, sans contrôles donc tiens moi au courant;l'idée c'est de dessiner une ligne tempo alignée sur l'axe des X,mesurer son gisement et appliquer celui ci au texte.à améliorer, mais ce soir je suis gavé.Sub TexteAxeX()Dim EntTexte As AcadTextDim ValTexte As StringDim lignetest As AcadLineDim Pt1(0 To 2) As DoubleDim Pt2(0 To 2) As Double ValTexte = "Ceci est mon Texte" X1 = 0Y1 = 0Z1 = 0X2 = 10Y2 = 0Z2 = 0 Pt1(0) = X1Pt1(1) = Y1Pt1(2) = Z1Pt2(0) = X2Pt2(1) = Y2Pt2(2) = Z2Pd = ThisDrawing.Utility.TranslateCoordinates(Pt1, acUCS, acWorld, False)Pa = ThisDrawing.Utility.TranslateCoordinates(Pt2, acUCS, acWorld, False) Set lignetest = ThisDrawing.ModelSpace.AddLine(Pd, Pa)angledir = lignetest.Anglelignetest.Delete Set EntTexte = ThisDrawing.ModelSpace.AddText(ValTexte, Pt1, 0.75)EntTexte.Rotation = angledirEntTexte.UpdateEnd Subamicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Deleligne Posté(e) le 24 janvier 2006 Auteur Posté(e) le 24 janvier 2006 Bonjour didier Et merci de ton attention, Ta routine m'a ouverte de nouvelle perspective, surtout grace à "TranslateCoordinates" que je ne connaissais pas.Je vais juste essayer de l'adapter à mon besoin, c'est à dire forcer un texte horizontal même si le SCU ne l'est pas... mais je bloque un peu... En tout cas, merci encore...
PourquoiPas Posté(e) le 25 janvier 2006 Posté(e) le 25 janvier 2006 Bravo didier, très bonne idée, Je suis aussi très intéressé par la création d'un texte toujours horizontal (parallèle au bas de l'écran) quelque soit l'orientation du SCU. Dans la routine, angledir ne serait pas toujours égale à 100gr ? Davantage d'avantages avantage davantage (Bobby Lapointe)
DenisHen Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 Bonjour à tous... Voilà, j'ai un petit souci... La quazi totalitée de mes dessins sont orienté (rotation SCU). J'ai fais une routine pour celà en LiSP et je stock cette variable en mémoire dans le dessin. En VBA, j'ai récupéré cette variable "Angle" qui est en grade... Mon problème est que dans l'extrait de routine qui suit, cette rotation n'est pas bonne : Set MtextObj = ThisDrawing.ModelSpace.AddMText(returnPnt, 0, Texte) MtextObj.Rotation = Val(Angle) MtextObj.AttachmentPoint = acAttachmentPointMiddleCenter 'MtextObj.Width = 0 MtextObj.Update Je suis en grades mon axe des Y est au NORD et je tourne dans le sens horaire... Si quelqu'un a une ch'tit idée... Merci, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
winfield Posté(e) le 5 novembre 2006 Posté(e) le 5 novembre 2006 En VBA, j'ai récupéré cette variable "Angle" qui est en grade... MtextObj.Rotation = Val(Angle) Si ta variable Angle est en grade, à 1ère vu je dirais que c'est à cause de çaTransforme la valeur en radian. Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.
DenisHen Posté(e) le 5 novembre 2006 Posté(e) le 5 novembre 2006 Merci winfield, j'ai maintenant corrigé, Angle est en radian... Mais ça ne convient toujours pas... Je pense que c'est le sens de rotation... AutoCAD travail par défaut dans le sens trigo, et moi en sens horaire... Je cherche mais je n'ai pas trouvé grand chose... Merci à toi, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
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