2013-06-27 2 views
1

J'ai une tâche intéressante. Dans l'un des dessins, j'ai un champ MText. Donc, mon plugin doit savoir, comment obtenir exactement ce champ de ce dessin et d'autres. Existe-t-il des attributs ou des attributs, que puis-je utiliser pour déterminer le champ Mtext sur différents dessins?Obtenir des données Mtext à partir du fichier dwg

+0

Peut-être que les réponses à cette question http://stackoverflow.com/questions/3154613/ vous aidera le long? – Toastgeraet

Répondre

3

Je pense que cela peut être ce que vous cherchez ...

using Autodesk.AutoCAD.ApplicationServices; 
    using Autodesk.AutoCAD.DatabaseServices; 
    using Autodesk.AutoCAD.Runtime; 
    using AcApplication = Autodesk.AutoCAD.ApplicationServices.Application; 


    public static Document acDoc { 
     get { 
      return Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; 
     } 
    } 

    public static MText getMTextObj(string TextYouNeed) 
    { 
     var ed = acDoc.Editor; 
     var selMText = new TypedValue[1]; 
     selMText.SetValue(new TypedValue(0,"MTEXT"),0); 
     var MTextObjs = ed.SelectAll(new SelectionFilter(selMText)); 

     using (var Transaction = acDoc.Database.TransactionManager.StartTransaction()) { 
      foreach (ObjectId MTextObjId in MTextObjs.Value.GetObjectIds()) { 
       var current_MTextObj = Transaction.GetObject(MTextObjId,OpenMode.ForWrite) as MText; 
       if(current_MTextObj.Text.Equals(TextYouNeed)) 
        // return current_MTextObj; 
        // or 
        // do somehting else 
      } 
     } 
     Transaction.Commit(); // if you change something. 
    } 
Questions connexes