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

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

зывалось, что один и тот же размер может входить в два массива с меткой К. Размещение такого размера с выносом размерной линии должно проводиться, очевидно, исходя из наибольшего по числу кодов массива, в который он входит. Этим достигается свободное без пересечений размещение меньшего из массивов. В результате работы подпрограммы 02П01 обсуждаемый размер, вошел в оба массива. Необходимо удалить его код из одного из этих массивов. Такая операция выполняется оператором описываемого алгоритма. Для решения вопроса об отнесении размера к определенному массиву необходимо расположить коды в массивах по признаку возрастания величин размеров. Эта операция также проводится в 02П03п/п0. Изложенные операции часто встречаются в практике программирования и могут быть реализованы по-разному, поэрму схема алгоритма не приводится.

Алгоритмы, связанные с формированием размерной .сети в массивах с меткой К

В зависимости от вида размера (линейный либо угловой) размерная сеть формируется тактическими операторами 02П03Т001 или 02П03Т002. В структуре этих операторов имеются исполнительные операторы, вычисляющие параметры размерной сети в разных ситуациях. Основных ситуаций две: 1) вынос размера за пределы контура проекции; 2) ввод размера внутрь контура и размещение размера в зависимости от габаритной фигуры проекции. Под последней понимается четырехугольник, описанный около проекции со сторонами, параллельными осям координат.

