2011-08-15 124 views
1

我認爲這很簡單,但我不知道如何啓動?我想使用c#在autocad文件中獲取圖層名稱或標籤名稱。我搜索論壇,但我真的找到有價值的東西。我找到了ObjectARX和AutoLisp,但我沒有找到任何有關API的教程。所以,我想簡單舉一個關於覆蓋autocad文件的例子。如何在Autocad文件中使用C#獲取標籤名稱

+0

開放式設計聯盟具有.NET API進行讀取AutoCAD文件以及 http://www.opendesign.com/the_oda_platform/TDN – PeskyGnat

回答

1

如果您從official site下載了ObjectARX SDK,它包含許多示例項目以幫助您入門。您將需要具備一些AutoCAD知識來了解由API公開的.dwg數據庫的結構。準備投入大量時間在項目中。

如果您只是在.dwg文件中尋找簡單的一次性數據轉儲,請詢問您的本地繪圖程序,因爲AutoCAD UI中有一個用於執行此操作的命令,即數據提取向導。

stackoverflow的另一個答案建議this book chapter作爲了解AutoCAD數據庫連接功能的一種方法。

1

很簡單如下:

[CommandMethod("LayerIterator")] 
public static void LayerIterator_Method() 
{ 
    Database database = HostApplicationServices.WorkingDatabase; 
    using (Transaction transaction = database.TransactionManager.StartTransaction()) 
    { 
     SymbolTable symTable = (SymbolTable)transaction.GetObject(database.LayerTableId, OpenMode.ForRead); 
     foreach (ObjectId id in symTable) 
     { 
      LayerTableRecord symbol = (LayerTableRecord)transaction.GetObject(id, OpenMode.ForRead); 

      //TODO: Access to the symbol 
      MgdAcApplication.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format("\nName: {0}", symbol.Name)); 
     } 

     transaction.Commit(); 
    } 
} 

詳情可http://spiderinnet1.typepad.com/blog/2012/06/autocad-net-iterate-through-layer-table.html找到

相關問題