ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО СТАНДАРТАМ МЕТОДИЧЕСКИЕ УКАЗАНИЯ СИСТЕМЫ
АВТОМАТИЗИРОВАННОГО ЯЗЫК
ПРЕДСТАВЛЕНИЯ ГРАФИЧЕСКОЙ И ТЕКСТОВОЙ
РД 50-445-83
Москва
РАЗРАБОТАНЫ Министерством радиопромышленности СССР Государственным комитетом СССР по стандартам ИСПОЛНИТЕЛИ Ю.X. Вермишев, д-р техн. наук; Ю.М. Елшин, канд. техн. наук; А.В. Никитина; Д.В. Кривомазов; А.К. Куличенко, канд. физ.-мат. наук; В.А. Симонова ВНЕСЕНЫ Министерством радиопромышленности СССР Начальник Главного технического управления А.Н. Коротоношко УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Постановлением Государственного комитета СССР по стандартам от 29 декабря 1983 г. № 6521
РУКОВОДЯЩИЙ НОРМАТИВНЫЙ ДОКУМЕНТ
Утверждены Постановлением Госстандарта от 29 декабря 1983 г. № 6521 Срок введения установлен с 01.01.85 Настоящие методические указания устанавливают единый язык представления графической и текстовой информации (ЯГТИ) на носителях данных в ЭВМ и распространяются на форматы обмена и хранения графических изображений в системах автоматизированного проектирования (САПР) изделий, создаваемых в проектных, конструкторских, технологических, проектно-изыскательских организациях, в конструкторских и технологических подразделениях на предприятиях и объединениях отраслей промышленности и строительства. 1. ОБЩИЕ ПОЛОЖЕНИЯ1.1. Язык представления графической и текстовой информации (ЯГТИ) используется для аппаратурно-независимого представления геометрических и текстовых объектов (графических законченных конструкций) и предназначен для представления и внешнего хранения графической и текстовой информации на носителях данных, а также для обмена графической информацией между различными графическими системами. ЯГТИ не является стандартным языком для представления графических изображений в базах данных. ЯГТИ обеспечивает представление чертежей, графиков и схем, состоящих из ломаных линий, текстов, одиночных графических символов и изображений, дуг и заполняемых контуров. Информация, подлежащая начертанию, сформирована побайтно. Геометрическое исполнение символов генерируется библиотекой начертания, используемой в конкретных устройствах. Преобразование информации, представленной в ЯГТИ (зеркальное отображение, повороты, изменение масштаба и т.д.), осуществляется конкретными трансляторами для исполнительных устройств отображения по директивам пользователей. Трансляторы с языка ЯГТИ на языки конкретных устройств реализуются пользователями этих устройств. 1.2. Правила грамматики ЯГТИ определены посредством металингвистических формул БЭКУСА. Символ : : = означает «по определению есть». Информация, представленная символами, заключенными в угловые скобки <...>, заменяется соответствующими значениями. Информация, разделенная вертикальной чертой, является альтернативной (при конкретном применении выбирается одна из нескольких возможностей). Информация в круглых скобках является комментарием. 2. ОСНОВНЫЕ СИМВОЛЫ ЯЗЫКА2.1. ЯГТИ реализуется посредством кодов (символов языка) длиной 8 бит (1 байт), соответствующих 8-битному коду для обмена и обработки информации ДКОИ (в архивах ЕС ЭВМ) и 7-битному коду для обмена информацией КОИ-7 (в архивах СМ ЭВМ) (ГОСТ 19768-74 и ГОСТ 13052-74). Основные символы ЯГТИ используются для внутримашинного представления графической и текстовой информации. <основной символ> : : = <символ формата> | <графический символ> <символ формата> : : = горизонтальная табуляция перевод строки | возврат каретки <графический символ> : : = <цифра>|<прописная буква> <специальный знак>|<особый знак> <цифра> : : = 0|1|2|3|4|5|6|7|8|9 <прописная буква> : : = А|Б|В|Г|Д|Е|Ж|З|И|Й|К|Л|М|Н|О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ы|Ь|Э|Ю|Я|D|F|G|I|J|L|N|Q|R|S|U|V|W|Y|Z. <специальный знак> : : = _ (пробел)|!|»|%|(|)|*|+|,|-|.|/ (дробная черта)|:|=|[|]|/ (обратная дробная черта)|- (подчеркивание)|¬ (логическое НЕ) <особый знак> : : = # (номер)|& (коммерческое И)|’ (апостроф)|< (меньше)|> (больше)|@ (коммерческое ЭТ)|¤ (знак денежной единицы) 2.2. Графическое изображение символа кода ДКОИ и КОИ-7 может быть изменено с помощью регистра в абзаце графического текста (см. п. 4.4.5). Для удобства чтения текстов ЯГТИ допускаются символы ПС (перевод строки) и ВК (возврат каретки) после разделителей элементов графического изображения, абзацев и фрагментов. 3. ЭЛЕМЕНТАРНЫЕ КОНСТРУКЦИИ ЯЗЫКА3.1. К элементарным конструкциям, которые образуются из основных символов, относятся числа, координаты, идентификаторы и строки. 3.2. Числа - конструкции языка, определяющие размещение на поле документа графических и текстовых элементов, а также служащие целям кодирования элементов языка. <число> : : = <целое> <дробь>|<целое> <дробь> <целое> : : = <целое без знака>|+ <целое без знака>|- <целое без знака > <целое без знака> : : = <цифра>|<целое без знака> <цифра> <дробь> : : = . <целое без знака> 3.3. Координаты - конструкции языка, определяющие декартовы координаты расположения графических элементов на поле документа. Система координат правосторонняя. <координаты> : : = <координата Х>|<координата Y>|<координата Х> <координата Y> <координата Х> : : = Х<число> <координата Y> : : = Y<число> Символы X и Y являются буквами латинского алфавита. При перечислении элементов повторяющиеся значения координат X или Y внутри абзацев разрешается опускать. Первая координата в абзаце всегда содержит X и Y. 3.4. Идентификатор - набор буквенно-цифровых символов, используемых для обозначения некоторых элементов языка (параметров). Число символов в идентификаторе не должно превышать шести. <идентификатор> : : = <буква>|<идентификатор> <буква>|<идентификатор> <цифра> 3.5. Строка - конструкция языка, определяющая последовательность символов языка. <строка> : : = <простая строка>|<расширенная строка> <простая строка>: : = <терм>|<простая строка> <терм> <терм> : : = <буква>|<цифра>|<специальный знак> <расширенная строка> : : = # <цифра> <простая строка> 4. СТРУКТУРА ТЕКСТОВ ЯЗЫКА4.1. Описание объекта в ЯГТИ может иметь трехуровневую структуру: лист (3-й уровень) раздел (2-й уровень) абзац (1-й уровень). 4.2. Лист представляет собой законченное описание части проектируемого объекта (или объекта в целом), выполняемое на отдельном листе бумаги (лист конструкторской документации, лист электрической схемы, рисунок слоя многослойной печатной платы, лист чертежа машиностроительной детали и т.д.). <лист> : : = <начало листа> <паспорт листа> <список разделов> <конец листа> <начало листа> : : = ¬ (логическое НЕ) <конец листа> : := ¬ (логическое НЕ) Паспорт - конструкция языка, используемая для разделения графической информации и динамического изменения параметров этой информации. <паспорт> : : = <паспорт листа> <паспорт абзаца> <паспорт листа> : : = <список параметров> <конец паспорта листа> <паспорт абзаца> : : = <список параметров> <конец паспорта абзаца> <список параметров> : : = <параметр> <список параметров> <параметр> <конец паспорта листа> : : = ¤ < конец паспорта абзаца > : : = ; <параметр> : : = <идентификатор> <<значение параметра>> <значение параметра> : : = <число><строка> При отсутствии в паспортах каких-либо параметров их значения принимаются по умолчанию (см. п. 5). Значения параметров, заданные в списке параметров паспорта абзаца, распространяются на все последующие абзацы листа до тех пор, пока в некотором абзаце не будут присвоены новые значения всем или некоторым параметрам. После этого будут действующими новые значения параметров. Значения параметров паспорта листа распространяются только на абзацы внутри листа. Паспорт листа задает имя листа, маркировку машинного носителя, габариты листа, комментарий и единицы измерения координат. Идентификаторы и значения параметров листа приведены в табл. 1.
Примечание. Содержание параметра Е определяется в соответствии с системой СИ. 4.3. В ЯГТИ имеется возможность организации фрагментов в пределах листа, что облегчает манипулирование логически связанными объектами. Фрагментация образуется посредством нумерации разделов, представляющих собой некоторый объем графической информации и задающих логически связанную часть изображения (сегмент). Для нумерации разделов введен параметр «Номер раздела», который можно интерпретировать как имя фрагмента. <список разделов> : : = <раздел> <список разделов> <раздел> <раздел> : : = <абзац> <раздел><абзац> Раздел - это совокупность абзацев с одинаковым номером раздела. Количество абзацев, входящих в раздел, произвольное. Раздел имеет единственный параметр - номер раздела H<N>, где N - целое десятичное число. Раздел не имеет собственного паспорта, и номер раздела входит в список параметров паспорта абзаца. 4.4. Абзац представляет собой описание части раздела и задает описание информации по графическим элементам.* В ЯГТИ установлены пять типов отображаемых графических элементов: линия, дуга, заполняемый контур, графический элемент (маркер), графический текст. * Паспорт абзаца может содержать комментарий аналогично паспорту листа. <абзац> : : = <абзац линий>|<абзац дуг>|<абзац графического текста>|<абзац ГЭ>|<абзац заполняемого контура> <конец абзаца> : : = ¤ 4.4.1. Линия задается последовательностью опорных точек, определяющей траекторию движения исполнительного механизма графического устройства. Метод интерполяции опорных точек, ширина и тип линии задаются в списке параметров паспорта абзаца линий. Дуга представляет собой часть окружности, для которой определены начало, конец, центр окружности дуги и направление обхода. Окружность представляет собой частный случай дуги. Заполняемый контур представляет собой замкнутую последовательность опорных точек, соединяемых линией в порядке их следования без самопересечения, и заполняемую произвольными элементами (например, штриховкой). Код заполнения контура задается в паспорте абзаца заполняемого контура. Графический элемент (маркер) представляет собой графическую фигуру (или группу фигур), используемую для идентификации какой-либо позиции, либо для вывода в определенную позицию часто используемых изображений. Форма графического элемента (ГЭ) описана в библиотеке графических элементов (БГЭ), вызов из которой возможен либо по имени элемента в БГЭ, либо по номеру элемента в таблице графических элементов (ТГЭ). Размещение ГЭ на поле изображения задается координатами его опорной точки, которая определяется при формировании ГЭ. Код элемента (его имя в БГЭ или номер в ТГЭ) задается в паспорте абзаца ГЭ. Пример таблицы графических элементов приведен в приложении 1. Графический текст представляет собой последовательность символов языка (за исключением особых знаков) и предназначен для выполнения на устройствах графического вывода. 4.4.2. Абзац линий <абзац линий> : : = <паспорт абзаца> <список линий> <конец абзаца> <список линий> : : = <линия>|<список линий>*<линия> <линия> : : = <координаты>, < координаты >|<координаты >, <линия> В параметрах паспорта абзаца линии задается номер раздела, тип абзаца, ширина линии или ее код в таблице графических элементов, способ начертания линии, метод интерполяции и цвет линии (номер пера). Идентификаторы и значения параметров паспорта абзаца приведены в табл. 2.
Пример описания линий: Н<01> Т<Л> Э<101> С<С> И<0>; X0Y205, X100Y205, Y235, X150Y300 * X50Y70, Y110, X150Y200 ¤ В разделе номер 1 описаны две линии с кодом по ТГЭ 101 (ширина линии 0,8 мм), способ начертания сплошной, метод интерполяции линейный. Координаты опорных точек: 1-я линия - X1=0 Y1=205, X2=100 Y2=205, X3=100 Y3=235, Х4=150 Y4=300 2-я линия - Х1=50 Y1=70, X2=50 Y2=110, X3=150 Y3=200 4.4.3. Абзац дуг <абзац дуг> : : = <паспорт абзаца> <список дуг> <конец абзаца> <список дуг> : : = <дуга>|<список дуг> * <дуга> <дуга> : : = <начальная точка дуги>, <центр окружности дуги>, <конечная точка дуги> <начальная точка дуги> : : = <координата Х> <координата Y> <центр окружности дуги> : : = <координаты> <конечная точка дуги> : : = <координаты> Идентификаторы и значения параметров паспорта абзаца дуг приведены в табл. 3.
Пример описания дуг: Н<21> Т<Д> Э<104> С<С> Ж<Ч>; X40Y30, X20Y25, X30Y5 ¤ Н<22> Э<102>; X10Y0, Х20, X30Y0 * X5Y15, X10, X5 ¤ В разделе номер 21 описана дуга с кодом линии по ТГЭ 104 (ширина линии 0,3 мм), способ начертания сплошной, направление обхода по часовой стрелке. В разделе с номером 22 описаны две дуги (кодом линии по ТГЭ 102 (ширина линии 0,15 мм). Остальные параметры сохранили свое значение. 4.4.4. Абзац ГЭ <абзац ГЭ> : : = <паспорт абзаца> <список размещений ГЭ> <конец абзаца> <список размещений ГЭ> : : = <размещение одного ГЭ>|<список размещений ГЭ> * <размещение одного ГЭ> <размещение одного ГЭ> : : = <координаты> Идентификаторы и значения параметров паспорта абзаца ГЭ приведены в табл. 4.
Коды элементов от 1 до 6 зарезервированы для набора хорошо различимых маркеров. 001 - . (точка) 002 - + (плюс) 003 -* (звездочка) 004 - ○ (кружок) 005 - ´ (диагональный крест) 006 - ◊ (ромбик) ПРИМЕР ОПИСАНИЯ ГЭ: Н<10> Т<Э> Э<105>; X30Y20 * Х10Y15 * Х30Y-10 ¤ Э<Я14> ○<90>; Х10Y7 ¤ В разделе номер 10 описана группа элементов с номером элемента по ТГЭ-105, а также библиотечный элемент Я14, повернутый на 90° против часовой стрелки. 4.4.5. Абзац графического текста <абзац графического текста> : : = <паспорт абзаца> <список строк графического текста> <конец абзаца> <список строк графического текста> : : = <строка графического текста>|<список строк графического текста>, <строка графического текста> <строка графического текста> : : = <координаты> * <строка> Координаты текста определяют расположение характерной точки первого символа строки. Для выполнения может быть задан любой символ языка, за исключением символов #, ’, &, ¤, ¬ Для расширения набора символов в графическом тексте вводится понятие регистра. Символ # указывает на специальный регистр, цифра в следующем байте указывает код регистра. Окончание информации, задаваемой в специальном регистре, отмечается символом #, после которого идет код другого регистра. Если, например, в качестве кода регистра указан 0, последующая информация идет с начертанием в соответствии с основным регистром. Начертание символов в основном регистре 0 выполняется в соответствии с ГОСТ 2.004-79. Идентификаторы и значения параметров паспорта абзаца графического текста приведены в табл. 5.
Дополнительная информация о параметрах текста приведена в приложении 2. Пример описания текста: Н<05> Т<Г> Э<104>, ПС<П> НВ<90> В<З> З<П>; X25Y100 * КОНДЕНСАТОР_С=35_МКФ X70Y85 * СХЕМА # 1 <+> # 0 ¤ В разделе номер 5 описан графический текст; код линии по ТГЭ - 104 (ширина линии для выполнения символов - 0,3 мм) порядок следования текста - слева направо, вектор направления высоты - 90 градусов, размер символов - 3 мм, изображение прямое. Вычерчивается текст: «КОНДЕНСАТОР С=35 МКФ» с координатами базовой точки первого символа Х=25 Y=100 и текст: |„СХЕМА ΩΣΔ”| с координатами базовой точки первого символа X=70Y=85 4.4.6. Абзац заполняемого контура <абзац заполняемого контура> : : = <паспорт абзаца> <список заполняемых контуров> <конец абзаца> <список заполняемых контуров> : : = <заполняемый контур>|<список заполняемых контуров> * <заполняемый контур> <заполняемый контур> : : = <координаты 1-й точки>, <линия>, <координаты 1-й точки> Толщина линии контура или ее код по ТГЭ и код заполнения контура задается в списке параметров паспорта абзаца. Идентификаторы и значения параметров паспорта абзаца заполняемого контура приведены в табл. 6.
Для выделения зон внутри контура, запрещенных для заполнения, рекомендуется использовать дополнительные параметры для указания существования такой зоны и ее границ. Код заполнения контура принимает следующие значения: П - пусто, т.е. контур без заполнения, С - сплошное заполнение (сплошная заливка), Фхххххх и Шхххх - различные виды фигур, заполняющих контур. Конкретные значения кодов заполнения определяются на этапе разработки трансляторов с ЯГТИ. При этом рекомендуется: для заполнения контура штриховкой после буквы Ш первыми двумя цифрами задавать угол штриховки относительно оси X в градусах, а последними двумя - шаг штриховки линий в десятых долях мм; после буквы Ф первыми двумя символами задавать шаг сетки для размещения фигур заполнения по осям X и Y соответственно в (мм). Пример описания заполняемых контуров: Н<12> Т<К> * Ш<0.5> С<С> Ц<К> КЗ<Ш4130> X0Y0, X10Y10, Y20, X0Y15, Y0 * X20Y0, Y10, X30Y0, Х0 ¤ В разделе номер 12 описаны два заполняемых контура, цвет линии контура - красный код заполнения - Ш4130 (штриховка под углом 41° с шагом 3 мм). 5. ПРИНЦИП УМОЛЧАНИЯПри отсутствии в списке параметров первого абзаца листа каких-либо параметров их значения принимаются по умолчанию. Рекомендуемые значения параметров по умолчанию приведены в табл. 7.
6. ПРАВИЛА ВВЕДЕНИЯ НОВЫХ ПАРАМЕТРОВ И РАСШИРЕНИЯ ЗНАЧЕНИЙ СУЩЕСТВУЮЩИХ ПАРАМЕТРОВВновь вводимый параметр, его идентификатор и значение могут вводиться пользователем при необходимости, диктуемой прикладными проблемно-ориентированными задачами. Транслятор графических данных ЯГТИ не должен реагировать на эти дополнительные идентификаторы. Таким образом, разработчик прикладных пакетов программ имеет возможность введения любых идентификаторов с параметрами в статусе содержимого паспорта абзаца или листа ЯГТИ. Идентификатор вновь вводимого параметра не может совпадать с идентификаторами параметров, уже используемых в паспортах абзацев и листов ЯГТИ. Значение параметра может повторять значение другого параметра. ПРИЛОЖЕНИЕ 1ПРИМЕР ТАБЛИЦЫ КОДОВ ГЭ
ПРИМЕР ОПИСАНИЯ ГЭ: ¬ ИЛ<КУЛ1> Е<ММ> А<100> В<100> КМ <КУЛАЧОК ПО ГОСТ 2.721-74> ¤ Т<Л> Ш<0.8>; Х10Y20, У10, Х20 ¤ Т<Д> Ж<Ч>; Х20Y10, Х10, Y20 ¤ ПРИЛОЖЕНИЕ 2ПАРАМЕТРЫ ТЕКСТАТекст имеет геометрические параметры: В - высота символов, НВ - вектор направления высоты символов, КР - коэффициент ширины символов, ПС - порядок следования символов, ШТ - расстояние между телами символов (литерами) /шаг текста/. Значение параметров В определяет номинальную высоту прописных букв. Вектор направления высоты символов НВ задает направление вычерчивания символов. Параметр КР определяет изменение отношения ширина/высота по отношению к номинальному значению этого отношения, заданному при проектировании шрифта. Для параметра ПС возможны 4 значения: П - вправо, Л - влево, В - вверх, Н - вниз Он определяет направление вычерчивания строки символов. При значении П строка выписывается вдоль базовой линии, направление которой составляет прямой угол по часовой стрелке с направлением вектора высоты символов НВ. При значении Л направление базовой линии составляет прямой угол против часовой стрелки с направлением вектора высоты символов. При значении В направление базовой линии совпадает с направлением вектора высоты символов, а при значении Н - противоположно направлению вектора высоты. При значении параметра порядка следования В и Н символы вычерчиваются таким образом, что центральные оси тел символов находятся на прямой линии, совпадающей с направлением, заданным вектором направления высоты символов НВ. Значение параметра ШТ определяет величину дополнительного промежутка между двумя соседними символами. Если значение этого параметра равно нулю, то литеры располагаются рядом друг с другом в соответствии с параметром ПС без интервала между ними. При положительном значении параметра ШТ будет введен дополнительный промежуток между символами, а при отрицательном значении возникнет наложение одной литеры на другую. Величина параметра ШТ задается в виде дробной части от номинального значения высоты символов для данного типа шрифта. Символы генерируются таким образом, что направление оси Y тела символа в собственной системе координат совпадает с вектором направления высоты символов НВ и размеры символа изменяются таким образом, чтобы при сохранении соотношения между высотой и шириной высота символов в собственной системе координат после пересчета совпадала бы с заданным значением высоты символов В. Высота символов и размер тела символов (литеры) определяются при конструировании шрифта и в известной мере взаимно независимы. При конструировании шрифта для текста необходимо произвести описание собственно символа и его тела, исходя из номинальной высоты текста 4 мм. При задании в ЯГТИ высоты, отличающейся от номинальной подсчитывают коэффициент увеличения (уменьшения) символа и на этот коэффициент все координатные данные, присутствующие в описании шрифта. В отличие от высоты коэффициент расширения символов используется для пересчета только координаты X, заданной в описании шрифта. Разработчик шрифта определяет форму представления символа в локальной двумерной системе координат. Шрифт может быть равномерным и пропорциональным. Для каждого символа в локальной системе координат определяются размеры тела символа, базовая линия шрифта, линии верхнего и нижнего обрезов и центральная линия (черт. 1). Локальная система координат для описания шрифта 1 - центральная линия; 2 - линия верхнего обреза; 3 - высота символа; 4 - базовая линия; 5 - тело символа; 6 - выносной элемент; 7 - линия нижнего обреза Для равномерных видов шрифта тела символов имеют одинаковую ширину для всех символов. Для пропорциональных видов шрифта тела символов могут быть различными у разных символов. Границы символа должны быть параллельны осям локальной системы координат. Базовая линия и линия верхнего и нижнего обрезов должны быть параллельны оси X локальной системы координат и располагаться в пределах, ограниченных вертикальными линиями тела символа. Центральная линия проходит параллельно оси Y и делит тело символа на две равные части. Высота символов в локальной системе координат определяется расстоянием между базовой линией и линией верхнего обреза. Ширина символа, которая может включать в себя и промежуток с какой-либо стороны фактического символа, определяется размером тела символа по горизонтали. Предполагается, что символ полностью располагается внутри своего тела, за исключением символов с выносными элементами, которые могут выходить за границы тела символов. В общем верхняя граница символов для шрифта должна совпадать или быть очень близка к линии верхнего обреза или верхней границы выносного элемента, а нижняя граница - к нижней границе выносного элемента. Однако, эти и другие детали оставляются полностью на усмотрение разработчика шрифта. Цель всех этих замечаний заключается в том, чтобы при горизонтальном размещении символов и касания соседних символов было обеспечено нормальное расстояние между ними, а при касании символов в вертикальном направлении исключалось наложение верхних и нижних выносных элементов (что соответствует типографскому термину «плотный набор»). Первый символ графической строки ЯГТИ помещается так, чтобы одна из точек П, Л, В, Н (см. черт. 1) в зависимости от параметра порядка следования ПС совпадала с начальной точкой текста, содержащейся в определении графической строки ЯГТИ, относительное размещение последующих символов определяется значением параметра ШТ (при горизонтальном размещении строки) или параметра В (при вертикальном размещении). На черт. 2 и 3 приведены примеры действия различных значений текстовых параметров. Влияние изменений отдельных атрибутов текста (измененные атрибуты подчеркнуты) Влияние комбинированных изменений атрибутов текста (подчеркнуты изменения по сравнению с первым примером на черт. 2) СОДЕРЖАНИЕ
|