Алгоритм оператора 02П03Т001 (рис. 76). Оператор включается в том случае, когда обслуживаемый размер является линейным либо дуговым (измеряется длина дуги). Во входном фрагменте оператора распознается ситуация, а результаты засылаются в ячейки типа а,- либо а,-у (где t и ; - буквенные индексы, значения которых вытекают из ситуации). В зависимости от результатов распознавания включаются упомянутые выше операторы. Используется также стандартная подпрограмма 02п/п07СТ, которая включается в тех случаях, когда в кодировании исходного размерного графа имеются случаи несовпадения измеряемой протяженности с реальным отрезком на чертеже. Эта ситуация имеет признак в виде = 0. Другой причиной использования 02п/п07СТ является вынужденное отступление от правила кодирования размерного графа, выражающегося в совпадении начальной точки измеряемой протяженности с базовой точкой, т. е. xfy = Х(,у^. Применяемые схемы, которые дополняют это описание, расположены на правом поле схемы рис. 76.

Алгоритм оператора 02П03Т001И001 (рис. 77). Этот исполнительный оператор входит в состав 02П03Т001 и служит для выноса размерной сети за пределы габаритного прямоугольника. При . этом возникает уверенность, что размерные линии и размерные



{Начало)


Символ 30 содержит проверку ---параллельности размера стороне гаВаритноео прямоугольника

Рис. 76. Схема оператора размещения линейных или дуговых размеров: а, - ячейка со специальными метками; - счетчик циклов; J -в массиве

счетчнк кодов



(начало Л


Рабочая схема 4i

Габаритный прямоугольник/

ВычислитьхуР по формулам м-

(Конец

Рис. 77. Схема оператора выноса размерной сети за пределы габаритного прямоугольника:

L = 1, 2, 3, 4; hy = у^ - (/;Ад;== стороны габаритного

надписи не пересекутся с элементами изображения. Обращение проводится в случаях, когда размер относится к протяженности, входящей во внешний контур, при одновременной многосвязности последнего,; = О и одновременно a > О и а > О (между начальной и. конечной точками измеряемой протяженности имеются другие элементы изображения, входящие в число обслуживаемых; кроме того, измеряемый отрезок не параллелен ни одной из сторон габаритного прямоугольника). Соблюдение Од > О не обязательно в случае =0 (т. е. расстояние измеряется не между линиями контура). В последнем случае достаточно соблюдения признака > 0.

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



ничения. Расстояние между смежными размерными линиями берется постоянным (например, = 10 мм).

Координаты начальной и конечной точек размерной линии вычисляются по формулам.

Алгориты 02П03Т002 определения параметров размерной сети для угла и дуги (рис. 78).

Используются схемы нанесения размеров, рекомендуемые ГОСТ 2.307-68. Первый по счету размер обслуживаемого массива привязывается к габаритному прямоугольнику изображения (или габаритной окружности, см. ниже). Если же обслуживается не первый код, то после учета мелких особенностей принятых схем размещения управление получает оператор 02П03Т002И002, вычисляющий параметры размерной сети t-ro размера массива. Ниже более подробно рассмотрено обслуживание массива углов. В случае массива дуг применяют схемы 2А и 2Б (рис. 79). Последняя из схем включается, когда угол ф, стягиваемый дугой, превышает некоторую константу К, принятую эмпирически (например, К = 180°). Дальнейшая работа с дугами протекает аналогично операторам, излагаемым для углов. Так, схема 2А обслуживается оператором 02П03Т001 с некоторой модификацией команд, схема 2Б - несколько модифицированными операторами 02П03Т002И001 й 02П03Т002И002.

Схема 1Б применяется в случае обслуживания внутреннего контура (при многосвязном контуре), а также в случаях, когда число размеров в данном массиве превышает некоторую константу Кр (принято Кр = 3) и нет метки множественной системы (схема IB). Направление отсчета углов (дуг) может не совпадать с направлением обхода контура.

Вследствие аналогий работа с дугами в дальнейшем не обсуждается.

Алгоритм, оператора 02П03Т002 И001 привязки размерной сети к габаритной фигуре изображения (рис. 80). Входной фрагмент оператора определяет параметры габаритной фигуры, в которую вписывается изображение. В качестве габаритных фигур используется прямоугольник (рис. 81, а) либо окружность (рис. 81, б). Последняя применяется в случаях, когда контур проекции -



(начало) г-

г-/II-.-

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

Формирование счетчиков отработанных KOOot

П-С1 02П03Т002 И002


02П01Т002 PODI


Аля углов М


Рис. 78. Схема алгоритма размещения размеров угла и дуги:

- счетчик циклов; - вершина, общая для отсчитываемых углов; - радиус п-й размерной линии

Рис. 79. Типовые схемы размещения размеров углов и дуг:

Og - вершина, общая для отсчитываемых углов; - начало местной системы координат, в которой задан отсчитываемый угол

окружность; сторонами измеряемых углов являются оси отверстий либо гнезд, расположенных по окружности. В таком случае 0 = = Ов и измеряется расстояние до наиболее удаленной точки от Ов в множестве гнезд либо отверстий. Это расстояние присваивается Rj.Q - радиусу габаритной окружности.

Если внешний очерк изображения также окружность радиуса вк и R - RQ <15 мм, то Rr6- = RBK- Фигура задается в системе Оху, относительно которой задается н местная система мХыУъл- Если принять некоторое направление отсчета углов, то р,- (i =1, 2, 3, 4) - расстояние от Ом = 0 до вершины габаритного прямоугольника. После выбора габаритной фигуры вычисляются углы наклона радиус-векторов, моделирующих стороны измеряемых углов. Минимально необходимый для выноса за пределы габаритной фигуры радиус размерной линии вычисляется оператором 02П03Т002И001, эта часть именуется в дальней-



Габаритная o/rpyfUHocmb?

г-СО-Вычисление

r-DD

а

£0

Схема^-. В

F0 -

Выделение последнего кода массива

nGO--J-

Присвоение массиву MtrrjHU IB

ft- ?

г-10-

ЛрисВоение Массив метки If,


УЧ-тенущий угол базой и осью

\у Вход )

Переадресация команд сравнения на ячейку ц^. j

Присвоение массиву метни 1А

Вычисление

<и>Уу> х<рУу,~а)1у

Вычисление Rg-min радиуса Выноса от От до Оху Rfi ~*- atp

rntn

Bip-a,p*5,

Внешнее обращение: ,


pj)3


нет

Символ F3-npo-\ верка наличия точки габаритА най дшгуры, . Симметричной 1 прошедшей Вер-! шине ([индекс I вершины)

Оператор /?

JJ Символ по про- fZ -N

- вернет -.являю- \ПрерыВание)

ются ли стороны уела линиями Внешнего контура

(рерыВание)

Рис. 80. Оператор привязки размерной сети к га: баритной фигуре изображения

шем оператор При вычислениях учитывается схема нанесения размеров. На рис. 80 применены обозначения: ф,- - текущий угол, размер которого наносится; - рабочая ячейка; lRi = = Rui - Roj - минимальный размер радиуса началь-

ной дуги, от которой могут отсчитываться выносные линии угловых размеров; / = а, Ь, с, d - стороны отсчитываемого угла; 1-1 - точки, симметричные относительно оси местной системы



координат (рис. 81, а); /?баз - расстояние от Ов до границы габаритного прямоугольника в сторону выноса размера по базовой линии отсчета углов данного массива; х^Уш =1. 2. 3, 4) - координаты вершин габаритного прямоугольника в местной системе; - счетчик кодов; > (90° i) - {йу,) - проверка на наличие точки габаритного прямоугольника, симметричной точке, являющейся в переборе прошедшей вершиной (например, наличие точки 1, симметричной вершине 1, рис. 81, а); - углы наклона радиус-вектора, соединяющего 0 с вершинами габаритного прямоугольника по отношению к оси 0 Хм.

Алгоритм оператора 02П03Т002И001 (рис. 82). Оператор включается в случае i > 1 (где i - порядковый номер обслуживаемого размера в массиве). Вначале с помощью упомянутого выше оператора R (рис. .80) подсчитывается радиус размерной линии R, минимально возможный для данного размера. После этого решается пригодность этого радиуса с учетом предьщущих размеров. Применяемые при этом константы приняты условно и могут быть изменены. Логика оператора вполне ясна из схемы, показанной .на рис. 82.


