Главная страница » Электрика в театре » Алгоритмы многогранных поверхностей

1 ... 14 15 16 17 18 19 20 ... 23

в случаях, когда базовой является точка, лежащая на оси (расчетная схема рис. 68, е) измеряемой протяженности: L: =

= ~ . Расчет производится по формулам (В) и (Г). Если

применяется схема (рис. 68, б), то в формулах (В) используется cos 6j, т.е. cos (180--9;,), где 9-измеряемый угол, отсчитываемый всегда от оси О^х^. Упомянутые расчетные схемы вместе с обозначениями помещены на рис. 69 вместе со схемой алгоритма 02п/п07СТ.

Алгоритмы программ автоматического формирования размерной сети

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

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

Алгоритм программы 02П02 формирования размерной сети в случае семейства концентрических окружностей и дуг. Исходными для программы являются массивы с меткой М. Управляющая программа вырабатывает импульсы для включения в работу двух специфических и трех стандартных подпрограмм. Схема алгоритма, отображающего управляющую программу, показана на рис. 70. Входной служит подпрограмма 02П02п/п01 (рис. 71),. производящая специфическое упорядочение исходного массива с перераспределением кодов по признаку убывания радиусов дуг. Кроме того, вычисляются координаты средней точки у каждой обслуживаемой дуги, и каждому коду присваивается позиционная метка b = i (i =1,2, 3, 4). Значение i выбирается в зависимости от того, в какой четверти окружности, условно проведенной из центра с координатами х^у^, располагается средняя точка дуги. Программа принимает специальные решения в случаях полной окружности, а также при расположении средины дуги на границе двух четвертей. После 02П02п/п01 выбор кодов происходит по признакам b = i и г = 0. Признак b формируется в счетчике а<р, содержание которого изменяется каждый раз, когда коды, снабженные меткой, совпадающей с содержанием



до-,

