# Взорванные блоки

Также возможна ситуация, когда чертеж приходит к вам во взорванном состоянии – то есть отдельно есть точка рельефа с плановыми координатами, и рядом с ним текст, точка привязки которого не на точке рельефа. В этом случае воспользуемся функционалом AutoCAD Map 3D, функции которого доступны также в Civil 3D (из рабочего пространства «Планирование и анализ»). Для этого не обязательно туда переходить, можно просто использовать конкретные команды далее.

### Исходные данные:

Будем использовать следующий рабочий файл:

{% file src="<https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGOtiPQveBdJVa6kKa%2F-MYGSKMLck42MXGd_Y6O%2F04_01_%D0%9F%D0%BE%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%92%D0%B7%D0%BE%D1%80%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.dwg?alt=media&token=39c7acba-1ea4-49ee-973e-59bc65eb42d1>" %}
04\_01\_Поверхности\_Взорванное.dwg
{% endfile %}

### Наши действия:

Выберем рамкой точку и текст рядом с ней. Для скрытия всех подобных объектов (при условии, что в чертеже все данные лежат по своим слоям), можно открыть окно Свойства слоя, далее нажать на шестеренку (настройку параметров)

![Входим в Настройки параметров слоев](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGHL9I1ns-qh528Xow%2F-MYGJP1v7JqETbw3muGp%2Fimage.png?alt=media\&token=db3fafe2-d34b-4a91-89e8-a1c8d03d5df9)

В этом окне выставить значения ниже и нажать ОК. После этого выбрать точку с текстом и на функциональной панели свойств слоя нажать на (Изолировать все).

![Параметры скрытия данных на слоях](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGHL9I1ns-qh528Xow%2F-MYGJa1KAfN3ii9VTEFN%2Fimage.png?alt=media\&token=8b4d9eb4-daa8-46c6-9898-2ba110eb5573)

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

![Пример исходных данных](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGHL9I1ns-qh528Xow%2F-MYGK2Ril8AgjepZ4lOc%2Fimage.png?alt=media\&token=e20eb2e4-ae23-4856-852b-a93a77f0e755)

Если мы обратим внимание на чертеж, точка привязки текста лежит где-то в окрестностях блока (см. картинку выше), но не рядом с ним. Мы сейчас экспортируем данные текстовые атрибуты, и вставим их в атрибут блока. Для этого введем в командной строке `_mapexport`. В открывшемся диалоговом окне выберем место сохранения нашего SHP файла и нажмем ОК для перехода к выбору объектов экспорта.

![Выбираем объект типа "текст" и опция "выбор вручную"](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGHL9I1ns-qh528Xow%2F-MYGL0k6W0uzLUGcN2n0%2Fimage.png?alt=media\&token=2c3069a5-0767-4e7f-8bff-9134e4983102)

![Выбор атрибута "Содержимое" у текста](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGHL9I1ns-qh528Xow%2F-MYGLFS_LP3HQfkw0cFY%2Fimage.png?alt=media\&token=0b15e2cc-3e10-4ab0-8ae3-265aebfa05f4)

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

#### Редактирование исходного блока

После этого выбираем один из блоков (проверить, все ли блоки одного стиля – может, например, так статься, что часть блоков имеет разные типы, а весь текст одинаково лежит около блоков; тогда последовательность действий должна быть избирательной – импортировать далее текст для данных типов блоков) и переходим в режим Редактора блоков (нажимая ПКИ и выбирая в меню Редактор блоков). Затем активируем команду «Определение атрибута» и прописываем в поле тега «Содержимое», указываем точку вставки (укажем самостоятельно), закрываем нажатием ОК. Проверяем чтобы объектная привязка имела типа Центр и привязываемся атрибутом к центру круга

![Создаем атрибут с привязкой к центру круга (блока)](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGHL9I1ns-qh528Xow%2F-MYGLtxfSXWhyJHAxqyB%2Fimage.png?alt=media\&token=e36ddb0d-6def-429d-814e-0453a2e1d935)

После этого закрываем окно редактирования блока с сохранением изменений.

#### Импорт текста как атрибутов блока

Теперь вводим в командной строке команду `_mapimport`, выбираем в Проводнике наш раннее созданный SHP файл и нажимаем ОК. В ячейке «точки» щелкаем ПКМ в правую сторону ячейки открывая окно параметров (ниже справа):