Рис. 81. Типы габаритных фигур: а - прямоугольник; б - окружность



(Начало )

Оператор


Пет

г-130

Вычисление\Явпл равного расстоянию от Орд о точки х% У^л

\опя\- - 1пр


r-FO

Символ со содергкит Р -проверку выноса предыдущего массива на полку

Рис. 82. Схема оператора R подсчета радиуса размерной линии:

i?£p - радиус размерной линии угла (/ = 1, 2,

3.....п); /?опл ~ радиус выноса размера с учетом

выноса на полку предыдущего размера

Алгоритмы 02П04 нанесения размеров цепочками

Исходные данные для этих алгоритмов аналогичны изложенным выше и. в основном ограничиваются размерным графом. В массив последнего входит информация о координатах начальной и конечной точек каждого размера, а также коды размерных надписей, включая все символы, которые сюда относятся. Первый по порядку размер в массиве не должен быть угловым. Управляющая программа 02П04 (рис. 83) осуществляет обзор массива по элементам размерного графа с привлечением стандартных подпрограмм и тактических операторов. Входным является фрагмент,




Нет

Обзор массива с выделением очередного элемента

02 /п 01 СТ определение габаритного размера пря-моуеольника


02П0ЧТ002 определение параметров размерной сети (линейный)

02 п/п 02СТ определение параметров размерной сети (окрутность,дуга)

Л

02 п/п оWT вынесение размера на полку

02П01*-Т001 определение параметров размерной сети (угловой)


02поест вычерчивание размерной сети

02/708СТ вычерчивание размерной надписи


r-GO

Размещается ли информация ?

г^-ч

( Конец )

Рис. 83. Схема управляющего алгоритма нанесения размеров цепочками: /ц - счетчик циклов; iV - число обслуживаемых размеров

выделяющий очередной'элемент размерного графа. Тактический оператор 02П04Т001 обслуживает угловые размеры, 02П04Т002 - линейные либо размеры дуг окружностей.

Алгоритм оператора 02П04Т001. При наличии размера, определяющего величину угла, размерная линия вычерчивается в виде дуги с центром в вершине угла. Несмотря на то, что размеры нанесены цепочкой, размер угла может отсчитываться не от конечной



точки предыдущего размера, так как последний может быть линейным. Это усложняет поиски благоприятных размещений размерной надписи. Вершина измеряемого угла должна быть закодирована, так как в противном случае линейные размеры, смежные с измеряемым углом, не имеют общего ограничения. Это свидетельствует о наличии между ними неучтенных элементов (контур проекции должен быть замкнутым). В таких случаях предусмотрен аварийный останов по ошибке в кодировании. Основные схемы нанесения размера угла показаны на правом поле листа № 2 схемы (рис. 84). В схеме 3 проставляются размеры угла, paiBHOro обслуживаемому. В операторе фигурирует величина Riji, отображающая минимально необходимый радиус размерной линии, который обеспечивает размещение размерной надписи по дуге размерной линии. Величина 7?, является функцией длины L размерного прямоугольника и вычисляется по формуле

R --i- -

mln 2 sin ф/2

где ф - измеряемый угол.

Входным является стандартный исполнительный оператор 02ГЮ4Т001И001, в котором выделяются стороны угла и переносятся в рабочие ячейки и й,-2. где индексы 1 и 2 являются условными метками сторон угла. Содержание оператора тривиально и далее не описывается.

После нескольких подготовительных проверок, ясных из схемы, длины закодированных отрезков сторон угла классифицируются по длине. Большая сторона помещается в ячейку С;. После уточнения схемы нанесения размера вычисляются координаты точки пересечения дуги размерной линии радиуса Ri с центром х^г/ц со сторонами угла. В операторе использованы формулы пропорционального деления отрезка (можно эту процедуру выполнить иначе).

Сущность проверок, уточняющих схему нанесения размера, сводится к эвристикам. Так, в случае, когда обе стороны угла являются контурными линиями, различают телесные и пустые углы. Первые отличаются тем, что их внутренняя область совпадает с телом проекции (с ее внутренней областью). В операторе работают несколько эмпирических констант. Например, принято, что R не должен превышать длины отрезка наибольшей стороны измеряемого угла более чем на 15 мм. При размещении размерной надписи предпринимаются попытки сохранить схемы 2 либо 1. Так, если Ram принятый из тактических соображений, отличается от необходимого для размещения на величину, не превышающую 3 мм, то этот размер допускается (при этом возможно касание символов размерной надписи сторон угла). При появлении необходимости применения схемы 2 делается попытка свести ее к схеме 1 за счет уменьшения R на 4 мм с учетом некоторого резерва места из-за непараллельности сторон измеряемого угла.



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

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