2011-08-15 14 views
1

私はこれを行うのは簡単だと思いますが、私はどのように起動するのかわかりません?私はC#を使用してautocadファイルのレイヤー名またはラベル名を取得したい。私はフォーラムを検索しますが、私は本当に価値のあるものを見つけます。私はObjectARXとAutoLispを見つけましたが、このAPIについてのチュートリアルは見つかりません。だから、私はリーチautocadファイルについての簡単な例をしたい。C#を使ってAutocadファイルのラベル名を取得する方法

+0

から見つけることができます/ tdn – PeskyGnat

答えて

1

ObjectARX SDKをofficial siteからダウンロードした場合は、開始するためのサンプルプロジェクトが多数含まれています。 APIによって公開されている.dwgデータベースの構造を理解するには、AutoCADの知識が必要です。プロジェクトに多大な時間を費やす準備をしてください。

.dwgファイルのデータを単純に1回だけダンプしたいのであれば、AutoCADのUIにデータ抽出ウィザードというコマンドがあるので、ローカルのdrafterに依頼してください。

さらに、AutoCADデータベース接続機能を理解する方法として、this book chapterをお勧めします。

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://www.opendesign.com/the_oda_platformをAutoCADファイルを読み込むための.NET APIを持つhttp://spiderinnet1.typepad.com/blog/2012/06/autocad-net-iterate-through-layer-table.html

関連する問題