1

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

4

2 に答える 2

1

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

.dwgファイル内のデータの単純な1回限りのダンプを探している場合は、データ抽出ウィザードと呼ばれるこれを行うためのコマンドがAutoCAD UIにあるため、ローカルの製図者に問い合わせてください。

stackoverflowに関する別の回答では、AutoCADデータベース接続機能を理解する方法としてこの本の章をお勧めします。

于 2011-10-12T17:10:04.000 に答える
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を参照してください。

于 2012-06-19T00:38:37.633 に答える