Импорт координат из текстового файла в чертёж nanoCAD на классическом.NET API. Курсы AutoCAD! Загрузка точек в автокад

  • CAD/CAM
  • Одним из наиболее популярных вопросов по программированию под nanoCAD является «Как мне импортировать точки из текстового файла?». Задача это несложная, но профессиональный проектировщик не обязан быть профессиональным программистом, поэтому эту статью мы написали в стиле «для начинающих».

    Импортировать координаты в чертёж можно на любом из существующих в nanoCAD видов API. Мы решили выбрать.NET и сравнить два близких API: классический.NET API и кросс-САПР-платформенный MultiCAD.NET API. Под катом - первая часть - импорт точек на классическом.NET API.

    Дано: текстовый файл с координатами X, Y, Z точек, одна точка на строке. Координаты разделены пробелом, разделитель дробной части - точка.

    Требуется: написать приложение, которое по команде IMPORTCOORDS запрашивает имя файла и импортирует найденные координаты в текущее пространство чертёжа в виде объектов DatabaseServices.DBPoint . Координаты объектов должны импортироваться в текущей пользовательской системе координат (UCS) чертежа.

    Создание и настройка рабочего проекта
    Для создания приложения нам понадобятся следующие инструменты:
    • nanoCAD (версия не ниже 3.5)
    • Microsoft Visual Studio 2008 (nanoCAD 3.5 - nanoCAD 5.0 поддерживают загрузку.NET-приложений, построенных на.NET Framework 3.5).
    Ну и, конечно же, подразумевается, что вы хотя бы немного умеете программировать на языке C#. Если нет - добро пожаловать в библиотеку MSDN .

    Создаем новый проект в Visual Studio со следующими настройками:

    • Project type: Visual C#
    • Template: Class Library
    Таким образом, наше приложение представляет собой обычную.NET-сборку (DLL), которая впоследствие будет загружена в nanoCAD.
    Во вкладке References подключаем следующие библиотеки, входящие в состав комплекта nanoCAD:
    • hostdbmgd.dll
    • hostmgd.dll
    Теперь можно смело переходить к написанию самой программы.
    Структура программы
    Реализацию можно разбить на следующие шаги:
    1. Зарегистрировать команду IMPORTCOORDS.
    2. Получить базу данных текущего чертежа и редактор командной строки.
    3. Запросить имя файла с координатами.
    4. Открыть файл, прочитать строки с координатами.
    5. Создать объекты DBPoint с отдельными координатами. Преобразовать их координаты в текущую пользовательскую систему координат.
    6. Добавить созданные объекты в текущее пространство чертежа (Model Space или Paper Space).
    Для того, чтобы зарегистрировать команду, которая будет вызывать наше приложение в nanoCAD нужно перед определением метода, который будет вызываться по этой команде, объявить аттрибут и указать имя команды. Обратите внимание, метод должен иметь модификатор public:

    Public void importCoords() { ... }
    Прежде чем продолжить, хотелось бы остановиться и в двух словах рассказать, что же такое «база данных чертежа». .dwg-файл представляет собой базу данных, имеющую строгую структуру, основные элементы которой - таблицы (Symbol Tables), которые содержат все объекты чертежа. Это не только графические объекты, которые мы видим на чертеже (прямые, дуги, точки и тд.), но и множество других объектов, которые определяют содержимое и настройки чертежа. Например, таблица слоев (Layer Table) содержит в себе все слои, которые имеются на чертеже, таблица типов линий (Linetype Table) хранит все стили линий, определенные в чертеже, таблица пользовательских систем координат (UCS Table) - все системы координат, созданные пользователем для данного чертежа, и др. Таким образом, создать новый объект чертежа - значит создать соответствующий объект базы данных.

    Итак, продолжаем. В первую очередь нам необходимо выбрать из всех открытых документов текущий и открыть его базу данных. Для этого мы получаем объект-менеджер всех открытых документов, и затем с его помощью и базу данных, с которой мы будем дальше работать.

    DocumentCollection dm = Application.DocumentManager; Database db = dm.MdiActiveDocument.Database;
    Для того, чтобы наше приложение запрашивало имя файла, необходимо получить объект Editor и вызвать метод, который запрашивает пользовательский ввод определённого типа (в нашем случае имя файла):

    // Получаем редактор командной строки Editor ed = dm.MdiActiveDocument.Editor; // Объект для получения результата запроса PromptFileNameResult sourceFileName; // Выводим запрос в командную строку и получаем результат sourceFileName = ed.GetFileNameForOpen("\nEnter the name of the coordinates file to be imported:"); if (sourceFileName.Status == PromptStatus.OK) { ... }
    Получить координаты из файла довольно просто, используя C#-функционал для чтения текстовых файлов и работы со строковыми типами данных:

    // Читаем файл, получаем содержимое в виде массива строк string lines = File.ReadAllLines(sourceFileName.StringResult); // Для каждой строки записываем массив из подстрок, разделенных пробелом (т.к по условию задачи в качестве разделителя координат выступает символ пробела). // Таким образом получаем массив из координат, только в текстовом виде, затем конвертируем их в числа типа double. string coord; foreach (string s in lines) { coord = s.Split(new char { " " }); double coordX = Convert.ToDouble(coord); double coordY = Convert.ToDouble(coord); double coordZ = Convert.ToDouble(coord); }
    Переходим к созданию графических примитивов (Entity). Как уже отмечалось выше, для того, чтобы создать любой объект (не только графический), который будет храниться в чертеже, его необходимо добавить в базу данных чертежа, а именно в соответствующий объект-контейнер. Так, например, все слои хранятся как записи в таблице слоев (Layer Table), которая является в этом случае для них объектом-контейнером. Общая структура базы данных выглядит следующим образом:

    Графические примитивы хранятся в базе не напрямую, а в структуре отдельных блоков, которые в свою очередь являются записями в таблице блоков (Block Table). Это очень удобно, поскольку такой механизм позволяет легко группировать объекты в именованные блоки и управлять ими, как единым целым. К слову, пространство модели и пространства листа в базе также представлены отдельными блоками. Таким образом, для графического примитива контейнером будет являться отдельный блок, который, в свою очередь, будет принадлежать родительскому объекту - таблице блоков.

    Раз мы работаем с базой данных, то необходимо обеспечить ее целостность и защиту в случае, если во время выполнения программы произошла какая-то ошибка. Для этой цели применяется механизм транзакций. Транзакции объединяют в себе целый ряд операций, которые выполняются как единое целое: если что-то пошло не так, транзакция отменяется, и объекты, созданные в рамках этой транзакции не будут добавлены в документ. Если же все операции завершились успешно, то транзакция подтверждается, и объекты добавляются в базу.

    Вооружившись этими знаниями, можем смело добавлять в текущее пространство чертежа примитивы «точка» по координатам, которые мы прочитали из файла.

    Using (Transaction tr = db.TransactionManager.StartTransaction()) { // Можно обойтись без таблицы блоков и получить блок текущего пространство чертежа прямо из объекта, представляющего базу данных BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite); string lines = File.ReadAllLines(sourceFileName.StringResult); string coord; foreach (string s in lines) { coord = s.Split(new char { " " }); double coordX = Convert.ToDouble(coord); double coordY = Convert.ToDouble(coord); double coordZ = Convert.ToDouble(coord); DBPoint point = new DBPoint(new Point3d(coordX, coordY, coordZ)); btr.AppendEntity(point); tr.AddNewlyCreatedDBObject(point, true); } btr.Dispose(); tr.Commit(); }
    Задача практически решена. Осталось выполнить одно условие: примитивы-точки должны создаваться в координатах пользовательской системы координат (UCS). Необходимо отметить, что примитивы хранятся в базе данных чертежа в мировой системе координат (WCS). Следовательно, при создании примитивов необходимо выполнить преобразование: UCS->WCS. Делается это при помощи матрицы пользовательской системы координат:

    Matrix3d ucsMatrix = ed.CurrentUserCoordinateSystem;
    Добавим преобразование:

    { ... point.TransformBy(ucsMatrix.Inverse()); ... }
    Итак, программа полностью написана. Что же дальше?

    Загрузка приложения в nanoCAD
    Осталась самая приятная часть - загрузить программу в nanoCAD и любоваться результатами своей работы. Как вы помните, мы создавали рабочий проект как библиотеку классов, поэтому после успешной компиляции будет построена сборка с именем вашего проекта. Открываем nanoCAD, в командной строке пишем команду NETLOAD, выбираем из списка построенную библиотеку и загружаем. Для запуска программы просто введите имя команды IMPORTCOORDS в командной строке.
    Импорт координат. Версия 2.0
    Усовершенствуем первую версию приложения, добавив несколько полезных функций и элементы пользовательского интерфейса.

    Если первая версия приложения «понимала» текстовый файл, в котором координаты разделены только пробелами и в качестве десятичного разделителя использовалась точка, то теперь приложение сумеет «распознать» координаты, разделенные символом табуляции, пробелом или точкой с запятой. Что же касается десятичного разделителя, то в качестве него теперь может выступать как точка, так и запятая, импорт будет производиться без учета региональных настроек. По команде IMPORTCOORDS теперь будет открываться модальный диалог импорта координат, в котором пользователь может выбрать файл и указать желаемые настройки импорта координат.

    Общий механизм импорта координат и создания примитивов остается практически без изменений, однако теперь это будет происходить в рамках класса формы, а задача метода-обработчика команды IMPORTCOORDS теперь сводится лишь к созданию объекта формы и выводу формы на экран в виде модального диалога:

    Public void importCoords() { Form form = new ImportForm(); HostMgd.ApplicationServices.Application.ShowModalDialog(form); }
    После чего управление будет передано окну формы импорта координат.

    Форма приложения
    Форма для приложения включает в себя следующие элементы:
    • Кнопка для открытия файла
    • Диалог открытия файла
    • Группа чекбоксов для выбора символов-разделителей координат: табуляция, пробел, точка с запятой
    • Текстовое поле для предварительного просмотра разбора строк c координатами
    • Кнопка для импорта координат
    • Кнопка отмены
    Используя эти элементы управления, пользователь теперь может указать желаемые символы-разделители, проверить результат в поле предварительного просмотра (примерно так, как это сделано в MS Excel при импорте текстового файла) и инициировать импорт координат:

    Совместимость с AutoCAD
    В заключение хотелось бы отметить, что приложение, написанное для nanoCAD, может быть с легкостью перекомпилировано и для работы в AutoCAD. Для этого необходимо сделать следующее:
    • Во вкладке References подключить следующие библиотеки, входящие в состав ObjectARX:
      • AcCoreMgd.dll
      • AcDbMgd.dll
      • AcMgd.dll
    • Добавить в код приложения директиву условной компиляции, для определения пространств имен, которые будут использоваться для компиляции под nanoCAD или AutoCAD:
      #if ACAD using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; using Platform = Autodesk.AutoCAD; using PlatformDb = Autodesk.AutoCAD; #else using HostMgd.ApplicationServices; using HostMgd.EditorInput; using Teigha.DatabaseServices; using Teigha.Geometry; using Teigha.Runtime; using Platform = HostMgd; using PlatformDb = Teigha; #endif
    • Заменить в коде специфичные для каждой платформы пространства имен на определенные выше псевдонимы: Platform и PlatformDb .
    Обе версии проекта доступны

    Одним из наиболее популярных вопросов по программированию под nanoCAD является «Как мне импортировать точки из текстового файла?». Задача это несложная, но профессиональный проектировщик не обязан быть профессиональным программистом, поэтому эту статью мы написали в стиле «для начинающих».

    Импортировать координаты в чертёж можно на любом из существующих в nanoCAD видов API. Мы решили выбрать.NET и сравнить два близких API: классический.NET API и кросс-САПР-платформенный MultiCAD.NET API. Под катом - первая часть - импорт точек на классическом.NET API.

    Дано: текстовый файл с координатами X, Y, Z точек, одна точка на строке. Координаты разделены пробелом, разделитель дробной части - точка.

    Требуется: написать приложение, которое по команде IMPORTCOORDS запрашивает имя файла и импортирует найденные координаты в текущее пространство чертёжа в виде объектов DatabaseServices.DBPoint . Координаты объектов должны импортироваться в текущей пользовательской системе координат (UCS) чертежа.

    Создание и настройка рабочего проекта
    Для создания приложения нам понадобятся следующие инструменты:
    • nanoCAD (версия не ниже 3.5)
    • Microsoft Visual Studio 2008 (nanoCAD 3.5 - nanoCAD 5.0 поддерживают загрузку.NET-приложений, построенных на.NET Framework 3.5).
    Ну и, конечно же, подразумевается, что вы хотя бы немного умеете программировать на языке C#. Если нет - добро пожаловать в библиотеку MSDN .

    Создаем новый проект в Visual Studio со следующими настройками:

    • Project type: Visual C#
    • Template: Class Library
    Таким образом, наше приложение представляет собой обычную.NET-сборку (DLL), которая впоследствие будет загружена в nanoCAD.
    Во вкладке References подключаем следующие библиотеки, входящие в состав комплекта nanoCAD:
    • hostdbmgd.dll
    • hostmgd.dll
    Теперь можно смело переходить к написанию самой программы.
    Структура программы
    Реализацию можно разбить на следующие шаги:
    1. Зарегистрировать команду IMPORTCOORDS.
    2. Получить базу данных текущего чертежа и редактор командной строки.
    3. Запросить имя файла с координатами.
    4. Открыть файл, прочитать строки с координатами.
    5. Создать объекты DBPoint с отдельными координатами. Преобразовать их координаты в текущую пользовательскую систему координат.
    6. Добавить созданные объекты в текущее пространство чертежа (Model Space или Paper Space).
    Для того, чтобы зарегистрировать команду, которая будет вызывать наше приложение в nanoCAD нужно перед определением метода, который будет вызываться по этой команде, объявить аттрибут и указать имя команды. Обратите внимание, метод должен иметь модификатор public:

    Public void importCoords() { ... }
    Прежде чем продолжить, хотелось бы остановиться и в двух словах рассказать, что же такое «база данных чертежа». .dwg-файл представляет собой базу данных, имеющую строгую структуру, основные элементы которой - таблицы (Symbol Tables), которые содержат все объекты чертежа. Это не только графические объекты, которые мы видим на чертеже (прямые, дуги, точки и тд.), но и множество других объектов, которые определяют содержимое и настройки чертежа. Например, таблица слоев (Layer Table) содержит в себе все слои, которые имеются на чертеже, таблица типов линий (Linetype Table) хранит все стили линий, определенные в чертеже, таблица пользовательских систем координат (UCS Table) - все системы координат, созданные пользователем для данного чертежа, и др. Таким образом, создать новый объект чертежа - значит создать соответствующий объект базы данных.

    Итак, продолжаем. В первую очередь нам необходимо выбрать из всех открытых документов текущий и открыть его базу данных. Для этого мы получаем объект-менеджер всех открытых документов, и затем с его помощью и базу данных, с которой мы будем дальше работать.

    DocumentCollection dm = Application.DocumentManager; Database db = dm.MdiActiveDocument.Database;
    Для того, чтобы наше приложение запрашивало имя файла, необходимо получить объект Editor и вызвать метод, который запрашивает пользовательский ввод определённого типа (в нашем случае имя файла):

    // Получаем редактор командной строки Editor ed = dm.MdiActiveDocument.Editor; // Объект для получения результата запроса PromptFileNameResult sourceFileName; // Выводим запрос в командную строку и получаем результат sourceFileName = ed.GetFileNameForOpen("\nEnter the name of the coordinates file to be imported:"); if (sourceFileName.Status == PromptStatus.OK) { ... }
    Получить координаты из файла довольно просто, используя C#-функционал для чтения текстовых файлов и работы со строковыми типами данных:

    // Читаем файл, получаем содержимое в виде массива строк string lines = File.ReadAllLines(sourceFileName.StringResult); // Для каждой строки записываем массив из подстрок, разделенных пробелом (т.к по условию задачи в качестве разделителя координат выступает символ пробела). // Таким образом получаем массив из координат, только в текстовом виде, затем конвертируем их в числа типа double. string coord; foreach (string s in lines) { coord = s.Split(new char { " " }); double coordX = Convert.ToDouble(coord); double coordY = Convert.ToDouble(coord); double coordZ = Convert.ToDouble(coord); }
    Переходим к созданию графических примитивов (Entity). Как уже отмечалось выше, для того, чтобы создать любой объект (не только графический), который будет храниться в чертеже, его необходимо добавить в базу данных чертежа, а именно в соответствующий объект-контейнер. Так, например, все слои хранятся как записи в таблице слоев (Layer Table), которая является в этом случае для них объектом-контейнером. Общая структура базы данных выглядит следующим образом:

    Графические примитивы хранятся в базе не напрямую, а в структуре отдельных блоков, которые в свою очередь являются записями в таблице блоков (Block Table). Это очень удобно, поскольку такой механизм позволяет легко группировать объекты в именованные блоки и управлять ими, как единым целым. К слову, пространство модели и пространства листа в базе также представлены отдельными блоками. Таким образом, для графического примитива контейнером будет являться отдельный блок, который, в свою очередь, будет принадлежать родительскому объекту - таблице блоков.

    Раз мы работаем с базой данных, то необходимо обеспечить ее целостность и защиту в случае, если во время выполнения программы произошла какая-то ошибка. Для этой цели применяется механизм транзакций. Транзакции объединяют в себе целый ряд операций, которые выполняются как единое целое: если что-то пошло не так, транзакция отменяется, и объекты, созданные в рамках этой транзакции не будут добавлены в документ. Если же все операции завершились успешно, то транзакция подтверждается, и объекты добавляются в базу.

    Вооружившись этими знаниями, можем смело добавлять в текущее пространство чертежа примитивы «точка» по координатам, которые мы прочитали из файла.

    Using (Transaction tr = db.TransactionManager.StartTransaction()) { // Можно обойтись без таблицы блоков и получить блок текущего пространство чертежа прямо из объекта, представляющего базу данных BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite); string lines = File.ReadAllLines(sourceFileName.StringResult); string coord; foreach (string s in lines) { coord = s.Split(new char { " " }); double coordX = Convert.ToDouble(coord); double coordY = Convert.ToDouble(coord); double coordZ = Convert.ToDouble(coord); DBPoint point = new DBPoint(new Point3d(coordX, coordY, coordZ)); btr.AppendEntity(point); tr.AddNewlyCreatedDBObject(point, true); } btr.Dispose(); tr.Commit(); }
    Задача практически решена. Осталось выполнить одно условие: примитивы-точки должны создаваться в координатах пользовательской системы координат (UCS). Необходимо отметить, что примитивы хранятся в базе данных чертежа в мировой системе координат (WCS). Следовательно, при создании примитивов необходимо выполнить преобразование: UCS->WCS. Делается это при помощи матрицы пользовательской системы координат:

    Matrix3d ucsMatrix = ed.CurrentUserCoordinateSystem;
    Добавим преобразование:

    { ... point.TransformBy(ucsMatrix.Inverse()); ... }
    Итак, программа полностью написана. Что же дальше?

    Загрузка приложения в nanoCAD
    Осталась самая приятная часть - загрузить программу в nanoCAD и любоваться результатами своей работы. Как вы помните, мы создавали рабочий проект как библиотеку классов, поэтому после успешной компиляции будет построена сборка с именем вашего проекта. Открываем nanoCAD, в командной строке пишем команду NETLOAD, выбираем из списка построенную библиотеку и загружаем. Для запуска программы просто введите имя команды IMPORTCOORDS в командной строке.
    Импорт координат. Версия 2.0
    Усовершенствуем первую версию приложения, добавив несколько полезных функций и элементы пользовательского интерфейса.

    Если первая версия приложения «понимала» текстовый файл, в котором координаты разделены только пробелами и в качестве десятичного разделителя использовалась точка, то теперь приложение сумеет «распознать» координаты, разделенные символом табуляции, пробелом или точкой с запятой. Что же касается десятичного разделителя, то в качестве него теперь может выступать как точка, так и запятая, импорт будет производиться без учета региональных настроек. По команде IMPORTCOORDS теперь будет открываться модальный диалог импорта координат, в котором пользователь может выбрать файл и указать желаемые настройки импорта координат.

    Общий механизм импорта координат и создания примитивов остается практически без изменений, однако теперь это будет происходить в рамках класса формы, а задача метода-обработчика команды IMPORTCOORDS теперь сводится лишь к созданию объекта формы и выводу формы на экран в виде модального диалога:

    Public void importCoords() { Form form = new ImportForm(); HostMgd.ApplicationServices.Application.ShowModalDialog(form); }
    После чего управление будет передано окну формы импорта координат.

    Форма приложения
    Форма для приложения включает в себя следующие элементы:
    • Кнопка для открытия файла
    • Диалог открытия файла
    • Группа чекбоксов для выбора символов-разделителей координат: табуляция, пробел, точка с запятой
    • Текстовое поле для предварительного просмотра разбора строк c координатами
    • Кнопка для импорта координат
    • Кнопка отмены
    Используя эти элементы управления, пользователь теперь может указать желаемые символы-разделители, проверить результат в поле предварительного просмотра (примерно так, как это сделано в MS Excel при импорте текстового файла) и инициировать импорт координат:

    Совместимость с AutoCAD
    В заключение хотелось бы отметить, что приложение, написанное для nanoCAD, может быть с легкостью перекомпилировано и для работы в AutoCAD. Для этого необходимо сделать следующее:
    • Во вкладке References подключить следующие библиотеки, входящие в состав ObjectARX:
      • AcCoreMgd.dll
      • AcDbMgd.dll
      • AcMgd.dll
    • Добавить в код приложения директиву условной компиляции, для определения пространств имен, которые будут использоваться для компиляции под nanoCAD или AutoCAD:
      #if ACAD using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; using Platform = Autodesk.AutoCAD; using PlatformDb = Autodesk.AutoCAD; #else using HostMgd.ApplicationServices; using HostMgd.EditorInput; using Teigha.DatabaseServices; using Teigha.Geometry; using Teigha.Runtime; using Platform = HostMgd; using PlatformDb = Teigha; #endif
    • Заменить в коде специфичные для каждой платформы пространства имен на определенные выше псевдонимы: Platform и PlatformDb .
    Обе версии проекта доступны

    Описание команд.

    Geo_Import

    Файл.

    Выбор строк.

    Если поставить галочку в чекбоксе, то будет доступен выбор строк из загруженного файла, если галочку убрать то будут загружены все данные из файла. К сожалению при ручном выборе строк есть ограничение, выбрать можно любое количество, но загрузятся не больше 256 строк.

    Разделитель.

    Выбираем что служит разделителем данных, доступно при расширении фала txt. Можно выбрать из предложенных либо ввести свой вариант, при выборе пункта "Другое"

    Формат данных.

    Возможна смены форматов данных, причём под X подразумевается направление на Север.

    Создаваемые объекты.

    Основной объект.

    Пикет. Выбираем объект, который будет построен(начерчен) по координатам из файла, доступны следующие объекты:

    • Точка
    • Блок
    • Круг
    • Полилиния
    • 3D полилиния
      При выборе объекта блок , будет предложено выбрать имя блока из списка существующих в чертеже.

    Второстепенные объекты.

    Возможно подписать номер , отметку и описание каждой точки, если в качестве основного объекта будет выбран блок, и он содержит атрибуты, то значение может быть записано в атрибуты.
    Кроме данных, взятых из файла, можно задать новые:

    • Номер . формат ввода *#* , где * - префикс\суффикс можно опустить, # - целое число.
    • Отметка . формат ввода - вещественное число, если ввести со знаком + или -, то оно будет прибавлено или отнято соответственно от отметки из файла.
    • Описание . свободный формат ввода.

    Для каждого объекта можно выбрать слой из списка уже существующих в чертеже или создать новый, а так же задать цвет, задать высоту текста для подписей. Так же доступен выбор, учитывать или нет ПСК при построение объектов


    В качестве разделителя дробной части может служить как точка, так и запятая.

    Geo_Export

    Файл

    Указываем куда будут записаны координат, можно создать как новый файл, так и открыть существующий, данные будут дописаны к уже имеющимся в файле.

    Выбор объектов

    Выбрать по…
    указываем образец объекта(примитива) данные которых необходимо получить, после этого будут выбраны все объекты(примитивы) в чертеже, подобные указанному в качестве образца, а именно того же типа, цвета и слоя, доступны следующие типы объектов(примитивов):

    • Отрезок,
    • Полилиния,
    • 3D Полилиния,
    • Млиния,
    • Сплайн,
    • Текст,
    • МТекст,
    • Блок,
    • Круг,
    • Точка.
    • Cogo точик (Civil)
    • (при необходимости список могу расширить…)

    Выбрать из… позволяет выбрать объекты(примитивы) из выбранных ранее по образцу.
    При этом для наглядности (а то ли вы выбрали) в диалоге будет отображаться: тип, слой, цвет и количество выбранных объектов.

    Формат данных

    Разделитель. Выбираем что будет служит разделителем данных, при записи в файл. Можно выбрать из предложенных либо ввести свой вариант, при выборе пункта "Другое"
    Номер

    • По умолчанию 1 -> 1 ,2,3,…,n.
    • Пользовательский формат ввода: *#*, где * - любое количество букв, до # - префикс, после # - суффикс, # - номер(любое количество цифр), пример tr235ort -> tr235ort, tr236ort, tr237ort,…, tr(235+n)ort.
    • Ближайший тест , в качестве номера будет использоваться ближайший к объекту текст, причём любого содержимого, но при выборе такого-же режима "ближайший текст" для Отметки, тексты формата #.# , где #- любое количество цифр, . - точка или запятая, будут зарезервированы для отметок и не будут использоваться для Номера.
    • Содержимое (доступен только для объектов(примитивов) типа Текст и МТекст) в качестве номера будет использоваться содержимое текста.
    • Список имён атрибутов (доступно для объектов(примитивов) типа Блок) в качестве номера можно выбрать содержимое одного из атрибутов, при наличии в блоке атрибута с именем «№», он будет автоматически предложен по умолчанию.
    • Номер или Имя для Cogo точек (Civil)

    Отметка

    • Координата Z - Z координата объекта(примитива).
    • Пользовательский формат ввода: вещественное(действительное) число.
    • Ближайший тест , в качестве отметки будет использоваться ближайший к объекту текст, формата #.# , где #-любое количество цифр, . - точка или запятая.
    • Содержимое (доступен только для объектов(примитивов) типа Текст и МТекст) в качестве отметки будет использоваться содержимое текста.
    • Список имён атрибутов (доступно для объектов(примитивов) типа Блок) в качестве отметки можно выбрать содержимое одного из атрибутов, при наличии в блоке атрибута с именем «H» (заглавная латинская h), он будет автоматически предложен по умолчанию.

    Описание

    • Не требуется - опускается, отсутствует.
    • Пользовательский формат ввода: всё что угодно ☺.
    • Содержимое (доступен только для объектов(примитивов) типа Текст и МТекст) в качестве описания будет использоваться содержимое текста.
    • Список имён атрибутов (доступно для объектов(примитивов) типа Блок) в качестве описания можно выбрать содержимое одного из атрибутов, при наличии в блоке атрибута с именем «COD» , он будет автоматически предложен по умолчанию.
    • Описание или Имя для Cogo точек (Civil)

    Отметка в чекбоксе означает - подписать данные на чертеже.
    Система координат

    • МСК - координаты будут считаться в мировая система координат, игнорирую текущие настройки
    • ПСК - координаты будут вычислены в установленной пользовательской системе координат.


    Выбираем что будет записано в качестве Х(первой координаты), направление на Север (геодезическая СК) или на Восток (математическая СК)

    Сортировка координат

    Первичная сортировка

    Для сортировок "против\по часовой стрелки" и "радиальных", в качестве центральной точки вычисляется усреднённая между выбранных.
    Чтобы отключить сортировку, уберите галочку (ещё раз кликните по чекбоксу с галочкой), в этом случаи нумерация точек будет происходить в порядке их выбора на чертеже, в случаи одновременного выбора группы точек, нумерация внутри группы будет соответствовать порядку их созданию в чертеже.

    Вторичная сортировка

    Если существуют координаты равнозначные для первичной сортировки, к ним применяется вторична.

    Сортировать каждую группу отдельно

    Для Полилиний сортировка будет применена к каждой полилинии в отдельности, при этом порядок нумерации полилиний при не интерактивном выборе (Выбрать по...) будет в порядки их создания в чертежи, либо в порядке выбора при интерактивном выбор (Выбрать из...)
    Для Блоков, Точек и Кругов, доступна только при интерактивном выборе (Выбрать из...) сортировка и нумерация будет применена поочерёдно к каждой группе в соответствии с их выбором в чертеже.

    Большинство настроек программы будет сохранено, между сеансами AutoCAD.

    Стоимость.​

    300 р. Возможна оплата по счёту\договору. Скидки именинникам и активным форумчанам.

    Установка.​

    Приложение устанавливается автоматически, в AutoCAD (и CIVL 3D) начиная с версии 2013. На Ленте, на вкладке "Надстройки" появится панель "Geo ▼▲"

    Для более ранних версий, после установки, нужно загрузить файл с расширением VLX с помощью команды ЗАГПРИЛ и файл с расширением CUIX с помощью команды МЕНЮЗАГР
    Файлы находятся тут: C:\ProgramData\Autodesk\ApplicationPlugins\BearDyugin_Coordinate_Import_Export.bundle

    Если пробный период истёк и вы не зарегистрировали приложение, то после установки новой версии будет доступно ещё 10 дней на тестирование.

    Удаление.​

    Удаление производится штатными методами Windows через Панель управления -> Установка\удаление программ​

    Что отличает эффективные быстрые курсы AutoCAD от простых и долгих курсов по Автокад? Отличает главное – на эффективных вы не теряете времени на зубрежку, учитесь легче и с удовольствием, после окончания курсов умеете применять свои знания на практике.

    Autocad – самая популярная программа по автоматизации двухмерного проектирования и трехмерного моделирования. Она применяется во всем мире. Без знания этой программы сегодня не могут обойтись:

    • Инженеры-проектировщики;
    • Архитекторы;
    • Дизайнеры;
    • Строители;

    и другие специалисты, чья деятельность подразумевает разработку проектов.

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

    Интерфейс программы продуман до мелочей, все нужные инструменты и функции находятся под рукой, разработка элементарного проекта возможна уже при первом знакомстве с этой программой.

    Необходимый начальный уровень знаний и навыков для пользования программы минимален.

    Но для программы такого класса и такого широкого поля применения интуитивная понятность интерфейса оказывается первостепенным требованием, а элементарный набор операций – лишь базой для освоения всех ее возможностей.

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

    Теории, как уже очевидно в процессе учебы не так уж и много – все и без того разработано для пользователей без подготовки и навыков работы конкретно с AutoCAD. А как же тогда удобнее изучать ее?

    AutoCAD видеоуроки.

    Видео по Автокад раскрывает максимум возможностей программы, а профессиональный преподаватель может буквально на пальцах объяснить принципы разработки даже сложных проектов. Ведь не требуется уславливаться о специальной терминологии, нет необходимости в дополнительных комментариях к применяемым элементам управления. На видео, Автокад предстает простым и понятным инструментом.

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

    Мой сайт дает вам уникальную возможность – пройти видео курсы Автокад , а именно:

    1. Б есплатные видеоуроки, статьи, программы, миникурсы Автокад.
    2. О знакомиться с каталогом моих платных курсов по Автокад, благодаря которым уже несколько тысяч людей благодаря Интернету, освоили эту программу
    3. П осмотреть на видеоуроки Автокад и редчайшие курсы по этой программе, которые уже собираются в специальную базу.
    4. В случае возникновения проблем по использованию программы, можно мне задавать вопросы.

    А пройдя мои курсы Автокад , вы гарантированно научитесь:

    • Чертить кривые, полилинии, фигуры и научитесь создавать блоки в программе;
    • Работать со слоями;
    • Орудовать инструментами для быстрого проектирования;
    • Делать фаски, массивы и сопряжения;
    • Проставлять размерные цепи;
    • Масштабировать чертежи
    • Строить динамические блоки
    • Разбираться с атрибутами
    • Работать с внешними ссылками
    • Применять шаблоны файлов чертежей
    • Создавать интерактивные таблицы
    • Чертить простые и сложные чертежи
    • Создавать простые и сложные трехмерные модели
    • Узнаете тонкости настроек Автокад

    и многое, многое другое

    Добрый день.
    Сегодня начнём наше знакомство с точками Civil 3D. А именно узнаем как добавить точки из файла.
    В Ленте находим выпадающее меню “Точки” и выбираем пункт “Инструмент создания точек”. В открывшейся панели “Создание точек” нажимаем кнопку “Импорт точек”.


    Нажать “Добавить файлы”. Выбираем нужный тип файла и добавляем.
    Указываем нужный формат файла точек. В большинстве случаев – это порядок, в котором идут данные в строках файла, например: номер, восток, север, отметка земли. “Запятые” или “Пробел” – означает что разделитель данных одного типа – запятая или пробел.
    Если нет подходящего формата, нужно создать новый формат.
    Нажать кнопку “Управление форматами”. В открывшемся окне “Форматы файлов точек” нажать “Создать…”. В открывшемся окне выбрать:
    – База данных точек пользователя, если файл создан в Microsoft Access.
    – Файл точек пользователя. Наиболее распространённый вариант – txt. Его и рассмотрим.


    В открывшемся окне “Формат файла точек” заполняем имя формата и выбираем расширение файла по умолчанию (txt). Можно также вписать своё расширение.
    Символ комментария: при необходимости вписываем нужный символ. В файле точек, строки, перед которыми стоит указанный символ не будут читаться программой.
    Параметр формата:
    – По столбца, если используется табуляция.
    – Разделитель. Указать используемый разделитель. Как правило это запятая или пробел.
    Считывать не более: при необходимости указать количество точек в файле, относящихся к рассматриваемому объекту.
    Интервал выборки: указать, если не нужна точность, с которой выполнена съёмка.
    Преобразование координатной зоны: указывается и настраивается если известна международная система координат. В РФ, как правило, не используется, т.к. у нас съёмки делаются в местных системах координат районов изысканий.
    Указываем столбцы в соответствии с данными из текстового фала точек.
    Загружаем файл, нажав кнопку “Загрузить…”.
    Производим анализ, нажав кнопку “Анализ”.
    Если всё хорошо, программа производит анализ. В противном случае – выдаёт предупреждение.


    Нажимаем “Ок”. Закрываем окно “Форматы файлов точек”.
    Программа добавит точки в группы точек, согласно описаниям в файле.
    Если нужно добавить точки в нужную группу точек ставим галочку у этого параметра. Также можно создать новую группу точек, например “Земля”.


    Нажимаем “Ок”. Происходит импорт точек.
    Возможно вы не увидите точки, так как они будут находится за пределами видимой зоны чертежа. В этом случае нужно дважды нажать на колёсико мыши и экран автоматически переместится и отмасштабируется для обзора всех объектов чертежа.