Mskstart.ru

Все про Авто перевозки
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Геопривязка изображения с помощью AutoCAD

Геопривязка изображения с помощью AutoCAD

В другом посте мы говорили о сканированных картах геопривязки или изображениях Google Earth, мы видели, как это сделать с манифольдом y с Microstation, в этих записях вы можете увидеть более подробную информацию о том, как получить изображение Google Earth, координаты utm и как их отрезать.

Теперь давайте посмотрим, как геопривязать изображение с AutoCAD

1. Ввод координат

Чтобы ввести координаты UTM в AutoCAD, это делается с помощью команды point. (Drawing / point / multiple point)

затем введите координаты этой формы:

из командной строки будет:

указывать, вводить, координировать, вводить, координировать, вводить . пока вы не введете все из них.

Формат координат: «координата х», «координата у», чтобы они были

431512,1597077
431838,1597077
431511,1596838
431837,1596838

Если система не принимает их, это может быть связано с тем, что конфигурация управления точками не соответствует формату, поэтому пишите в командной строке PDMODE = 2

Если вы не видите точек или они выглядят очень маленькими, выберите формат / стили точек / и выберите более заметный формат.

Вы также можете Импорт из Excel

Ввод точек должен выглядеть следующим образом:

изображение

Теперь нам нужно вставить изображение, это делается с помощью «insert / image manager»

изображение

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

Затем выберите левый угол, с привязкой к точке и нижний правый.

Готов, изображение привязывается к указанным координатам.

изображение

2. Насколько точны данные Google Earth для кадастра?

Не используйте это для серьезной работы, потому что это не служит данным GoogleEarth. Ранее мы говорили о «точность»Это данные Google Earth.

Форум для экологов

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

Изображение

Re: Как перенести координаты из AutoCad в Excel

Сообщение Che Guevara » 13 сен 2014, 18:05

Re: Как перенести координаты из AutoCad в Excel

Сообщение Yasva » 13 сен 2014, 19:59

Шаман физических воздействий

Re: Как перенести координаты из AutoCad в Excel

Сообщение masm0 » 14 сен 2014, 06:43

Изображение

  • Версия для печати

Ответственность

Форум «Форум для экологов» является общедоступным для всех зарегистрированных пользователей и осуществляет свою деятельность с соблюдением действующего законодательства РФ.
Администрация форума не осуществляет контроль и не может отвечать за размещаемую пользователями на форуме «Форум для экологов» информацию.
Вместе с тем, Администрация форума резко отрицательно относится к нарушению авторских прав на территории «Форум для экологов».
Поэтому, если Вы являетесь обладателем исключительных имущественных прав, включая:

— исключительное право на воспроизведение;
— исключительное право на распространение;
— исключительное право на публичный показ;
— исключительное право на доведение до всеобщего сведения

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

Наш email: eco@integral.ru

ВНИМАНИЕ! Мы не осуществляем контроль за действиями пользователей, которые могут повторно размещать ссылки на информацию, являющуюся объектом Вашего исключительного права.
Любая информация на форуме размещается пользователем самостоятельно, без какого-либо контроля с чьей-либо стороны, что соответствует общепринятой мировой практике размещения информации в сети интернет.
Однако мы в любом случае рассмотрим все Ваши корректно сформулированные запросы относительно ссылок на информацию, нарушающую Ваши права.
Запросы на удаление НЕПОСРЕДСТВЕННО информации со сторонних ресурсов, нарушающей права, будут возвращены отправителю.

Oracle Data Integration, Cloud, Spatial and Analytics

В предыдущем посте про Autocad Map 3D я рассказал о том, какие отличия ожидают пользователя Autocad, желающего окунуться в мир геоинформационных систем:

  • чем отличаются пространственные объекты от стандартных DWG объектов
  • о том, как  и где получить начальные пространственные данные
  • о системах координат, которые являются неотъемлемой частью работы с геоинформационными системами
  • о загрузке ГИС данных в хранилище

В этом раз мы посмотрим на то, как редактировать и анализировать данные в Autocad Map 3D.

Привыкаем к интерфейсу

Первое, что бросается в глаза тому, кто запускает Autocad Map 3D – это появление дополнительных закладок и панелей в интерфейсе (это если не говорить о новом Ribbon-интерфейсе, который уже есть и в классическом Autocad).

