rom1_am Posté(e) le 31 juillet 2012 Posté(e) le 31 juillet 2012 Bonjour, En créant une définition de bloc et ses attributs par programmation, je souhaiterais aussi paramétrer sur la définition de l'attribut les 2 options suivantes que l'on retrouve dans la boîte de dialogue 'Style de texte':- Annotatif = vrai => - Faire correspondre l'orientation du texte à la présentation = vrai - Hauteur du texte sur le papier = x,00 Je ne trouve pas quelles sont les propriétés de la définition d'attribut pour renseigner ces paramètres.J'ai également essayer d'appliquer un style de texte existant ayant déjà ces paramètres à la définition d'attribut, mais ces paramètres ne sont pas repris correctement sur le bloc qui est créé. Ci-dessous, le code de la fonction.Merci de votre aide public static ObjectId AddAttributeDefinition( this BlockTableRecord btr, Point3d position, string value, string tag, string prompt, ObjectId style, bool invisible, string layer = "0", bool annotative = false) { ObjectId result = ObjectId.Null; Database db = btr.Database; using (Transaction tr = db.TransactionManager.StartTransaction()) { AttributeDefinition attDef = new AttributeDefinition(position, value, tag, prompt, style); attDef.Invisible = invisible; attDef.Layer = layer; if (annotative) { attDef.Annotative = AnnotativeStates.True; } result = btr.AppendEntity(attDef); tr.AddNewlyCreatedDBObject(attDef, true); tr.Commit(); } return result; } _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
Maxence DELANNOY Posté(e) le 31 juillet 2012 Posté(e) le 31 juillet 2012 Il y a certaines données liées à l'annotativité qui sont stockées dans les données étendues. C'est peut être là qu'il faut regarder : http://adndevblog.typepad.com/autocad/2012/07/identifying-whether-dim-style-is-annotative-or-not.html Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
rom1_am Posté(e) le 31 juillet 2012 Auteur Posté(e) le 31 juillet 2012 (modifié) Merci, j'ai fouillé dans les xdata mais je n'ai rien trouvé. A priori, je pense avoir résolu le problème en ajoutant l'instruction 'SetFromStyle': attDef.Annotative = AnnotativeStates.True; attDef.SetFromStyle(); Il faut que je teste un peu plus mais ça a l'air d'être bon. EDIT: c'est bon, cela a bien résolu le problème. Modifié le 31 juillet 2012 par rom1_am _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
(gile) Posté(e) le 31 juillet 2012 Posté(e) le 31 juillet 2012 Salut Romain, J'arrive un peu tard, mais si tu veux ne pas dépendre des paramètres d'un style de texte (avec un style non annotatif par exemple), tu peux utiliser SetPaperOrientation() : public static ObjectId AddAttributeDefinition( this BlockTableRecord btr, Point3d position, string value, string tag, string prompt, ObjectId style, bool invisible, string layer = "0", bool annotative = false, bool paperOrient = false) { ObjectId result = ObjectId.Null; Database db = btr.Database; using (Transaction tr = db.TransactionManager.StartTransaction()) { AttributeDefinition attDef = new AttributeDefinition(position, value, tag, prompt, style); attDef.Invisible = invisible; attDef.Layer = layer; if (annotative) { attDef.Annotative = AnnotativeStates.True; attDef.SetPaperOrientation(paperOrient); } result = btr.AppendEntity(attDef); tr.AddNewlyCreatedDBObject(attDef, true); tr.Commit(); } return result; } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rom1_am Posté(e) le 1 août 2012 Auteur Posté(e) le 1 août 2012 Merci Gile. Où est-ce que tu trouves la correspondance entre les propriétés et la fonction en dotnet. Dans la doc ObjectArx et dans le developpers'guide, je n'ai rien trouvé pour régler ces propriétés. Merci. A+ _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
(gile) Posté(e) le 1 août 2012 Posté(e) le 1 août 2012 Salut Romain, En fait, souvent j'utilise l'Intellisense "à l'intuition". Par exemple, si tu tapes "attDef.paper", l'Intellisense te propose toutes les méthodes et propriétés qui contiennent "paper".Ensuite je regarde les docs, et bien sûr, je teste. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rom1_am Posté(e) le 1 août 2012 Auteur Posté(e) le 1 août 2012 Mouais... Merci Gile, pas de solution miracle quoi.C'est aussi comme cela que j'avais procédé mais mon intuition avait perdu patience... Merci. A bientôt _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.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