![Открытие данного файла, экспортированного выше](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGM1XtINz8JpdPDy5t%2F-MYGMQRWIkC3VN-OG6BH%2Fimage.png?alt=media\&token=3f8da0cf-6e29-4385-8ba1-ac299e38cc0e)

В окошке активируем режим «Создавать как блоки» и в списке выбираем имя типа блока, какими у нас представлены точки рельефа. Расширенные опции доступны после нажатия справа в ячейке с именем блока. Также ставим галочку на **получение значений атрибутов из полей**. После этого нажимаем ОК в параметрах точек, и ОК в параметрах импорта.&#x20;

![Настройка параметров импорта данных](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGM1XtINz8JpdPDy5t%2F-MYGMaKzpJ5TS5Dl5dJT%2Fimage.png?alt=media\&token=8448998f-7985-449a-a32d-d4782c8616f3)

Если все сделано успешно, то появятся данные такого вида:

![Новая импортированная геометрия](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGM1XtINz8JpdPDy5t%2F-MYGN-oI9R-2DyVA1mFQ%2Fimage.png?alt=media\&token=945d3943-08cf-4805-a9ab-4678ad1075ed)

#### Использование функционала MAPCLEAN

Далее выбираем подобием все старые блоки и сажаем в новый слой, допустим, «*Старые»* и блокируем его, можно также изменить цвет для лучшей видимости. Также выделяем все новые блоки и сажаем в новый слой *"Новые"* или оставить исходным (слой с именем SHP файла). Текст можно скрыть. Теперь необходимо перенести все новые блоки в точки начального положения блока, так как сейчас в месте старой привязки текста у нас сообразовался новый блок. Для этого мы как раз заблокировали слой с изначальными блоками, чтобы функцией AutoCAD Map 3D сведения в 1 узел изменить плановое положение как раз новых создавшихся блоков.

Активируем команду Drawing Cleanup (команда `_mapclean`). Эта полезная функция, существует еще с 2004 года, но реализованная только в Map/Civil 3D. В первом диалоговом окне в качестве объектов очистки выбираем «**Выбрать вручную**» в обоих полях. В параметрах слоях сверху ставим то, что мы хотим изменить, а снизу – то, что хотим оставить как есть (имена слоев).

![Выборка элементов](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGM1XtINz8JpdPDy5t%2F-MYGNzA38ontwdL15FUQ%2Fimage.png?alt=media\&token=db21dc07-6274-45bd-9e6d-ac00df1f62cc)

Во втором окне среди операций очистки выберем «**Сводить узлы в один**» и добавим его в поле справа (выбранные операции). Поставим галочку на Блоках, и в качестве допуска зададим расстояние от нового до старого блока – пусть будет 1.5 метра. Всё большее у нас просто нужно будет сделать вручную, так как есть группы точек, где ставить больший допуск опасно – они просто перепутаются. После этого нажимаем Далее:

![Настройки оптимизации](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGM1XtINz8JpdPDy5t%2F-MYGOQbK4bzXtlumw6XF%2Fimage.png?alt=media\&token=2f31f44b-c9a5-427f-8738-f5326a0ec421)

В качестве метода очистки оставляем «Изменять исходные объекты» и заканчиваем нажатием на «Готово».

![Настройки оптимизации](https://816038156-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYF1wYyuPCBAQ0OJ8Kv%2F-MYGM1XtINz8JpdPDy5t%2F-MYGOXfDlU2eYqfPu2u3%2Fimage.png?alt=media\&token=fb8e08a0-5625-483d-b19b-4530e71f8ea6)

Так как мы задали небольшую поправку 1,5 метра – то некоторые удаленные блоки не встали к своим нужным позициям, мы их переместим вручную блоки в скученных местах, а затем повторно воспользуемся функцией с большим допуском, 3 метра. В противном случае, если уже автоматически выровнять не получается – делаем это вручную. В данном чертеже заведомо не получится сделать идеально, так как изначально точек планового обоснования у нас 112, а текстовых отметок 125.&#x20;

По окончанию редактирования мы имеем ситуацию, когда есть блоки с координатой Z = 0 и атрибутами блока с высотной отметкой – то есть повторение предыдущей рассмотренной поверхности, только при выборе следует исключить (скрыть) старые блоки. Либо можно воспользоваться ЛИСП-ом из пакета адаптации для автоматизации данной задачи:
