Пояснительная записка (1230110), страница 5
Текст из файла (страница 5)
Рисунок 22 – Пример установки границы станции
Кнопка «Координатная сетка» (рисунок 23) предназначена для черчения пустой таблицы с названий ее строк. При нажатии на кнопку программа просит вести длину станции. После этого с помощью точки следует указать расстояние от оси OX до нижней границы таблицы. Важно отметить, что горизонтальная координата точки не имеет значения при указании расстояния от центра координат до таблицы.
Рисунок 23 – Пример пустой координатной сетки
Для установки координат и подписей названий какого-либо элемента, следует выбрать соответствующий элемент на панели «Таблицы и ведомости» (рисунок 24).
Рисунок 24 – Основные элементы
координатной сетки
После выбора нужного элемента в диалоговом окне «Координаты элементов» (рисунок 25), следует указать с какого числа начать нумерацию элементов.
Рисунок 25 – Диалоговое окно
«Координаты элементов»
По умолчанию, текстовое поле пустое. Если требуется начать нумерацию с нуля, то в текстовое поле можно оставить пустым. В таком случае
Важно отметить, что для правильной работы данных процедур необходимо, чтобы был подгружен штриховой тип линий с названием «ACAD_ISO02W100». В противном случае, при попытке простановки координат для какого-либо элемента программа выведет сообщение об ошибке с просьбой загрузить штриховую линию (рисунок 26).
Рисунок 26 – Сообщение об ошибке
Расшифровка и описание процедур для простановки координат элементов сетки следующее:
-
«ЦСП» – центр стрелочного перевода, служит для указания координат центра крестовины перевода, работает в режиме цикла с увеличением счетчика на два;
-
«ПС» – предельный столбик, служит для указания координат центра предельного столбика, работает в режиме цикла с увеличением счетчика на два;
-
«ВУ» – вершина угла, служит для указания координат вершины угла при скруглениях на параллельных соединениях, смещениях путей, работает в режиме цикла с увеличением счетчика на два;
-
«Н» – нечетный входной светофор, служит для указания координат нечетных светофоров, работает в режиме цикла с увеличением счетчика на два;
-
«Ч» – четные входные светофоры, работает по аналогии с нечетными входными светофорами;
-
«Упор» – служит для указания координат упоров, не имеет цикла;
Для остановки работы циклических процедур следует нажать клавишу «Esc» или нажать правую кнопку мыши.
В панели «Стрелочные переводы» имеются кнопки до черчения стрелочных переводов с различным типом рельсов и маркой крестовины (рисунок 27).
Рисунок 27 – Панель
«Стрелочные переводы»
Чтобы установить стрелочный перевод нужно:
-
указать угол поворота всего перевода двумя точками;
-
указать точку установки.
Панель «параллельные соединения» содержит надо процедур для построения одиночных параллельных несокращенных соединений. После выбора нужного типа рельсов и марки крестовины появляется диалоговое окно (рисунок 28).
Рисунок 28 – Диалоговое окно параллельных
соединений
Данное диалоговое окно разделено на три блока: положение элемента, параметры соединения, и дополнительные элементы.
В блоке «Положение элемента» присутствует возможность выбора сторонности стрелочного перевода, так как стрелочный перевод является неотъемлемой частью параллельного всего элемента. Также в этом блоке присутствует возможность поворота докрестовинного отрезка, который обозначен буквой «а» на рисунке 1. Необходимо отметить, что поворот будет осуществляться при условии, что в блоке «Параметры соединения» текстовое поле «Вставка + a» не равно нулю.
Блок «Параметры соединения» содержит основные данные для построения соединения. Если текстовое поле «Вставка + а» равно нулю, то соединение будет строиться от центра стрелочного перевода, исключая при этом отрезок «а» (рисунок 1).
Блок «Дополнительные элементы» предоставляет пользователю возможность выбрать какие дополнительные элементы установить вместе с параллельным соединением. В данном случае реализована возможность выбора установки светофора, так как он устанавливается не во всех случаях при параллельном соединении.
Для удобства проектирования на вкладку модуля добавлены стандартные команды AutoCAD, такие как «Обрезать», «Удлинить», «Смещение» и «Переместить».
В панели «Элементы путевого развития» имеются процедуры для независимой установки светофоров, столбиков и упоров. Для того чтобы установить элемент необходимо сначала указать угол с помощью двух точек, затем указать точку для установки нужного элемента.
Так как толщина линий разных типов путей , добавлена возможность изображения линий разной толщины для изображения главных и погрузо-разгрузочных путей.
4 РАЗРАБОТКА ПРОЕКТНЫХ ПРОЦЕДУР
4.1 Выбор средств разработки
Перед тем как приступить к разработке проектных процедур, следует определиться с тем, как будет выглядеть модуль для проектирования элементов путевого развития. По требованию заказчика интерфейс модуля должен быть понятен человеку, владеющему системой AutoCAD на уровне простого пользователя и не требовать большого количества времени на изучения принципа его работы. Также одним из требований к разработке модуля была возможность установки модуля на различные компьютеры, то есть модуль должен обладать свойством переносимости.
Изучив все возможные способы реализации данного модуля было принято следующее решение:
-
добавить вкладку «САПР ЖС» с вложенными панелями;
-
языком программирования черчения элементов выбрать AutoLISP;
-
для общения с пользователем посредством диалоговых окон использовать язык Dialog Control Language;
-
для осуществления переносимости на другие компьютеры использовать файл частичной адаптации интерфейса.
4.2 Программирование диалоговых окон
Файлы, написанные на языке управления диалогом (DCL – Dialog Control Language),представляют собой текстовые файлы в формате ASCII, содержащие описание диалоговых окон. В каждом файле DCL может находиться описание одного или нескольких диалоговых окон. Количество описаний диалоговых окон, определенных в файле DCL, не ограничено. Файлы DCL имеют расширение .dcl.
Файлы, написанные на языке управления диалогом (DCL), содержат описание, определяющее внешний вид диалоговых окон, отображаемых на экране. Диалоговые окна включают в себя кнопки, раскрывающиеся списки, флаги, переключатели, пиктограммы и другие элементы управления, организованные в строки или столбцы. Практически любое диалоговое окно можно разделить на отдельные элементы управления, как например окно режимов рисования (рисунок 29).
Рисунок 29 – Диалоговое окно «Режим рисования»
Предварительно определенные элементы и их обозначения в языке DCL приведены в таблице 1.
Таблица 1 – Предварительно определенные элементы и их обозначения
| Предопределенные элементы | Формат DCL |
| Кнопка | button |
| Текстовое окно | edit_box |
| Образ кнопки | image_button |
| Списковое окно | list_box |
| Всплывающий список | popup_list |
| Переключатель (селективная кнопка) | radio_button |
| Ползунок | slider |
| Переключатель | toggle |
| Столбец | column |
| Блочный столбец | boxed_column |
| Строка | row |
| Блочная строка | boxed_row |
| Столбец переключателей | radio_column |
| Блочный столбец переключателей | boxed_radio_column |
| Строка переключателей | radio_row |
| Блочная строка переключателей | boxed_radio_row |
| Изображение | image |
| Текст (надпись) | text |
| Разделитель | spacer |
Большинство из этих элементов будут использованы для программирования диалоговых окон некоторых процедур.
Файл, написанный на языке DCL, состоит из логических единиц – директив. Программный код диалогового окна начинается с директивы описания диалога. В общем виде она имеет следующий вид:
<Name> : dialog { <атрибуты окна>
<поля>
}
<Name> — это имя, по которому диалоговое окно из LISP программы вызывается на экран.
Далее следует «:», ключевое слово dialog, и фигурная открывающаяся скобка «{»
Параметр <атрибуты окна> представляет собой последовательность атрибутов и их значений. В общем виде это выглядит следующим образом:
<Атрибут> = <значение>;
После атрибута и его значения ставиться «;»
Параметр <поля> является набором директив описание полей (текстового поля, редактируемого текстового поля, кнопок)
Директива описания диалога заканчивается закрывающей фигурной скобкой «}» [17].
4.3 Программирование процедур
4.3.1 Проектирование стрелочных переводов и параллельных соединений
Первым делом приступим к написанию кода для изображения стрелочных переводов и одиночных несокращенных соединений. Опишем сразу программный код для одиночных несокращенных соединений, так как описание стрелочных переводов не имеет большого смысла по причине того, что стрелочные переводы являются частью параллельных соединений.
Схема работы изображения параллельных соединений следующая:
-
ввод исходных данных соединения;
-
получение значений;
-
в соответствии с введенными исходными данными добавление к исходным данным ряда значений;
-
задание угла поворота;
-
указание точки установки;
-
черчение элемента по заданным значениям.
(DEFUN c:soed_11_50 (/ type_r mark)
(setq mark "1")
(setq type_r "0")
(mp_soed mark type_r)
)
Эта часть кода вызывает главную функцию построения параллельного соединения, передавая в нее аргументы в соответствии с выбранным типом рельсов и маркой крестовины.
(if (and (= mark "1") (= type_r "1"))