Вот классический Autocad

image

а вот панель Map 3D (режим Tool-based)

image

Появляются новые закладки:

  • Feature Edit – предназначена для редактирования пространственных объектов, в том числе в многопользовательском режиме
  • Create – предназначена для создания новых пространственных объектов, слоев, топологий
  • Analyze – здесь доступные инструменты для анализа слоев (например, пересечения), построения буфера, сетевого анализа
  • Map Setup – настройка источников данных, системы координат.

На мой взгляд инструменты размещены довольно сумбурно и неинтуитивно. Одни и те же инструменты доступные на разных табах. Думаю, это последствие перехода на Ribbon-интерфейс, который в свою очередь доступен в двух вариантах. Переключить их можно в правом нижнем углу:

Читайте так же:
Установка сигнализации с автозапуском без обходчика иммобилайзера

image

Если есть необходимость, то можно спокойно переключиться в классический режим. Все таки в Autodesk сидят здравомыслящие люди – Microsoft в прошлом в директивном порядке перевела всех в режим Ribbon-интерфейса без возможности отката.

Настройка карты

В ГИС-системе, разработанной в Map 3D, файл DWG является центральным элементом – фактически файлом проекта. В нем хранятся настройки карты такие как система координат, информация о подключенных источниках и правила отображения данных из этих источников. 

Выберем систему координат для проекта на закладке Map Setup доступны 2 кнопки плюс можно кликнуть на стрелочку рядом с фразой Coordinate System

image

Кнопка Assign позволит выбрать единую систему координат, к которой будут приводиться и в которой будут отображаться данные, хранящиеся в других системах координат. Вторая кнопка позволяет создать собственную систему координат – она может быть полезна, если вы используете собственную локальную систему координат, либо появилась новая система координат, которой нет.

Второе, что необходимо сделать – это создать подключения к источникам данных. Делается это с помощью кнопки Connect на закладке Map Setup:

image

При ее нажатии откроется окно Data Connect в котором можно будет определить подключения к источникам данных. Я буду использовать 2 источника данных SHP-файлы и данные, хранящиеся в СУБД Oracle.

При создании подключения к данным, хранящимся в SHP-файлах я столкнулся с проблемой – Autocad Map 3D не распознавал систему координат (которая лежит в сопутствующем файле PRJ):

image

Пришлось руками уточнить систему координат, нажав кнопку Edit Coordinate Systems. Откроется окно, которое покажет информацию извлеченную из PRJ-файлов и нужно будет сопоставить им соответствующую систему координат в Map 3D:

image

Аналогично тому, как мы подключали SHP также подключаем слои из СУБД Oracle. В этом случае проблем с системами координат у меня не было. Map 3D сразу понял, какая система координат используется.

image

Редактируем ГИС-данные

После того как карта настроена мы готовы к созданию новых и редактированию существующих пространственных объектов.

Для создания нового объекта у нас есть несколько вариантов:

  • щелкнуть правой кнопкой на слой справа в Display Manager и сказать Create New …
    image
  • можно открыть закладку Create и выбрать New Feature
    image
  • либо выбрать в Display Manager векторный слой левой кнопкой и тогда вверху появится новая, контекстно-чувствительная закладка Vector Layer
    image

Любой из вариантов подходит и ведет к одному и тому же результату. Но глаза разбегаются.

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

image

Здесь нужно будет ввести атрибуты вновь создаваемого объекта. Отмечу, что атрибутивная информация особенно важна в ГИС и является отличительной чертой именно ГИС-систем. В ГИС системе графическое отображение объекта и атрибутивная информация являются единым целым и обрабатываются как единое целое. В базах данных, таких как Oracle, это выражается в хранении геоданных и атрибутов в одной таблице и одной строке.

Созданный нами объект попадает в хранилище не сразу, а лишь после того как мы выполним сохранение (Check-In) этого объекта. Нужно различать процедуру сохранения файла-проекта (DWG) и процедуру сохранения данных. До тех пор пока не сделан Check-In – только Вы видите эти изменения. Более того, данные хранятся в DWG-файле и будут перенесены в центральное хранилище только после Check-In.

Выполнить Check-In можно опять таки разными способами. Например, на закладке Vector Layer кнопкой Check-In. Если нужно отменить отменить все сделанные изменения, то есть кнопка Cancel Feature Checked-Out. Если параллельно с Вами кто-то еще редактирует данные, то можно периодически обновлять данные, чтобы видеть вносимые изменения кнопкой Refresh Layer.