[Наиало .

02 /nCSCJ

02.П-02 /п 01

ог /п01ст

rгB

Выполнение 02 /пСб страз-мерной надписи


конец

Рис. 7Й. Схема управляющего алго- ,

ритма размещения размеров концен-

трических окружностей j-п л2-1-

счетчика, отработаны. Метка г = О отличает дугу, которая еще не обслуживалась. -во-Выбранный код дуги обрабатывается последовательно включающимися подпрограммами: 02п/п01СТ; 02П02п/п02 (специфическая подпрограмма, определяющая параметры размерной сети); 02п/п05СТ; 02п/п0бСТ. (Ть

Алгоритм подпрограммы р ,

02П02п/п01 оснащения мае- J

сива концентрических дуг (рис. 71). После распознавания по признаку дуга либо окружность начинается фрагмент присвоения дуге позиционного признака b =1,2, 3, 4. В случаях расположения средины дуги на границе, разделяющей области распространения признаков, принимается эвристическое

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

исходных точек, ограничивающих дугу, х^у^; ХкУЙ cp = y + AyR\

-ЕО--

Переадресаций

Г -1

команд выбора

ячеен засылки

n-FO-

02П02 п/ 02


где

V д

*ср ц

L. = l/(x,p <)2 + (i/,p i/S)

ср -

у

Здесь

*?pJ/?p - координаты средины дуги; х^у^ -- координаты центра дуги; /?Д - радиус дуги.



(начало)

r-BO.

f.CO--1--

Формиродамие стандартного массива вт а doati

r-DO-1-

Выбор кода дуги пр радиусу

Нет

Переадресация на (-1) ячеек cm (а*1)-Эц до


Перенос кода в специальный массив


В2-

Выбор очередного кода из специального массива

Г-С21-

С2-

r-n?-L


-D2-=1р

T-f2-

у!р-уц-<!Ц


E J-

* 1

r-нг-


\2 -

IfepeadpecauUH команд выбора из специального массива

Нет j3 Ма


Прпрп

г-:) г

0-1- Jo

Переадресация команд выбора дуги

Рис. 71. Алгоритм упорядочения исходного массива концентрических дуг



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

Ф О, включается фрагмент, распределяющий размеры, связанные с окружностями, в те области, где количество размеров, распределенных ранее, имеет наименьшее число. После такого распределения глобальный признак специального массива заменяется на конкретные для каждого кода признаки. Может случиться, что распределенные ранее размеры располагаются по областям равномерно. Тогда очередному коду окружности присваивается признак 6=1, в результате чего равномерность нарушается, и последующие размещения кодов специального массива происходят в областях с Ь =?= 1. То же самое происходит в том случае, когда исходный массив весь состоит из окружностей.

Алгоритм подпрограммы 02П02п/п02 определения параметров размерной сети для массива концентрических дуг (рис. 72). Особенностью процесса нанесения размеров в обсуждаемом случае является невозможность заранее ограничить себя определенными свойствами размещаемых размеров. Например, нельзя ограничить число размеров или размер надписей и т. п.

В силу сказанного алгоритмы, описываемые схемой 02П02п/п02, используют эвристические приемы. Это означает, что при неогра-ниченном увеличении числа размеров процедуры их размещения не гарантируют выполнения всех требований (например, требования отсутствия взаимных пересечений линий, появляющихся при размещении каждого нового размера). Однако алгоритм составлен так, что принимается все возможное для выполнения указанных требований. Эта тактика является моделью поведения человека в подобных ситуациях. Исходным для работы алгоритма является код размещаемого размера, выбранный из упорядоченного после работы 02П02п/п01 массива. Входной фрагмент является счетчиком отработанных кодов, имеющий данный признак Ь.

Одной из эвристик процесса является правило размещения размерной надписи в зоне, ограниченной разностью радиусов-выбранной из массива дуги и следующей за ней по порядку. В случае размещения в зоне AR = Rj - Rjp-i параметры размерной линии, обслуживающей следующий код, могут быть выбраны с большей свободой. Эта эвристика не актуальна для последней в массиве дуги, что зафиксировано соответствующей проверкой: р - Jp > 1? Как видно из схемы алгоритма 02П02п/п02 (рис. 72), в случае наличия метки дуги в коде вычисляется угол яр, представляющий собой половину центрального угла, стягиваемого дугой. Точке, являющейся срединой дуги, присваивается предварительная метка начала размерной линии: х^: = Хи; Уср'. =Ун- Фраг-. мент заканчивается обращением к исполнительному оператору 02П02п/п02п001, вычисляющего длину Lp размерной линии, которая может быть использована для размещения размерной надпи-



[Начало)

0212

озп

- В


02П02%02

В! в 03-значение

---В+, ближайшее к

b (ом.т

Рис. 72. Схема алгоритма 02П02п/п02 размещения размеров концентрических дуг






си без риска пересечений с дугой и центровыми линиями. При размещении первого по счету размера (/р = 1) проверяется возможность помещения размерного прямоугольника вдоль размерной линии по длине Lp. Если размер не размещается, то происходит обращение к 02п/п04СТ, которая обеспечивает вынос размерной надписи на полку (в этом случае код дуги получает метку Г). Если же информация размещается по длине Lp, то проверяется возможность размещения в зоне AR. В случае отсутствия возможности вступает в действие 02п/п04СТ. Если размещаемый размер не первый по счету, то он проходит дополнительные проверки и процедуры.

Дальнейшая стратегия поставлена в зависимость от расположения средины обслуживаемой дуги по отношению к средине предыдущей в массиве дуги. Это расположение характеризуется величинами tg6,- - углом наклона размерных линий, вычисляемых оператором 02П02п/п02И001. Поясняющая схема изображена на рис. 73. Проверяется положение луча (рис. 73), реализующего размещаемую размерную линию и наклоненного под углом 6j к аналогичным лучам ранее размещенных дуг. Специальный фрагмент алгоритма формирует рабочие ячейки ale, +о+е и ао. Ячейка ale содержит информацию о луче с ближайшим углом, значение которого меньше размещаемого; а+е - соответственно с ближайшим большим углом; ао - отражает случай совпадения ранее реализованного . луча с размещаемым. В табл. 5 отражены ситуации, которые получаются при различных случаях размещения. Номера ситуаций являются идентификаторами выбора дальнейшей тактики размещения.


Рис. 12. Схема алгоритма 02п02п/п02 размещения размеров концентрических



Размерный \xL vf прямоугольнаи/


уд ув ср ср

Ситуации О 1 2


Рис 73. Типовые схемы положения луча размерной линии

В схеме этот выбор соответствует ветвлению после программного символа А4. Ъ результате получаются простые цепочки действий, соответствующих каждой ситуации и приводящих к назначению подходящего 6, под которым и проводится размещаемая размерная линия. Критерием допустимости проведения размерной линии между ранее реализованными служат условные константы. В схеме на рис. 72 принята константа 5°, отражаю-

Таблица ситуации

Таблица 5

Идентификатор




Схема с обозначениями

Рис 74. Схема алгоритма вычисления длины отрезка размерной линии

щая минимальный угол между двумя смежными размерными линиями.

Алгоритм стандартного исполнительного оператора 02П02п/п02И001. Здесь вычисляется длина отрезка размерной линии Lp, упомянутая выше. Из длины размерной линии, равной RP; вычитаются отрезки A?ф и Ai?, величина которых определяется оператором как функция от угла 6,- наклона Lp, величины высоты / размерного прямоугольника (см. расчетную схему на рис. 74, где приведена и схема алгоритма оператора). Угол 6; отсчитывается в каждом квадранте от своей особой оси, поэтому



процедура вычисления Э,- зависит от значения признака Ъ, а сам угол не превышает 90°. Оператор обеспечивает хранение tg Qj j и tg Qj, а также L-.a и величины Д/?.

Алгоритмы 02ПОЗ автоматического нанесения размеров в массивах с общим базовым ограничением (метка К.)

Программа 02П03 (рис. 75) по своей функциональной значимости аналогична 02П02, изложенной выше. Входной, является подпрограмма 02П03п/п01, специфическая для массивов с меткой К. Величины /о и п' формируются 02П01. В случае линейного размера параметры сети определяются 02П03Т001, в остальных случаях - 02П03Т002.

Описание алгоритма 02П03п/п01 перераспределения кодов по признаку возрастания со стиранием лишних меток. Выше ука-

Переадресация обзора на очередА ной код массива


о---ак

\Конец^

Рис. 75. Схема алгоритма размещения размеров с общим базовым ограничением



1 ... 14 15 16 17 18 19 20 ... 23

© 2000-2024. Поддержка сайта: +7 495 7950139 добавочный 133270.
Заимствование текстов разрешено при условии цитирования.