2013-06-27 32 views
1

我有一些有趣的任務。在其中一張圖中,我有一個MText字段。所以,我的插件需要知道,如何從該圖形和其他圖形中準確獲取該字段。 是否有任何屬性或水平,我可以用於確定不同圖紙上的多行文字域?從dwg文件獲取多行文本數據

+0

也許這個問題的答案http://stackoverflow.com/questions/3154613/將沿着幫你嗎? – Toastgeraet

回答

3

我想這可能是你在找什麼...

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. 
    }