image

Чтобы отредактировать существующий объект – просто выберите его и начните менять. Например, я потянул за одну из вершин. Сразу же после этого активируется новая закладка Feature Check Out, которая скажет о том, что объект “извлечен для редактирования”. Объект извлекается для редактирования автоматически, потому что по-умолчанию была включена опция Automatic Check-Out на закладке Feature Edit.

image

Что самое смешное на этой закладке нет кнопки Check-In и как ее туда вынести я не нашел. Ну и еще один нюанс. На панельке Feature Checked Out есть кнопка с иконкой точь-в-точь как на Refresh Layer, но это другая кнопка с другими функциями.

Анализа данных

Как я уже говорил – одним из отличий ГИС систем является объектный подход к данным. Это значит, что у нас на карте нет линий, точек, надписей. У нас есть геометрическое представление объекта и есть четко заданный для данного типа объектов набор атрибутов.

Такая целостность дает нам возможность анализировать объекты одновременно с точки зрения геометрии и атрибутики. Посмотрим, как это работает в Autocad Map 3D. Для этого воспользуемся инструментом Search To Select на закладке Vector Layer:

Читайте так же:
Автономная сигнализация для автомобиля без установки

image

При выборе данного инструмента мы попадем в довольно таки стандартный построитель запросов. Добавим слой, в котором хотим искать объекты:

image

В нижнем поле можно вводить условия. Ну и особый интерес представляет кнопка Location on Map, которая позволяет выбрать или нарисовать полигон в который должны попадать (или соприкасаться) искомые объекты.

image image

Пока что мы анализировали один слой. Когда дело доходит до определения взаимоотношений между несколькими слоями, мы должны использовать функцию Feature Overlay на закладке Analyze.

image

Входными данными этой функции будут 2 слоя: Source и Overlay. Первый слой – где ищутся соответствующие объекты. Второй слой – служебный, позволяющий определить ограничения на пространственные объекты слоя-источника. Для каждого типа операций есть подробное описание с картинками – так что я подробно останавливаться не буду. Например, в моем случае я искал пересечение слоя городов со слоем областей. Тем самым я отсек все города каким-то образом “выскочившие” за пределы областей.

Результатом операции Feature Overlay будет новый слой в формате SDF или SHP. К сожалению я не увидел, как можно сразу поместить этот слой в целевую базу данных (например, Oracle). Хотя, на самом деле, это не так уж и важно: не всегда нужно грузить промежуточные данные в центральную СУБД.

Заключение

Как можно видеть Map 3D обладает довольно неплохими возможностями для редактирования и анализа пространственных данных. Система напрямую позволяет работать с самыми разными типами данных. Вот чего бы хотелось – это большей “причесанности” интерфейса. Но даже сейчас успехи уже видны.

Есть еще пара вопросов, которые хотелось бы посмотреть – это автоматизация обработки слоев. Благо эта автоматизация в Autocad Map 3D сделана на основе движка Microsoft – Workflow, что значительно упрощает жизнь. Ну и немаловажно – это публикация данных в веб. В следующем посте я сосредоточусь на двух этих темах.

Для людей, которые подобно мне используют AutoCAD в течение большего количества лет чем я хочу помнить (хорошо, больше чем 20, если быть точным), удивительно видеть, как технология преобразовала фундаментальную работу составления чертежей для инженерии, архитектуры и строительства.

Что является еще более захватывающим — это как мне кажется, бесконечный поток новшества, который пришел вместе с AutoCAD 2006. Фактически, все основные новые особенности и функиции в этой версии являются частью дорожной карты непрерывного улучьшения пяти ключевых аспектов компьютерного проектирования: ядро чертежных задачи, публикация, представление, технологический процесс, и настройка. Рассмотрим их более подробней.

Управляемое проектирование: Динамический ввод

