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).
Вид отредактированного 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. Пример внедрения в программу линейных условных знаков