Как получить имя метки в файле Autocad с помощью C # - PullRequest
1 голос
/ 15 августа 2011

Я думаю, это просто сделать, но я не знаю с чего начать? Я хочу получить имя слоя или имя метки в файле AutoCAD с помощью C #. Я ищу форумы, но я действительно нахожу что-нибудь ценное. Я нашел ObjectARX и AutoLisp, но я не нашел учебника по этим API. Итак, я хочу привести простой пример о доступном файле autocad.

Ответы [ 2 ]

1 голос
/ 19 июня 2012

Все просто так:

[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

1 голос
/ 12 октября 2011

Если вы загрузили ObjectARX SDK с официального сайта , он содержит множество примеров проектов, которые помогут вам начать работу. Вам понадобятся некоторые знания AutoCAD, чтобы понять структуру базы данных .dwg, предоставляемую API. Будьте готовы инвестировать значительное время в проект.

Если вы просто ищете простой одноразовый дамп данных в файле .dwg, обратитесь к локальному составителю, поскольку в интерфейсе AutoCAD есть команда для выполнения этого, называемая мастером извлечения данных.

В другом ответе на stackoverflow рекомендуем главу этой книги как способ понять функции подключения к базе данных AutoCAD.

...