Как то на одном из занятий по AutoCAD один из студентов мне сказал что работа с AutoCAD напоминает ему просмотр фильма с субтитрами: пользователь постоянно смотрит сначала вверх на чертеж, а затем вниз на командную строку. AutoCAD 2006 поддерживает динамический ввод и возможность ввода указателем что позволяет вам вводить информацию в курсоре вместо командной строки.

  1. Просто активизируйте Dynamic Input в строке состояния кликнув на DYN, или нажав на клавишу F12. Чтобы отобразить любые варианты команды используйте клавишу «стрелка вниз», или клик правой кнопкой мыши для отображения контекстного меню.
  2. Клик правой кнопкой мыши по DYN отображает панель Dynamic Input диалогового окна Drafting Settings. Здесь вы можете указать как много (или как мало) информации вы хотите отображать.
  3. Для отображения ввода в командной строке и подсказок курсора, убедитесь что “Show command prompting” и “Enable Pointer Input” активизировано (рис. 1).


рис. 1


рис. 2

Теперь вы можете изменить длину или угол существующих объектов просто напрямую вводя новое значение на экран (рис. 3). Ниже перечислено несколько советов для прямого ввода.


рис. 3

  1. Активизируйте “Enable dimension input where possible.”
  2. Используйте клавишу табуляции для переключения между двумя значениями.
  3. Выберите их пяти различных полей те, которые вы хотите видеть при захватывающем редактировании: Resulting Dimension, Length Change, Absolute Angle, Angle Change, and Arc Radius (доступны при выборе Settings под Dimension Input).

Совет: отображение более подробной информации не всегда лучше (часто достаточно отображение двух полей ввода размеров одновременно).

Несколько других особенностей, которые помогают делать AutoCAD 2006 более интуитивным для использования включают возможности находить недавние задачи и данные, и переключать между чертежами. Новая функциональная возможность AutoComplete закончит ваш ввод для Вас, что удобно, когда Вы забываете, как записать по буквам специфическую системную переменную или нечасто используемую команду. Используйте клавишу табуляции, чтобы циклически пройти все возможные варианты. Также в ваших контекстных меню доступна новая опция Recent Input, которая позволяет выбирать для ввода ранее исползуемые значения (рис. 4).


рис. 4

И наконец, когда открыто нсколько чертежей, каждый чертеж будет отображаться как иконка на панели задач Windows. Чтобы переключаться между чертежами — просто выберите иконку чертежа, при этом системная переменная TASKBAR должна быть установлена в 1 (это также работает в AutoCAD 2005).

Таблицы в AutoCAD 2006

В AutoCAD 2005 были добавлен новый интелектуальны объект TABLE что устранило много скуки и сохранило Вас время. Ниже представлен обзор таблиц вместе с новыми возможностями, добавленными в AutoCAD 2006.

С чего начать

Так же как вы устанавливаете размеры и текст, прежде всего вы должны устанавить стиль вашей таблицы в диалоговом окне Table Style.

  1. выберите Tablestyle в меню Format.
  2. выберите New чтобы создать новый стиль таблицы.
  3. Установите стиль вашей таблицы в соответствии с вашими потребностями, такими как направление таблицы, высотой текста, наклоном типом рамки и т.д.
  1. Выберите Table в меню Draw.
  2. Выберите ваш стиль вашей таблицы.
  3. Укажите число строк и столбцов.
  4. Введите специфическую высоту столбцов и ширину строк или позвольте AutoCAD самостоятельно определить размер таблицы.

Правка на месте облегчит заполнение ячеек.

  1. Перемещение по ячекам можно осуществлять с помощью клавиши табуляции и стрелок
  2. Двойным кликом по ячейке таблицы вызвается редактор MTEXT для ввода текста.
  3. Вы можете также вставить поля и символы из контекстного меню
  4. Щелчок в ячейке таблицы разрешает Вам вставлять блок из контекстного меню. Вы можете позволить AutoCAD самостоятельно привязать блок к ячейке или сами можете указать фактор масштаба и таблица подстроится соответственно.
  5. Щелчок правой кнопкой мыши также позволяет Вам объединять ячейки, добавлять и удалять строки, и т.д (рис. 5). Вы можете использовать привязки, чтобы изменить местоположение таблицы, ширину столбца, и высоту строки.


рис. 5

  1. скопировать данные таблицы Excel в буфер обмена.
  2. Выберите Paste Special в меню Edit.
  3. Выберите AutoCAD Entities.
  4. Разместите таблицу в вашем чертеже.
  5. Формулы в таблие доступны в AutoCAD 2006.

Команда TABLEEXPORT сохраняет таблицу AutoCAD в .CSV-файл, который можно импортировать в Excel или Access.

