8.4. Пример внедрения в программу площадных условных знаков


См. так же:

8.1. Пример внедрения в программу точечных условных знаков (без текстовой информации)

8.2. Пример внедрения в программу точечных условных знаков (с текстовой информацией)

8.3. Пример внедрения в программу линейных условных знаков


Основные сведения

Как говорилось ранее, используемые Программой условные знаки условно поделены на 4 группы:

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

Имя модуляИмя файла с настройкамиТип условных знаков
Растительность -> Отдельно стоящие деревьяces_topo_породы_деревьев.csvТочечные
Растительность -> Точечные топознакиces_topo_растительность_точечн.csv
Коммуникации -> Люкиces_topo_люки.csv
Геодезические пунктыces_topo_геодезические_пункты.csvТочечные с текстовой информацией
Строенияces_topo_строения.csv
Промышленные объектыces_topo_промышленные_объекты.csv
Железные дороги -> Сооружения при ЖДces_topo_сооруж_при_жд.csv
Автодороги -> Сооружения при автодорогахces_topo_сооруж_при_ад.csv
Гидрография -> Точечные топознакиces_topo_гидрография.csv
Гидротехнические объекты -> Точечные топознакиces_topo_гидротехн_объекты.csv
Мосты -> Точечные топознакиces_topo_мосты.csv
Рельеф -> Точечные топознакиces_topo_рельеф.csv
Растительность -> Характеристики деревьевces_topo_характеристики_пород.csv
Сельхозугодья -> Точечные топознакиces_topo_сельхоз_угодья.csv
Грунты -> Точечные топознакиces_topo_грунты.csv
Болота -> Точечные топознакиces_topo_болота.csv
Коммуникации -> Трубопроводыces_topo_трубопроводы.csvЛинейные
Коммуникации -> Кабелиces_topo_кабели.csv
Растительность -> Кабелиces_topo_растительность_лин.csv
Огражденияces_topo_ограждения.csv
Растительность -> Площадные топознакиces_topo_растительность_площ.csvПлощадные
Ограждения -> Ограждения на фундаментеces_topo_ограждения_на_фунд.csvЧастный случай линейных

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

8.4. Пример внедрения в программу площадных условных знаков

В данном примере мы будем внедрять в программу 3 условных знака: Леса естественные, Леса саженые и Сады фруктовые. Причем, поскольку начертание этих условных знаков отличается для масштабов 1:500 - 1:000 и 1:2000 - 1:5000, у нас, по сути, будет 6 условных знаков.

Для наглядности приведу несколько скриншотов из всем известной книги:

8.4.1. Проверяем присутствие блоков

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

При необходимости вносим и сохраняем изменения в файле ces_topo_blocks.dwg, сохранив его в формате AutoCAD версии не позднее той, в которой вы собираетесь работать. К примеру, чтобы работать в версии 2010 и позднее, нужно сохранить в формате 2010.

8.4.2. Составляем описание условных знаков, назначаем свойства(наименование, цвет, слой и т.д.).

Открываем Excel, создаем новый файл в следующем виде:

Внимание! На данном этапе слайдам в 7-ом столбце только назначаем имена, готовить слайды будем позже. Имена можно назначать произвольно, но я рекомендовал бы для удобства использовать в имени слайда имя соответствующего блока и приставку sld_.

Внимание! Первые 4 строки файла - комментарии и заголовки столбцов, обратите внимание что эти строки начинаются с двух косых черт , чтобы программа не приняла заголовки за данные. Если этого не сделать, программа будет искать блок с именем имя_блока и не найдет его, вызовет сообщение об ошибке. Строку с заголовками можно так же исключить, просто без нее будет тяжелее ориентироваться.

Внимание! Разделителем целой и дробной части в автокаде и в программе является точка-запятой. Если в екселе в настройках стоит разделитель запятая, вполне вероятна ситуация, что при попытке ввести '3.5' дурной ексель исправит это число на дату - '3 мая'. Поэтому к этому моменту следует отнестись внимательно и по окончании проконтролировать редактируемый CSV файл в блокноте. (Разделитель целой и дробной части в екселе можно на время поменять в настройках, так же можно наш CSV файл целиком создать и править в блокноте)

Пояснение к параметру 'смещение при заполнении'.

Для метода заполнения 'квадратами' этот параметр задает длину стороны 'квадрата' при масштабе 1:1000 :

Для метода заполнения 'ромбами' этот параметр задает расстояние от вершины ромба до его центра при масштабе 1:1000 :

Для метода заполнения 'в случайном порядке' этот параметр задает шаг сетки, от узлов которой блоки смещены на случайную величину (в диапазоне от нуля до шага сетки * 0.5), для масштаба 1:1000 :

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

Пояснение к параметру 'базовый масштаб блока'.

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

Сохраняем файл под именем ГУГК-растительность_площ.csv(или любым другим) в папке с программой.

Следует убедиться, что в качестве разделителя столбцов стоит точка-запятой и в качестве разделителя целой и дробной части числа используется только точка. Для этого можно открыть наш CSV файл в блокноте. Он должен выглядеть так:

8.4.3. Внедряем в меню.

Открываем в блокноте файл ces_topo.mns из папки с программой. Структура этого файла описывает меню программы:

Обратите внимание на комбинацию символов '->' перед словом 'Построение', означающий начало подменю, и на '<-' перед 'Справка по разделу', означающий конец подменю, это поможет понять принцип описания структуры меню в файле MNS.

Поместим нашу группу условных знаков в отдельное подменю. К примеру, между подменю 'Построения' и пунктом меню 'Перезагрузить программу'. Для этого корректируем MNS файл так, как показано ниже. Добавляемые строки показаны красным. Серым цветом показаны строки, добавленные в предыдущих примерах, (1), (2) и (3).

...
[->Построения]
[Построение прямоугольника]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;_ces_draw_rect
[--]
[Заполнить область перекрестьями координат]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;_ces_ins_kr
[Подписать перекрестья координат]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;_ces_mrk_kr
[--]
[Геоданные контура(полилинии)]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;_ces_geo_data
[--]
[<-Справка по разделу]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_help "chapter_7-9.htm")
[--]
[->Усл. знаки ГУГК]
[Точечные, автодороги]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_topo_so "ГУГК-автодороги")
[Точечные, геопункты]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_topo_so_atr "ГУГК-геопункты")
[Трубопроводы]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_topo_sl "ГУГК-трубопроводы")
[<-Растительность, площ.]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_topo_sa "ГУГК-растительность_площ")
[--]
[Перезагрузить программу]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_topo_menu_reload)
[Удалить программу]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;(ces_topo_uninstall)
[Настройки]^C^C^C^P(if (not ces_topo_cfg)(load "ces_topo.fas"))^P;_ces_topo_options
...

Вид отредактированного MNS файла в блокноте:

После этого обязательно(!) выбираем в меню программы Перезагрузить программу. Только после этого изменения появятся в меню:

Пояснение(1). Команда ces_topo_sa является частью программы CES-Топо, а фраза ГУГК-растительность_площ является именем составленного нами ранее файла CSV без расширения (.CSV) и находящегося в папке с программой. Расширение в меню указывать не нужно! Следующий пример является неправильным: (ces_topo_sa "ГУГК-растительность_площ.CSV"), поскольку программа автоматически добавит расширение и будет искать файл ГУГК-растительность_площ.CSV.CSV и не найдет его.

Пояснение(2). В файле меню комбинация символов -> означает начало подменю, а комбинация символов <- означает конец подменю, этой комбинацией символов должен предваряться только последний пункт подменю, но не все! Обратите внимание на структуру подменю 'Построения'.

8.4.4. Проверка.

Запускаем через меню нашу новую команду. Результат должен быть таким:

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

Проверяем каждый условный знак кликая мышью по пустому прямоугольнику под наименованием условного знака.

8.4.5. Готовим слайды.

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

Результатом манипуляций будет набор файлов с расширением .SLD:

Причем имена этих файлов должны соответствовать записям в ранее подготовленном нами файле ГУГК-растительность_площ.CSV :

8.4.6. Готовим библиотеку слайдов.

Приготовленные слайды (файлы с расширением sld) необходимо внедрить в библиотеку слайдов, файл с именем ces_sld.slb из папки с программой. Для этого нам потребуются исходные слайды программы CES-Топо, утилита slidelib.exe, идущая в комплекте с автокадом (нужен установленный автокад, путь к этой утилите будет примерно таким: C:\Program Files\Autodesk\AutoCAD 2014\slidelib.exe, так же можно эту утилиту найти через поиск) и скрипт, который облегчит создание библиотеки. Все кроме утилиты slidelib.exe можно загрузить с моего сайта, саму же утилиту, по понятным причинам, я выкладывать не могу.

Загружаем архив с исходными слайдами по ссылке.

Распаковываем его на жесткий диск, в распакованную папку помещаем ранее приготовленные слайды и утилиту slidelib.exe

Запускаем скрипт !sld_make.bat

Результатом работы скрипта и утилиты будет файл ces_sld.slb, который нужно поместить в папку с программой с обязательной заменой исходного файла.

На изображении ниже показано окно проводника с распакованными и нашими новыми слайдами, которые выделены.

8.4.7. Финальная проверка.

При запуске нашего нового пункта меню окно программы должно выглядеть примерно так:

8.4.8. Делаем копии измененных файлов.

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

8.4.9. Возвращаем на место наши изменения после обновления программы.

Просто так вернуть на место измененные нами файлы с заменой существующих после обновления программы может оказаться плачевным - программа в плане обновления окажется в том состоянии, в котором была на момент наших манипуляций, описанных здесь. Поэтому обновленный файл меню (mns) не заменяем нашей копией, а только добавляем в него нашу строчку. С файлом ces_topo_blocks.dwg поступаем так же. Открываем этот файл из папки с программой, открываем в другом окне нашу копию и копируем через буфер обмена наши блоки. Если вы делали изменения в файлах CSV, которые шли вместе с программой, то такие файлы так же нужно обновлять не копированием с заменой, а так же как и файл меню (mns), т.е. копированием только тех строк, которые мы добавляли.


См. так же:

8.1. Пример внедрения в программу точечных условных знаков (без текстовой информации)

8.2. Пример внедрения в программу точечных условных знаков (с текстовой информацией)

8.3. Пример внедрения в программу линейных условных знаков