Извлечение данных аттрибутов блоков в таблицу.

  1. Загрузите Attribute Extraction Wizard (EATTEXT).
  2. Укажите, какие блоки вы хотите извлеч (рис. 6).


рис. 6


рис. 7

Выполнение вычислений

AutoCAD 2006 позволяет вам назначать простые математические операции, такие как Sum, Average, and Count, создавать арифметические выражения, и устанавливает соответствие ячеек другим ячейкам. Выберите Insert Formula из контекстного меню (рис. 8).


рис. 8

Динамические блоки

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

Теперь блоки — мощные, гибкие, управляемые данными объекты, и один блок может иметь множество определений размеров, материала, и т. п. Вместе с новыми возможностями по созданию таблиц, AutoCAD 2006 устраняет бесчисленные ручные модификации, что гарантирует непротиворечивые размеры и точность в количестве. Это только некоторые преймущества в дополнении к огромной прибыли в производительности и точности.

    Один блок с несколькими определениями может решительно уменьшить размер ваших блочных библиотек. Например, блок одной кровати, много вариантов (рис. 9)


рис. 11


рис. 12

Определение динамических блоков

Новый Block Definition Editor (BEDIT) позволяет легко создавать динамические блоки или редактировать существующие блоки всего лишь в два шага:

  1. Выбрать существующий блок.
  2. правым кликом вызвать Block Editor из контекстного меню.

Палитра Block Authoring содержит инструменты, которые делают ваши блоки динамическими (рис. 13). Этот процесс происходит следующим образом:


рис. 13

  1. Выберите Parameters и назначите его на часть вашего блока.
  2. Выберите действие которое вы хотите назначить на этот параметр. Пробуйте одну пару параметр/действие одновременно, чтобы гарантировать что Вы получите надлежащие результаты.
  3. Разместите Action где-нибудь возле параметра. Большинство Parameters должны иметь как минимум одно Action. Следующие определения аспектов динамических блоков помогут Вам понять их возможности.

Вы можете думать о параметрах как о размерах, которые управляют геометрией блоков (рис. 14). К примеру:


рис. 14

  • Линейный параметр для дверного блока будет управлять шириной двери (когда скомбинирован с действием Stretch).
  • Параметр вращения для стула в пределах блока “стол и стулья” разрешает индивидуальное вращение стула после вставки (когда скомбинирован с действием Rotate).
  1. Выбор свойств параметра позволяет вам указать приращение, а так же минимальное и максимальное значение.
  2. Видимость параметров используется для назначения нескольких определений для одного блока.
  3. Lookup Parameters может быть использовано для назначения множества размеров специфическому блоку. Что позволяет пользователю простым кликом правой кнопкой мыши изменить размер с одного на другой.

Действия управляют геометрией определенными способами. Например, используйте Stretch, чтобы изменить длину болта. Вот еще совет: восклицательный знак будет отображаться, чтобы показать любые параметры без назначенного действия.

Настройка интерфейса AutoCAD 2006

AutoCAD 2006 предлагает богатство вариантов для настройки интерфейса пользователя (рис. 15).


рис. 15

Здесь представлены некоторые подсказки по настройке особенности полей, представленных впервые в AutoCAD 2005 Я люблю акцентировать внимание на том, что ни выводят ввод данных новый уровень. Поля подобны “интеллектуальному тексту”, который обновляется автоматически.

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

Вставка полей

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


рис. 16

  1. Выберите Insert Field в контекстном меню когда запрошивается относительно текста в MTEXT, DTEXT, ATTDEF, и BATTMAN. Некоторые из этих команд имею кнопку “insert field”.
  2. Нажав Ctrl+F.
  3. Выполнив команду Field (это разместит поле как MTEXT).

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

Редактирование полей

Поля легко редактируются по двоному клику. Сразу отображается соответствующая команда редактирования — DDEDIT, EATTEDIT, и т.п.

Обновление полей

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

Как изменить положение начала координат, задав положение точки с известными координатами.

Конечно, можно сколько угодно создавать своих ПСК (в т.ч. с поворотом) и свои чертежи делать в них.

С чертежами "заведомо не в МСК" дел лучше не иметь — чья-то дилетантская работа Вам рано или поздно икнется. Лучше, как советует trir, исправить эту подоснову. Для этого надо:
1. Найти "крестик" с подписанными координатами местной системы города и записать их, причем правильно (автокадовская ось Х направлена на Восток, а геодезическая обычно на Север).
2. Установить в AutoCAD мировую систему координат (автокадовскую).
3. Включить все слои подосновы, выделить все объекты и перенести (move) их в истинное положение. Для этого надо при запросе базовой точки указать (с использованием объектной привязки) "крестик" с известными городскими координатами. А при запросе точки перемещения ввести с клавиатуры известные координаты этой точки. Теперь подоснова переместится в правильное место.

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

Это ведь не просто так делается, рано или поздно чертежи генпланов и сетей надо совмещать с топографией города и с другими проектами. Когда у них единая система, это делается очень просто. При вставке любого правильного чертежа на единую основу у него берется за базовую точка 0,0 и вставляется в точку 0,0.

Пример 1

Метод организации точек Autodesk Civil 3D 2007 из точек AutoCAD

Панель инструментов создания точек в Autodesk Civil 3D 2007 вызывается из меню Точки.

Преобразование точек, подготовленных в AutoCAD, в точки Autodesk Civil 3D 2007 осуществляется выбором команды Преобразовать точки AutoCAD на панели инструментов Создание точек.

Выбрав точки AutoCAD в чертеже, в командной строке выводится запрос о присвоении описания для каждой выбранной на чертеже точки. В закладке Навигатор окна Область инструментов в дереве отображения объектов Autodesk Civil 3D 2007 показывается список созданных точек (Точки/Группы точек/Все точки).

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

Создаем новую группу точек с именем Группа точек N1.

Чтобы выбрать в новую группу точки с заданными свойствами, выберите пункт Свойства…

В появившемся диалоговом окне Свойства группы точек — Группа точек N1 следует ввести критерий, по которому имеющиеся в чертеже точки будут включены в группу.

В нашем примере имеется группа точек с исходным описанием или так называемым префиксом «p». Следует установить флажок около пункта По совпадению исходных описаний, ввести в соответствующем поле «р» и нажать ОК — точки с исходным описанием «р» будут добавлены в Группу точек N1. Полученная группа точек может быть использована в процессе работы как отдельный набор данных (например, для создания отдельного структурного элемента), а также выведена в текстовом формате как журнал (список) с помощью команды Экспорт точек.

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

Одним из наиболее популярных вопросов по программированию под 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).
  • Project type: Visual C#
  • Template: Class Library
  • hostdbmgd.dll
  • hostmgd.dll
Структура программы
  1. Зарегистрировать команду IMPORTCOORDS.
  2. Получить базу данных текущего чертежа и редактор командной строки.
  3. Запросить имя файла с координатами.
  4. Открыть файл, прочитать строки с координатами.
  5. Создать объекты DBPoint с отдельными координатами. Преобразовать их координаты в текущую пользовательскую систему координат.
  6. Добавить созданные объекты в текущее пространство чертежа (Model Space или Paper Space).

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

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

Для того, чтобы наше приложение запрашивало имя файла, необходимо получить объект Editor и вызвать метод, который запрашивает пользовательский ввод определённого типа (в нашем случае имя файла):

Получить координаты из файла довольно просто, используя C#-функционал для чтения текстовых файлов и работы со строковыми типами данных:

Переходим к созданию графических примитивов (Entity). Как уже отмечалось выше, для того, чтобы создать любой объект (не только графический), который будет храниться в чертеже, его необходимо добавить в базу данных чертежа, а именно в соответствующий объект-контейнер. Так, например, все слои хранятся как записи в таблице слоев (Layer Table), которая является в этом случае для них объектом-контейнером. Общая структура базы данных выглядит следующим образом:

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

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

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

Задача практически решена. Осталось выполнить одно условие: примитивы-точки должны создаваться в координатах пользовательской системы координат (UCS). Необходимо отметить, что примитивы хранятся в базе данных чертежа в мировой системе координат (WCS). Следовательно, при создании примитивов необходимо выполнить преобразование: UCS->WCS. Делается это при помощи матрицы пользовательской системы координат:

Итак, программа полностью написана. Что же дальше?

Загрузка приложения в nanoCAD

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

Импорт координат. Версия 2.0

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

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

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

После чего управление будет передано окну формы импорта координат.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector