Книга: Техтран - система программирования оборудования с ЧПУ
Название: Техтран - система программирования оборудования с ЧПУ Раздел: Рефераты по информатике Тип: книга | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УО «БОРИСОВСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ» Специальность Т 03 01 Технология, оборудование и автоматизация машиностроения ТЕХТРАН — СИСТЕМА ПРОГРАММИРОВАНИЯ ОБОРУБОВАНИЯ С ЧПУ Методические указания предмет: «Программирование обработки на станках с ЧПУ»
Разработал: Е.К. Дыкуша Утверждено на заседании цикловой комиссии Председатель цикловой комиссии В.М. Адаменко 2004 ПРЕДИСЛОВИЕВнедрение оборудования с числовым программным управлением (ЧПУ), средств вычислительной техники, а также создаваемых на их основе гибких производственных систем (ГПС) определяется современным развитием промышленного производства, которое характеризуют частая смена продукции, короткий жизненный цикл изделий, а также возрастающие сложность и точность обработки. В этих условиях одной из важнейших задач технологической подготовки производства является разработка управляющих программ (УП) для станков с ЧПУ. Разработка УП − сложный и трудоемкий процесс, во многом определяющий эффективность использования оборудования с ЧПУ и качество обрабатываемых деталей, поэтому сейчас большое внимание обращается на разработку и совершенствование систем и методов автоматизированной подготовки УП. Особое внимание проблеме автоматизированной подготовки управляющих программ уделяется в составе комплексной системы САПР−АСТПП−ГПС. Управляющая программа при этом является результатом сквозного цикла обработки информации от чертежа детали до программы ее изготовления на станках с ЧПУ. Система автоматизированного программирования (САП) оборудования с ЧПУ − составная часть такой комплексной системы. Несмотря на большое число работ в области автоматизации программирования оборудования с ЧПУ в нашей стране и за рубежом, они не получили полного и систематизированного изложения в литературе. Предлагаемая книга содержит изложение основных вопросов, связанных с автоматизированной подготовкой УП для станков с ЧПУ на базе САП Техтран. В гл. 1 дана классификация САП по различным критериям, позволяющая получить представление о направлениях развития автоматизации программирования, и приведена функциональная структура САП Техтран. Гл. 2 посвящена описанию проблемно-ориентированного языка программирования оборудования с ЧПУ Техтран. Описание приведено в полном объеме и может быть использовано на практике при разработке УП. Гл. 3 посвящена операторам постпроцессора, задающим необходимые технологические данные для выполнения УП на станке. В гл. 4 изложены особенности технологической подготовки производства в условиях использования САП, приведены примеры различных видов обработки и описание способов контроля УП. В качестве основной задачи авторы ставили перед собой полное и систематизированное описание языка программирования оборудования с ЧПУ Техтран, изложенного в гл. 2. Гл. 1, 3, 4, включены для более глубокого восприятия основного материала. Все замечания и пожелания авторы просят направлять по адресу: 191065, Ленин-град, ул. Дзержинского, 10, ЛО издательства «Машиностроение».
Глава 1 АВТОМАТИЗАЦИЯ ПРОГРАММИРОВАНИЯ ОБОРУДОВАНИЯ С ЧПУ
1.1 Системы автоматизации программированияРоль систем автоматизации программирования в процессе подготовки управляющих программ для станков с ЧПУ можно сейчас сравнить с той ролью, которую сыграли компиляторы языков высокого уровня в процессе разработки программ на ЭВМ. Появление САП является логическим следствием развития вычислительной техники, программирования, станкостроения, а также обусловлено возрастающей сложностью деталей, и, следовательно, высокой трудоемкостью «ручного» программирования их обработки. За более чем двадцатилетний период, прошедший с тех пор, как начали эксплуатироваться САП, сменилось четыре поколения ЭВМ, появились микропроцессоры, разработаны и широко используются многооперационные станки типа «обрабатывающий центр» и роботы. Это естественным образом повлияло на методы подготовки управляющих программ и эволюцию развития САП. Программирование оборудования с ЧПУ появилось совсем недавно. Результатом программирования является управляющая программа, которая представляет собой совокупность команд на языке программирования, соответствующая заданному алгоритму функционирования станка по обработке конкретной заготовки (см. ГОСТ 20523−80). В книге будет идти речь об автоматизированном программировании, хотя последние достижения вычислительной техники и станкостроения в некоторой степени стирают грань между «ручным» и автоматизированным программированием. Рассмотрим программирование как составную часть процесса технологической подготовки производства. «Ручное» программирование в традиционном понимании состоит в следующем. По заданному операционному технологическому процессу технолог рассчитывает траекторию движения инструмента, назначает необходимые технологические команды в соответствии с режимом обработки (например, подачу, охлаждение, смену инструмента и т. д.) и преобразует эти данные во внутреннее представление системы ЧПУ [4, 15, 17]. При автоматизированном программировании в идеальном случае все задачи ручного программирования должны решаться на ЭВМ, включая расчет режимов обработки. САП являются эффективным и надежным инструментом для их решения. САП − это комплекс технических, программных, языковых, информационных средств, осуществляющих преобразование данных чертежа детали в коды устройства управления оборудованием с ЧПУ. Как правило, САП организованы по классической структуре: входной язык, процессор, промежуточный язык, постпроцессор. В зависимости от реализации возможны отклонения от этой структуры. Входной язык САП − проблемно-ориентированный язык, предназначенный для описания исходных данных о детали и технологическом процессе ее обработки на оборудовании с ЧПУ. Процессор САП − программное изделие, предназначенное для решения общих геометрических и технологических задач, а также задач управления процессом обработки данных на ЭВМ, реализация которого возможна в виде специализированного программного устройства. Постпроцессор САП − программное изделие, предназначенное для адаптации управляющей программы к конкретному оборудованию с ЧПУ, реализация которого возможна в виде специализированного программного устройства. Промежуточный язык процессор − постпроцессор − внутренний проблемно-ориентированный язык системы САП, служащий для представления данных, передаваемых от процессора к постпроцессору. (Все определения даны по ГОСТ 23501.603−84). В литературе промежуточный язык процессор-постпроцессор встречается под названием CLDATA (Cutter Location Data − данные о перемещении инструмента). Структура САП приведена на рис. 1.1. Обычно в состав САП входит библиотека постпроцессоров, каждый из которой предназначен для определенной модели системы ЧПУ или модели станка. Разрабатываются также универсальные постпроцессоры, способные формировать УП для различных систем ЧПУ. Графические постпроцессоры предназначены для вывода траектории движения Инструмента на графические отображающие устройства. Рассмотрим классификацию САП по различным критериям (рис. 1.2) [9]. Первый критерий классификации САП − по числу управляемых координат − определяет
(Франция). В трех координатных САП в отличие от 2,5-координатных поверхность обрабатываемой детали может быть произвольной поверхностью второго порядка, что позволяет расширить область их применения. Типичными представителями таких САП являются MODAPT (Италия), PROMO (Франция). Многокоординатные САП в дополнение к обычным трех координатным перемещениям обеспечивают угловые перемещения вокруг одной из координатных осей. Реализация угловых перемещений производится постпроцессором и зависит от того, каким органом станка производится поворот − шпиндельной головкой или столом. Наиболее значительной из семейства многокоординатных САП является разработанная в 1961 г. в США система APT (Automatically Programmed Tools). Следующий критерий классификации − по уровню принятия решений − определяет уровень автоматизации решаемых в САП технологических задач. К технологическим задачам относятся реализация типовых технологических циклов точения, сверления, нарезания резьбы, фрезерования кругового и прямоугольного (внутреннего и наружного), фрезерования пазов и карманов, разбиения припуска на проходы, расчет режимов резания и др. В настоящее время трудно назвать САП, в которой не решалась бы одна из названных задач. Поэтому основной принцип классификации по этому критерию
В зависимости от области применения САП можно разделить на универсальные и специализированные. Универсальные САП − это системы широкого назначения, с развитым входным языком, позволяющим разрабатывать программы, имеющие сложную логическую структуру, описывать обработку произвольных контуров, производить математические вычисления, а также создавать типовые технологические процедуры для различных классов оборудования. APT является типичной САП этого класса. Она представляет собой обобщенную универсальную САП, предназначенную для программирования обработки сложных поверхностей, с управлением по трем и пяти осям [5]. APT является прототипом семейства САП, разработанных в различных странах, в том числе в СССР. В частности, за основу языка Техтран было взято подмножество языка APT. APT позволяет программировать обработку поверхностей типа конусов, цилиндров, поверхностей второго порядка (эллипсоид, эллиптический конус, гиперболический параболоид и др.), линейчатых и каркасных поверхностей, сфер. APT является многофункциональной системой, но основными областями ее эффективного применения являются авиа-, судо- и автомобилестроение, где наиболее часто встречается обработка сложных поверхностей (например, формообразующих элементов штампов, гребных винтов, элементов конструкций самолета и др.). Несмотря на высокую производительность и большие возможности, система APT не нашла широкого применения вследствие сложности в изучении и эксплуатации [5]. Специализированные САП классифицируются по видам обработки (токарной, фрезерной, сверлильно-расточной и др.). Последние годы развитие САП идет по пути создания специализированных систем с высоким уровнем автоматизации решения технологических задач. В ФРГ разработаны семейства САП ЕХАРТ, состоящие из технологически ориентированных подсистем, в основу которых были положены концепции APT [18]. Типичным представителем специализированных САП является ЕХАРТ (ФРГ). ЕХАРТ состоит из трех подсистем. ЕХАРТ-М01 (Basic - ЕХАРТ) - универсальная САП − ядро системы; ЕХАРТ-М02 − специализированная, технологически ориентированная САП для токарных станков, ЕХАРТ-МОЗ − для сверлильных, фрезерных и станков типа обрабатывающий центр. Программирование в ЕХАРТ-М02 состоит из следующих этапов: описания геометрии детали, описания технологических переходов, описания процесса обработки. При этом автоматизировано решение следующих задач: разбиение на проходы, расчет режимов резания, построение траектории движения инструмента при черновой и чистовой обработке, контроль на наличие столкновений. В ЕХАРТ-МОЗ автоматизированы задачи выбора инструмента, расчета ходов инструмента при позиционной и контурной обработке, расчет режимов резания, контроль на наличие столкновений. Система ЕХАРТ является наиболее типичным представителем семейства специализированных САП. Среди множества других САП можно назвать ориентированную на токарную обработку TAUPROG (Венгрия) и отечественные ЕСПС-ТАУ для сверлильных, токарных и фрезерных работ и Техтран-Т для токарных работ, в которых также решены перечисленные технологические задачи. В настоящее время выпускаются системы ЧПУ типа CNC со встроенными САП − программаторы. Программаторы − это специализированные САП, предназначенные для оперативной подготовки УП непосредственно на станке. Это позволяет сократить простои станка за счет совмещения обработки детали с разработкой, отладкой и редактированием другой УП. Наибольший интерес представляют системы BOSCH-PEG (ФРГ) и FANUC-3T (Япония) − для токарных станков, FANUC 6M-MODEL Е и MAZATROL-M (Япония) − для обрабатывающих центров [14, 16]. По форме представления исходных данных можно выделить САП со свободной структурой представления, с табличной формой и представлением в форме «меню». Большинство известных САП имеют свободную форму представления исходных данных. Программа на языке таких САП представляет собой множество операторов, состоящих из элементов языка (служебных слов, идентификаторов, специальных символов и т. д.) и строящихся по заданному синтаксису (например, входные языки многих из названных САП соответствуют синтаксису языка APT). В дальнейшем для удобства будем отождествлять названия САП и ее входного языка. При табличной форме представления технолог заполняет специальные бланки в форме таблиц. Каждая графа таблицы соответствует определенному виду исходных данных, например, геометрии детали, технологическим командам, управляющей информации и т. д. Имеются также САП, сочетающие обе формы представления (САДКО, АППР-АРМ). Представления в форме «меню» − это свойство интерактивных САП. С экрана дисплея в определенном формате запрашивается требуемая информация. Технологу остается только заполнить соответствующие графы, высвечиваемые на экране дисплея, или ответить на задаваемые системой вопросы. Наиболее перспективными являются САП, сочетающие представление исходных данных со свободной структурой и в форме «меню», например, в системе ТС-АРТ [20]. Последний критерий классификации САП − по режиму работы. В настоящее время существуют два основных режима работы САП: пакетный и интерактивный, которые находятся в прямой зависимости от типа ЭВМ и операционной системы, для которых реализована данная САП. Первые САП работали в пакетном режиме. Программа, подготовленная технологом на входном языке САП и записанная на магнитный носитель, перфоленту или перфокарты, полностью вводилась в ЭВМ и преобразовывалась в УП для станка. В случае ошибок в исходной программе эта процедура повторялась. Разработка интерактивных САП является следствием развития вычислительной техники − появлением алфавитных и графических дисплеев, а также мини- и микро-ЭВМ. Исходные данные в интерактивных САП задаются в форме «меню» или в режиме «вопрос − ответ». Существуют интерактивные САП и со свободной формой представления (например, FAPT, где последовательно после ввода каждого оператора можно получить на экране дисплеев или печатающем устройстве результат его выполнения). Значительное преимущество таких САП перед пакетными состоит в сокращении сроков обучения технологов-программистов и технологов-операторов методам программирования за счет диалога и возможности повторения расчета УП с любой исходной позиции. Недостатком их является отсутствие универсальности в подходе к разработке УП вследствие того, что диалог ограничивает разработчика в выборе средств для решения задачи. Интерактивные САП эффективны при эксплуатации в производствах с невысокой сложностью и высоким уровнем унификации изготавливаемых деталей или их элементов. Представленная классификация САП является попыткой систематизировать накопленный опыт и направления развития данной области инженерной деятельности за последние годы и носит условный характер. В последующие годы параллельно с развитием диалоговых, оперативных систем подготовки УП непосредственно у станка дальнейшее развитие получат системы программирования, работающие в комплексных системах автоматизированного проектирования и производства (CAD/CAM − Computer Aided. Design/Computer Aided Manufacturing). Комплексная система состоит из ряда подсистем, с помощью которых производится формирование цифровой модели детали, вычерчивание рабочих чертежей и эскизов на графопостроителях, проектирование технологического процесса и формирование управляющей программы [19]. Объединение этих процессов в единый непрерывный процесс переработки информации и управления технологическими процессами и оборудованием дает ряд преимуществ перед описанными ранее системами и методами. Преимущества эти следующие: сокращение затрат и времени на подготовку УП; повышение качества УП; повышение эффективности использования оборудования с ЧПУ за счет быстрой загрузки программ в память системы ЧПУ и отсутствие брака в УП; высвобождение технологов-программистов, занимающихся разработкой УП; сокращение сроков подготовки производства новых изделий. В частности, имеется опыт создания комплексной системы проектирования технологических процессов и подготовки УП для номенклатуры деталей тел вращения, функционирующей в условиях гибкой производственной системы «Группроцесс-Техтран». Подробное описание перечисленных САП приведено в работах [1, 3, 5, 7, 10, 12, 13, 14, 16, 20, 22, 23]. 1.2 Структура и функциональные возможности САП Техтран В основу организации САП Техтран был положен традиционный подход. Система состоит из входного языка, процессора, промежуточного языка и постпроцессоров. При разработке системы преследовалось несколько целей. Во-первых, САП должна быть простой в обслуживании, т. е. вмешательство оператора должно быть сведено к минимуму. Во-вторых, САП должна быть мобильной (это позволяет минимизировать затраты при адаптации САП для различных классов ЭВМ и операционных систем). В-третьих, САП должна допускать расширение выполняемых функций. Необходимую гибкость САП Техтран приобрела благодаря модульной структуре. Для уменьшения объема оперативной памяти процессор и постпроцессор выполняют обработку данных за несколько проходов: процессор построен по трехпроходной схеме, постпроцессоры − по двухпроходной схеме. Модульная структура дает возможность вводить новые функции без существенной корректировки ранее написанных программ. Кроме того, такая структура позволяет организовать перекрытия и уменьшить тем самым объем оперативной памяти. Требование мобильности программного обеспечения предопределило выбор языка программирования. Поскольку ко времени начала разработки (1975 г.) и вплоть
Компилятор вводит программу на Техтране, предварительно записанную на диск, и выполняет ее синтаксический контроль. На этапе компиляции проверяется, правильно ли заданы имена и служебные слова в программе, соблюдены ли требуемые форматы. Если часть текста оформлена в виде отдельного файла, то компилятор вставляет этот текст в исходную программу. Макросредства дают программисту возможность описывать типовые элементы в параметрическом виде и хранить их на магнитном диске. В процессе макрогенерации компилятор выполняет вставку тела макроса в исходную программу и заменяет формальные параметры фактическими значениями. Если обнаружена ошибка, то компилятор отмечает ее место в строке и печатает диагностическое сообщение. Затем он переходит к следующему оператору, чтобы за один прогон выявить максимальное число ошибок. Файл синтаксических таблиц содержит описание форматов операторов Техтрана и служит для управления работой компилятора. Тексты сообщений об ошибках также хранятся на магнитном диске. Компилятор формирует на диске рабочую программу интерпретатора, в которой арифметические выражения преобразованы в польскую инверсную запись, геометрические определения преобразованы во внутренний формат и заданные в них модификаторы упорядочены. В процессе макрогенерации используется рабочий файл на диске. Интерпретатор производит расчет канонических форм геометрических объектов. Другой функцией интерпретатора является вычисление значений арифметических и логических выражений и стандартных функций. Если в программе были использованы операторы цикла и операторы передачи управления, то интерпретатор выполняет эти операторы и тем самым приводит исходную программу к линейной. Рабочая программа интерполятора, формируемая интерпретатором, будет содержать только таблицу геометрических объектов, операторы движения и операторы постпроцессора. Интерпретатор может выполнять трассировку, т. е. распечатывать значения переменных и переходов в программе. Если в исходной программе были определены контуры, то их описания во внутреннем формате выводятся в специальный файл. При обнаружении ошибки в программе интерпретатор печатает диагностическое сообщение и продолжает обработку до заданного числа ошибок. Интерполятор обрабатывает операторы движения и рассчитывает эквидистантную траекторию с учетом диаметра рабочего инструмента. Если интерполятор обнаруживает ошибку, то он выдает диагностическое сообщение и продолжает обработку от следующего оператора поточечного движения до заданного числа ошибок. В процессе вычислений интерполятор использует рабочую программу и файл контуров, подготовленные интерпретатором, а также файл сообщений об ошибках. Операторы постпроцессора не обрабатываются и передаются в выходной файл. Выходные данные интерполятора формируются в стандартном формате CLDATA. Процессор рассчитан на обработку группы исходных программ за один проход. Каждый модуль процессора за один вызов обрабатывает всю группу. Программы, в которых на стадии компиляции или интерпретации обнаружены ошибки, удаляются из соответствующего выходного файла и не поступают на дальнейшую обработку. Программы с ошибками в операторах движения выводятся в файл CLDATA, но место ошибки отмечается специальной записью. Постпроцессоры выполняют следующие функции: чтение файла CLDATA, подготовленного процессором, и синтаксический контроль операторов постпроцессора; перевод геометрических данных в систему координат станка; проверку длины перемещений, допустимости подач и оборотов; расчет кодов подач, кодов оборотов шпинделя, коррекции; учет динамических характеристик оборудования; формирование и вывод на печать и перфоленту управляющей программы и другие функции. - САП Техтран оснащена рядом постпроцессоров, каждый из которых формирует управляющие программы для определенной системы управления. Настройка постпроцессора на конкретную модель станка производится с помощью паспорта. Структура постпроцессора приведена на рис К 4.
рабочий файл 2 содержит коды сообщений об ошибках; он обрабатывается программой РРЗ, которая печатает таблицу сообщений об ошибках и таблицу недопустимых для данного станка операторов; рабочий файл 3 содержит таблицу инструментов; он обрабатывается программой РР5, которая печатает таблицу инструмента и таблицу времени работы каждого инструмента; рабочий файл 4 содержит управляющую программу во внутреннем формате (во внутреннем коде ЭВМ); он обрабатывается программой РР4, которая выполняет перекодировку в код системы ЧПУ и перфорирует ее. Пользователям САП Техтран предоставлена возможность заполнять паспорта для имеющегося у них оборудования с ЧПУ при условии, что в составе библиотеки постпроцессоров имеется модуль для требуемой системы управления. Для работы с паспортами предназначена подсистема Вопросник, состоящая из четырех программ. Структура Вопросника показана на рис. 1.5. Паспорт состоит из двух частей − характеристик оборудования и таблиц. Каждая часть паспорта обрабатывается двумя программами: одна предназначена для записи паспорта (TQ08 и TQ10), другая − для его распечатки (TQ07 и TQ09). Вопросник читает исходный текст паспорта и проверяет форматы и значения данных. После перекодировки паспорт в двоичном формате записывается в файл паспортов, который используется при прогоне постпроцессоров. Графический контроль в САП Техтран решен с помощью постпроцессоров, которые либо формируют перфоленту для графопостроителей, работающих в автономном режиме, либо непосредственно выводят на экран или бумагу траекторию перемещения центра режущего инструмента. Технологический процессор является расширением геометрического процессора Техтран в части программирования технологических переходов, а входной язык технологического процессора − расширением базового языка, который дополняется технологическими операторами. Выделение геометрического процессора в автономный модуль позволило определить пути такого расширения системы Техтран, при котором ядро остается неизменным. Расширение функций системы осуществляется включением технологических процессоров специального назначения. Положение технологического процессора в системе Техтран показано на рис. 1.6. Процессор формирует файл CLDATA1 , в котором содержатся геометрические и технологические данные. Технологические операторы обрабатываются процессором так же, как и операторы постпроцессора: процессор заменяет служебные слова их внутренними кодами и вычисляет арифметические выражения. Расширенный файл CLDATA1 обрабатывается технологическим процессором, на выходе которого формируется файл CLDATA2, содержащий траекторию движения инструмента и операторы постпроцессора. Принцип расширения функций системы Техтран реализован в системе Техтран-Т − технологическом процессоре для программирования токарных переходов.
1 Идентификация постпроцессоров осуществляется с помощью двухсимвольного кода постпроцессора ее. Например, постпроцессор для системы управления Н-33 называется Ml, а для системы Н-22− L1. Глава 2 ВХОДНОЙ ЯЗЫК ТЕХТРАН 2.1 Основные понятияПрограмма. Структура программы. Программа на Техтране представляет собой последовательность операторов и комментариев, описывающих алгоритм обработки деталей. Программа имеет следующую структуру: ДЕТАЛЬ литерал текст программы КОНЕЦ Литерал (см. п. 2.2) задает имя программы. В программу могут быть вставлены фрагменты исходного текста и тексты макросов. Программе на входном языке Техтран может соответствовать одна или несколько управляющих программ. Исходный текст программы состоит из последовательности строк. Максимальное число символов в строке равно 72. В одной строке может быть записан один или несколько операторов, между которыми должен стоять символ «точка с запятой» (;). Все символы текущего оператора должны размещаться до 72-й позиции. В противном случае часть оператора может быть перенесена на следующую строку. Для этого, после прерванной части оператора (до 72-й позиции) необходимо записать символ продолжения «процент» (%). Для совместимости с предыдущими версиями языка разрешается в качестве" символа продолжения использовать знак «коммерческое И» с пробелом (&_). Число строк продолжения не ограничивается. Текст оператора или комментария может начинаться с любой позиции. Число пробелов между операндами не ограничено. В качестве разделителя операндов вместо запятой можно использовать пробел (_). ДЛЯ удобства чтения программ и ускорения их отладки рекомендуется располагать операторы и комментарии таким образом, чтобы текст программы являлся документом, по которому можно понять структуру и назначение программы. Желательно, чтобы имена меток и переменных, используемых в программе, отражали их назначение. Для выделения функциональных частей программы рекомендуется использовать строки, состоящие из пробелов, знаков комментария, а также отступов. Символические имена. Для идентификации в программе переменных величин (геометрических, вещественных, логических, меток операторов, имен макросов) используют символические имена Символическое имя − это последовательность букв и цифр, начинающаяся с буквы. Длина его не должна превышать восьми символов. Пробелы внутри имени не разрешены. Символическое имя должно быть уникальным в программе и описывать один объект или класс объектов, например: АБ − верно КР15 − верно К152АБ − верно К 1 − неверно К123455678910 − неверно 123К22− неверно Операторы, метки, комментарии. Оператор − основная функциональная единица языка. Он предназначен как для описания операций, которые предстоит выполнить, так и для установления свойств данных, идентифицируемых с помощью символических имен. Любой оператор может быть помечен меткой, для того чтобы на него можно было сослаться в других операторах данной программы. Метка является символическим именем. Она должна предшествовать помечаемому оператору и может находиться либо в одной строке с. оператором, либо на отдельной строке. После метки всегда должен быть служебный символ «двоеточие» (:). Метка используется в операторах НАМЕТКУ. Для пояснения действий, выполняемых в программе, используют комментарии. Комментарий не обрабатывается процессором, а только выводится на печать при распечатке исходного текста. Комментарий может находиться как в одной строке с операторами исходной программы, так и занимать целую строку. Для выделения текста комментария нужно поставить перед ним служебный символ «номер» (#). 2.2 Структура языкаАлфавит языка. Для записи программы используют следующие символы: буквы русского алфавита А−Я; буквы латинского алфавита А−Z; цифры: 0, 1,2, 3, 4, 5, 6, 7, 8, 9; символы: «_» − пробел; «,» − запятая; «• » − точка; « = » − равно; « + » − плюс; « − » − минус; «*» − звездочка; «/» − наклонная черта; «&» − коммерческое «И»; «;» − точка с запятой; «(» − левая скобка; «)» − правая скобка; «:» − двоеточие; «'» − апостроф; «=#=» − номер; «%» − процент. Синтаксис языка. В связи с тем, что в описании языка не приводится формального описания синтаксиса Техтрана, этот раздел содержит основные правила и обозначения, используемые для описания форматов его операторов. Каждый оператор входного языка, формируется из операндов в соответствии с синтаксическими правилами языка. В описании языка приведена структура каждого оператора (формат). При описании формата каждого оператора использованы следующие правила и условные обозначения: прописные буквы используют для обозначения служебных слов; строчные буквы используют для обозначения опорных элементов, числовых значений параметров или арифметических выражений; необязательные служебные слова заключают в квадратные скобки [ ]; возможные варианты записи модификаторов, являющиеся альтернативными, заключают в фигурные скобки { } и записывают в столбец или разделяют символом « | »; параметры, назначающие линейные и угловые размеры, задаются целыми и десятичными долями миллиметров и градусов. Элементы языка. В языке разницы между целыми и вещественными числами не существует. Число представляется в виде последовательности цифр, среди которых может встретиться точка или буква Е. Точка отделяет целую часть числа от дробной, а буква Е − мантиссу числа от его порядка. Перед самим числом и перед его порядком может стоять знак «минус» (.−). Пробелы и другие символы внутри числа недопустимы, например: 1.23 − верно; 2.15Е5 − верно; −ЗЕ−6 − верно; 3 Е2 − неверно; Е4 − неверно. Служебные слова являются зарезервированными словами и составляют словарь языка Техтран. Они используются для написания операторов программы и состоят только из букв русского алфавита. Служебные слова делятся на главные, вспомогательные и модификаторы. Главное слово определяет тип оператора. Вспомогательное слово и модификатор служат для однозначного задания оператора. Служебное слово не может использоваться в качестве имени, переменной или метки. Список служебных слов приведен в Приложениях 1−4. Переменная в Техтране − это символическое изображение величины, которая может принимать различные значения. Основными характеристиками переменной являются ее имя и тип. В группу служебных символов входят следующие символы: «_», « + », «−», «*», «/», « = », «;», «.», «,», «:», «'», «#», «&», «( )», «%». Употребление служебных символов в программе зависит от контекста. Описание их функций производится по мере надобности в соответствующих разделах. Литералом является заключенный в апострофы произвольный текст, не содержащий символа ф. В литералах могут быть использованы любые символы (например, латинские буквы, !, > , < и т. п.). При необходимости использования апострофа его нужно записать два раза подряд, например, 'АВСДЕ" РОН' определяет литерал, состоящий из символов АВСДЕ' РОН. В основном литералы используются для задания текстовых параметров макросов, но кроме этого имеются и некоторые другие применения, например, в операторах ДЕТАЛЬ, СТАНОК и др. 2.3 Типы данных. Возможности языка программирования в значительной степени определяются набором допустимых типов данных. Входной язык Техтран допускает применение следующих типов данных: вещественный, логический, вектор, прямая, точка, окружность, плоскость, матрица, контур. Тип каждой используемой в программе переменной фиксирован, и на протяжении всей программы каждая переменная обозначает данное только одного типа. Тип переменной описывается явно строкой вида: тип имя 1, имя 2, имя 3, … где тип есть: ВЕЩ, ЛОГИЧ, ТОЧКА, ПРЯМАЯ, ВЕКТОР, ОКРУЖИ, ПЛОСК, МАТР, КОНТУР; имя 1, имя 2, имя 3, ...− имена переменных. Переопределение типа переменной в программе не разрешено. Если в программе встречается переменная, не описанная ранее, то имя переменной, начинающееся с символов ТЧ, считается неявно описанным, как точка; имя, начинающееся с ПР,− как прямая, с КР,− как окружность. Все остальные имена переменных определяются неявным образом, как вещественные числа. Можно совмещать описание типа переменной и оператор присваивания, например, оператор ТОЧКА Т1 =0, 1, 2 равносилен двум операторам: ТОЧКА Tl; T1 =0, 1, 2. 2.4 МассивыДанные одного типа могут объединяться в массивы. Массивы могут быть одномерными и двумерными. Каждый используемый в программе массив должен быть описан с указанием типа, числа индексов (размерности массива) и максимального значения каждого из индексов. Минимальным значением индекса является единица. Оператор ВЕЩ А (16) описывает одномерный массив А, состоящий из 16 вещественных чисел. Оператор ВЕЩ В (5, 6) описывает двумерный массив, состоящий из 30 вещественных чисел. Для использования элементов массива в вычислениях следует указать имя массива, а за ним в круглых скобках − значение индексов. Индекс не может быть опущен. В частности, одно имя не представляет первый элемент массива. В качестве индекса может использоваться любое арифметическое выражение. Число индексов и их значения должны соответствовать описанию массива. Число элементов в массиве не ограничено. Например, если значение переменной И = 2, то запись В (3, И + 3) именует элемент массива В (3,5), а запись вида В (3) также, как и запись В (1,6 + И), вызывает ошибку трансляции. В качестве элементов массива не могут использоваться объекты типов МАТР и КОНТУР. 2.5 ВыраженияАрифметические выражения. Вместо чисел в программе могут использоваться арифметические выражения. Простейшими арифметическими выражениями могут быть число; вещественная переменная; элемент вещественного массива; обращение к стандартной функции; выражение, заключенное в скобки. Более сложные арифметические выражения могут быть образованы из простейших при помощи следующих знаков арифметических операций: « + » − сложение; « −> − вычитание; «*» − умножение; «/» − деление; «**» − возведение в степень. Операции выполняются слева направо в соответствии с приведенными ниже приоритетами операций: вычисление функций− 1; возведение в степень − 2; умножение и деление − 3; сложение и вычитание − 4. Приоритет используется для того, чтобы определить, какая из двух последовательных операций выполняется первой. Для изменения порядка вычислений следует применять круглые скобки. П р и м е ч а н и е . При возведении в степень следует помнить, что отрицательное число допускается возводить только в целую степень.
(a -\-b)sinf (6*А**2 + 2*В* (С**3- Д**3)) / ((АА**2 + В**2) * СИН (Ф)). Логические выражения. Язык Техтран допускает использование логических выражений в условных операторах (ЕСЛИ), операторах цикла (ПОВТОР), операторах логического присваивания. Значением логического выражения является ЛОЖЬ или ИСТИНА. Простейшее логическое выражение состоит из логического первичного. Логическим первичным может быть: логическая константа ЛОЖЬ и ИСТИНА; логическая переменная; элемент логического массива; оператор корректности; отношение; логическое выражение, заключенное в скобки: Отношения образуются путем объединения двух арифметических выражений с помощью операций отношения. Шесть операций отношения изображаются следующим образом: БЛШ или> − больше (> ) БРВ или > = − больше или равно (≥) МНШ или < − меньше (<) МРВ или < = − меньше или равно (≤) РВН или = − равно ( = ) НРВ или < > или < > − не равно (≠) Например, выражение (К+1) РВН5 принимает значение ИСТИНА при К=4, в остальных случаях принимает значение ложь. Логические выражения образуются из логических первичных путем использования логических операций. В языке Техтран существуют три логические операции: НЕ − отрицание; ЛИ − логическое умножение; ИЛИ − логическое сложение. Вычисление логического выражения производится слева направо в соответствии с приведенными ниже приоритетами операций: вычисление функций−1; возведение в степень − 2; умножение и деление − 3; сложение и вычитание − 4; операции отношения БЛШ, БРВ, МНШ, МРВ, РВН, НРВ − 5; НЕ − 6; ЛИ − 7; ИЛИ − 8. Для изменения порядка вычислений можно использовать круглые скобки. Логическое выражение, к которому относится операция НЕ, должно заключаться в скобки, если оно содержит не менее двух операндов. 2.6 Стандартные функцииЯзык Техтран содержит ряд стандартных математических функций, часто используемых при вычислениях. Вызов математической функции производится указанием в арифметическом выражении имени функции и ее аргументов (параметров). Результат, вычисленный функцией, замещает в выражении обращение к ней. Стандартные функции в языке могут быть вещественного (табл. 2.1) и логического (табл. 2.2) типов. Таблица 2.1
Таблица 2.2 Пример использования логической функции КОРР: ЛОГИЧ А = КОРР ТОЧКА ТЧ1 (ПЕРЕСЕЧ, ПР1, КР1, УБ) ЕСЛИ (НЕ А) ТЧ1=ТЧ0. Переменной ТЧ1 присваивается значение одной из точек пересечения окружности и прямой, если они пересекаются; в противном случае переменной ТЧ1 присваивается значение переменной ТЧО. 2.7 Оператор присваиванияДля присваивания значения переменным используется оператор присваивания. Он состоит из левой части, знака равенства и правой части. В результате выполнения оператора присваивания значение правой части присваивается переменной, находящейся в левой части (тип левой части должен допускать такое присваивание). Если в левой части стоит переменная вещественного (логического) типа, то и в правой части должно стоять арифметическое (логическое) выражение. Например: оператор Х = Х+1 − правильный оператор присваивания, в результате выполнения которого значение переменной X будет увеличено на 1. 2.8 Система координат
На рис. 2.3, а − г приведены примеры перехода от системы координат детали к системе координат станка для токарных (рис. 2.3, а, б) и фрезерных (рис. 2.3, в, г) станков.
2.9 Геометрические определенияГеометрическое определение является оператором присваивания, в левой части которого находится символическое имя определяемого геометрического объекта, а в правой − один из вариантов задания этого объекта в строгом соответствии с форматом, приведенным в данном разделе. В общем виде геометрическое определение имеет следующий формат: тип имя = список параметров где тип − служебное слово, определяющее тип геометрического объекта; имя − символическое имя определяемого геометрического объекта. Параметрами, определяющими геометрический объект, являются имена опорных элементов или вложенные геометрические определения, модификаторы, числа или заменяющие их арифметические выражения (опорным элементом называют ранее определенный геометрический объект). Служебными словами, определяющими тип геометрического объекта, являются ТОЧКА, ПРЯМАЯ, ОКРУЖИ, ВЕКТОР, МАТР, ПЛОСК. Служебное слово, определяющее тип геометрического объекта, может отсутствовать, если тип объекта был указан ранее явно (отдельной строкой) или если используется символическое имя, определяющее тип геометрического объекта неявно.
2.9.1 Внутреннее представление геометрических объектов Для внутреннего представления геометрических объектов в процессоре системы Техтран используются канонические формы (табл. 2.3). Таблица 2.3 Тип объекта Внутреннее представление Точка х, у, z − координаты точки Прямая cos α, sin α, р − коэффициенты нормального управления прямой (х cosα + y sinα − р = 0) Окружность х, у, r − координаты центра окружности и ее радиус Вектор Δх, Δу, Δг − проекции вектора на координатные оси Плоскость cosα, cosβ, cosγ, p − коэффициенты нормального уравнения плоскости (х cos a + y cosβ + z cosγ − p = 0)
Внутреннее представление геометрических объектов применяют при выводе на печать результатов работы процессора в случае использования отладочных операторов СЛЕД и ПЧТ1 (см. п. 2.12.2). Для доступа к элементам канонической формы точек, прямых, окружностей и
X1 = КООРД (1.КР1) У1 = КООРД (2, КР1) Х2 = КООРД (1,КР2) У2 = КООРД (2, КР2) Искомая прямая имеет вид ПРА = Х1, У1, Х2, У2.
2.9.2 Определение точкиВ определениях точки используют следующие группы модификаторов: Модификаторы выбора точки из двух возможных: ХБ − выбирается точка с большей координатой х, УБ − с большей координатой у, ХМ − с меньшей координатой х и УМ − с меньшей координатой у. Модификаторы направления отсчета угла: ПОЧС − задается отсчет угла по часовой стрелке; ПРЧС − задается отсчет угла против часовой стрелки. Модификаторы, указывающие координату точки, заданную в геометрическом определении: ХКООРД − координата х; УКООРД − координата у. Точка, определенная прямоугольными координатами: имя = координата х, координата у, координата z имя. = координата х, координата у Например (рис. 2.5): ТЧА=-5, 15, 10.7 ТОЧКА Т3 = 24, -8,2 Точка, определенная пересечением двух прямых: имя = [ПЕРЕСЕЧ,] прямая1 , прямая2 Например (рис. 2.6): ТЧ2 = ПР1, ПР2 Точка, определенная пересечением прямой и окружности: имя = [ПЕРЕСЕЧ,] прямая, окружность, (ХБ|УБ|ХМ|УМ) Например (рис. 2.7): ТОЧКА Т23= [ПЕРЕСЕЧ,] ПР7, КР2, УБ П р и м е ч а н и е . Случай касания прямой и окружности рассматривается как пересечение этих двух объектов.
Точка, определенная пересечением двух окружностей: имя = [ПЕРЕСЕЧ,] окружность 1, окружность 2 {ХБ|УБ|ХМ|УМ} Например (рис. 2.8): ТЧ4 = КР1, КР2, УМ Точка, определенная пересечением окружности и ее радиуса, проведенного под заданным углом к оси х: ÏÐ×Ñ ÏÎ×Ñ
Например (рис. 2.9): ТЧ5 = КР1, ПРЧС, 40.5 Точка, являющаяся центром ранее определенной окружности: имя = [ЦЕНТР], окружность Например (рис. 2.10): ТЧ6 = КР17 Точка, находящаяся на окружности на известном расстоянии от другой точки этой же окружности: ÏÎ×Ñ
Например (рис. 2.11): ТЧ8 = КР1, ТЧА, ПОЧС, 18.6 П р и м е ч а н и е . Расстояние линейное, измеряется по дуге окружности. Точка, находящаяся на прямой и имеющая заданную координату х или у: имя = прямая, {ХКООРД|УКООРД), число Например (рис. 2.12): ТЧ9 = ПР1, ХКООРД, 80 Точка, находящаяся на прямой, на определенном расстоянии от другой точки этой же прямой: имя = прямая, точка, расстояние, {ХБ|УБ|ХМ|УМ} Например (рис. 2.13): ТЧ10 = ПР8, ТЧА, 23, ХМ
Точка, заданная приращениями координат известной точки: имя = точка, ПЕРЕНОС, приращение х, приращение у Например (рис. 2.14): ТЧ11=ТЧА, ПЕРЕНОС, 100, −20 Точка, находящаяся на определенном расстоянии от известной точки под углом к оси х: ÏÎ×Ñ
Например (рис. 2.15): ТЧ12 = ТЧ7, ПОЧС, 30.5, 118 Точка, координаты которой получены преобразованием координат известной точки в соответствии с указанной матрицей: имя = точка, матрица Например: ТЧ16 = ТЧА, МК6 Точка, определенная ранее заданной точкой: имя = точка Например: ТЧ17 = ТЧ13А Точка, для которой ранее определенный вектор является радиус-вектором: имя = вектор Например (рис. 2.16): ТЧ18 = ВЕКТ1
2.9.3 Задание координаты z в геометрических определениях точек (оператор ПЛЗ) Оператор ПЛЗ предназначен для задания координаты z тех точек, в геометрических определениях которых нет явно заданной третьей координаты: Формат: ÷èñëî
ÎÒÌÅÍ где имя − имя плоскости, определенной ранее; ОТМЕН − служебное слово, обозначающее отмену действия оператора ПЛЗ. Действие оператора состоит в следующем. Если в операторах определения точки координата z не задана явно, то процессор вычислит ее исходя из того условия, что определяемая точка должна лежать в плоскости, заданной оператором ПЛЗ. Если оператор ПЛЗ не был задан или был выполнен оператор ПЛЗ ОТМЕН, то все координаты z точек, не заданные явно, принимают нулевое значение. Действие оператора ПЛЗ распространяется на все точки, определенные после него, до использования другого оператора ПЛЗ или оператора ПЛЗ ОТМЕН.
ТЧ1=ПР5, ПР4 ПЛОСК П1, ПЛ14 ПЛ14=150 П1 = -30 ПЛЗ ПЛ14 ТЧ2 = ПР5, ПР4 ПЛЗ П1 ТЧ8 = ПР5, ПР4 ПЛЗ ОТМЕН ТЧ100 = ПР5, ПР4 Координаты z точек ТЧ2 и ТЧ8 равны соответственно 150 и −30, так как они заданы оператором ПЛЗ с указанием плоскости, в которой лежит каждая из этих точек. Координата z точки ТЧ1 по умолчанию равна нулю; координата точки ТЧ100 также равна нулю, так как перед ее геометрическим определением задан оператор ПЛЗ ОТМЕН, отменяющий действие последнего оператора ПЛЗ.
2.9.4 Определение прямойВ определениях прямой используют следующие группы модификаторов: 1. Модификаторы, выбирающие одну прямую из двух, касающихся окружности: ХМ − выбирается прямая, точка касания которой имеет меньшую координату по х; ХБ− большую координату по х; УМ − меньшую координату по у и УБ − большую координату по у. 2. Модификаторы, указывающие, с какой стороны определяемая прямая касается окружности: СПРАВА − точка касания прямой находится справа от центра окружности, если смотреть в направлении от первого геометрического объекта правой части определения ко второму; СЛЕВА − прямая касается окружности слева (при тех же условиях рассмотрения геометрических объектов). 3. Модификаторы, указывающие положение прямой относительно другой: ПАРЛЕЛ − параллельно; ПЕРП − перпендикулярно. Прямая, проходящая через две точки, заданные своими координатами: имя = координата x1 , координата y1 , координата х2 , координата у2 Например (рис. 2.18): ПР20=-15, 10, 35.6, 70 Прямая, проходящая через две точки: имя = точка 1, точка 2. Например (рис. 2.19): ПР21=ТЧА, ТЧБ Прямая, проходящая через точку и касающаяся окружности: ПР23 = СЛЕВА, КР1, СПРАВА, КРЗ, Прямая, проходящая через точку под определенным углом к оси х: имя = точка, угол Например (рис. 2.22): ПР23 = ТЧ5,− 15 Прямая, проходящая через точку под определенным углом к заданной прямой: ПР25 = ПРА, ТЧВ, 44.5 Прямая, проходящая через точку и перпендикулярная к другой прямой: имя = точка, ПЕРП, прямая Например (рис. 2.24): ПР26 = ТЧ6, ПЕРП, ПР1 Прямая, проходящая через точку и параллельная другой прямой: имя = точка, ПАРЛЕЛ, прямая Например (рис. 2.25): ПР27 = ТЧ1, ПАРЛЕЛ, ПР14 Прямая, проходящая параллельно другой прямой на заданном расстоянии от нее: имя = прямая, расстояние, |ХБ|УБ|ХМ|УМ) Например (рис. 2.26): ПР28 = ПРА, 43,6, УМ Прямая, касающаяся окружности и составляющая с осью х заданный угол: имя = [КАС], окружность, {ХБ|УБ|ХМ|УМ}, угол Например (рис. 2.27): ПР290 = КАС, КР1, УМ,− 15
Прямая, проходящая через точку параллельно вектору: имя = точка, вектор Например (рис. 2.28): ПР310 = ТЧ1, ВЕК2
Прямая, полученная преобразованием заданной прямой в соответствии с матрицей: имя = прямая, матрица
ПР32 = ПР10, МАТР1 Прямая, совпадающая с прямой, определенной ранее: имя = прямая Например: ПР13 = ПР376 Прямая, параллельная одной из осей координат и находящаяся на заданном расстоянии от нее:
Например (рис. 2.29): ПР36 = УПАР, -13,6 2.9.5 Определение окружностиВ определениях окружности используют следующие группы модификаторов: 1. Модификаторы БОЛШ и МЕНШ, служащие для выбора из двух окружностей одной − с большим или меньшим радиусом соответственно. 2. Модификаторы, указывающие положение определяемой окружности относительно другой, являющейся опорным элементом: ВНЕ − окружность находится вне заданной окружности; ВНУТРИ − окружность находится внутри заданной окружности. 3. Модификаторы, указывающие положение окружности относительно прямой: ХМ − центр окружности находится слева от прямой, ХБ − справа от прямой, УБ.− выше прямой и УМ − ниже прямой. 4. Те же модификаторы ХМ, ХБ, УБ, УМ, но служащие для выбора из двух окружностей одной по соответствующей координате ее центра. Модификаторы 2 и 3-й групп относятся к следующим непосредственно за ними опорным элементам геометрического определения. Применение модификаторов ВНУТРИ и ВНЕ имеет свои особенности, отмеченные ниже. Окружность, совпадающая с окружностью, определенной ранее:
Например: КР4 = КР100 Окружность, определенная координатами центра и радиусом: имя = координата х, координата у, радиус Например (рис. 2.30): КР4= − 13.6, 20, 5 Окружность, определенная радиусом и точкой, являющейся ее центром: имя = точка, радиус Например (рис. 2.31): КР4 = ТЧЗ, 15 Окружность, определенная точкой, являющейся ее центром, и касающаяся заданной прямой: имя = точка, [КАС], прямая Например (рис. 2.32): КР34 = ТЧ6, КАС, ПР8
Окружность, определенная точкой, являющейся ее центром, и проходящая через другую заданную точку: имя = точка1 , точка2 Например (рис. 2.33): КР4 = ТЧА, ТЧ6 Окружность, проходящая через три точки: имя = точка 1, точка 2, точка 3 Например (рис. 2.34): КР55 = ТЧ1, ТЧ6, ТЧ2 Окружность, определенная точкой, являющейся ее центром, и касающаяся другой окружности: ÌÅÍØ
Например (рис. 2.35): КР6 = ТЧ1, МЕНШ, КРА1 КР6А = ТЧ1, БОЛШ, КРА1 Окружность заданного радиуса, касающаяся двух пересекающихся прямых: ÕÁ ÕÁ
ÕÌ ÕÌ ÓÌ ÓÌНапример (рис. 2.36):
КР4 = ПР1, УМ, ТЧ5, 20 Окружность заданного радиуса, касающаяся прямой и окружности:
ÕÌ ÓÌНапример (рис. 2.38): КР1=УБ, ПР1, ХМ, ВНЕ, КРО, 10 КР2 = УБ, ПР1, ХМ, ВНУТРИ, КРО, 10 КРЗ = УБ, ПР1, ХБ, ВНУТРИ, КРО, 10 КР4 = УБ, ПР1, ХБ, ВНЕ, КРО, 10 КР5 = УМ, ПР1, ХМ, ВНЕ, КРО, 10 КР6 = УМ, ПР1, ХМ, ВНУТРИ, КРО, 10 КР7 = УМ, ПР1, ХБ, ВНУТРИ, КРО, 10 КР8 = УМ, ПР1, ХБ, ВНЕ, КРО, 10 Окружность заданного радиуса, касающаяся двух других окружностей:
ÂÍÓÒÐÈ Например (рис. 2.39): КР1=УБ, ВНЕ, КРА, ВНЕ, КРБ, 15 КР2 = УБ, ВНЕ, КРА, ВНУТРИ, КРБ, 15 КРЗ = УМ, ВНЕ, КРА, ВНУТРИ, КРБ, 15 КР4 = УМ, ВНЕ, КРА, ВНЕ, КРБ, 15 КР5 = УМ, ВНУТРИ, КРА, ВНЕ, КРБ, 15 КР6 = УБ, ВНУТРИ, КРА, ВНЕ, КРБ, 15 КР7 = УБ, ВНУТРИ, КРА, ВНУТРИ, КРБ, 15 КР8 = УМ, ВНУТРИ, КРА, ВНУТРИ, КРБ, 15
П р и м е ч а н и е . В тех случаях, когда определяемая окружность не может быть построена внутри опорных (слишком велик ее диаметр или опорные окружности не пересекаются), модификатор ВНУТРИ указывает положение опорных окружностей относительно определяемой окружности. Например (рис. 2.40, а, б): КР9 = УМ, ВНУТРИ, КР31, ВНУТРИ, КР40, 150 КР10 = УБ, ВНУТРИ, КР50, ВНЕ, КР17, 60 КР11=УМ, ВНУТРИ, КР50, ВНУТРИ, КР17, 60 Окружность, касающаяся трех прямых: ÕÁ ÕÁ ÕÁ
ÓÌ ÓÌ ÓÌ
Например (рис. 2.41): КР5 = УМ, ПР1, УБ, ПР2, ХБ, ПРЗ КР55 = УМ, ПР1, УБ, ПР2, ХМ, ПРЗ Окружность заданного радиуса, проходящая через две точки: ÕÁ
ÓÌНапример (рис. 2.42): КР1=ХБ, ТЧ1, ТЧ2, 50 КР2 = ХМ, ТЧ1, ТЧ2, 30 Окружность заданного радиуса, проходящая через точку и касающаяся другой окружности: имя = точка,
Например (рис. 2.43): КРЗ = ТЧ1, УБ, ВНУТРИ, КРА, 25 КР5 = ТЧ1, УМ, ВНУТРИ, КРА, 25 КР6 = ТЧ9, УМ, ВНУТРИ, КРБ, 14 КР9 = ТЧ9, УМ, ВНЕ, КРБ, 14 П р и м е ч ан и е . В том случае, когда точка, указанная в определении, находится внутри опорной окружности, использование модификатора ВНЕ не имеет смысла. Если опорная точка находится вне опорной окружности, возможно как внутреннее, так и внешнее касание. Модификатор ВНУТРИ в этом случае указывает положение опорной окружности относительно определяемой (окружность КР6 в приведенном примере). Окружность, концентричная заданной окружности: ÌÅÍØ
Например (рис. 2.44): КР7 = ПАРЛЕЛ, КР1, БОЛШ, 34 Окружность, полученная преобразованием заданной окружности в соответствии с матрицей: имя = окружность, матрица Например: КР7 = КР2, МАТР6
2.9.6 Определение вектораВ определениях вектора используют модификаторы, указывающие направление вектора: ХБ − вектор направлен в сторону возрастания координаты х; ХМ − в сторону уменьшения координаты х; УБ − в сторону возрастания координаты у и УМ − вектор направлен в сторону уменьшения координаты у.
ВЕКТ1=50, 37, 40 ВЕКТЗ = 50, 37 Вектор, определенный своими начальной и конечной точками: имя = точка 1, точка 2 Например (рис. 2.46):
ВЕКТ4 = ВЕКР1, ПЛЮС, ВКТ2 Вектор, равный разности двух векторов: имя = вектор 1, МИНУС, вектор 2 Например (рис. 2.48): ВЕКТ5 = ВЕКР1, МИНУС, ВКТ2 Вектор, равный произведению заданного вектора и числа: имя = число, вектор Например (рис. 2.49): ВЕКТ7 = 3, ВЕ2 Вектор, равный произведению двух векторов: имя = вектор 1 , УМНОЖ, вектор2 Например: ВЕКТОР В6 = ВЕКТ, М2
Вектор, являющийся радиус-вектором заданной точки: имя = точка Например (рис. 2.50): ВЕКТ8 = ТЧ1 Вектор, заданный координатами своих начальной и конечной точек: имя = координата х 1, координата у 1, координата х 2, координата у 2 Например (рис. 2.51): ВЕКТ В1 = -13, 4, 26, 28 Вектор, параллельный заданной прямой: имя = прямая, {ХБ|УБ|ХМ|УМ} П р и м е ч а н и е . Длина вектора равна единице, начало его находится в начале координат, например (рис. 2.52): ВЕКТ7 = ПРА, ХМ
2.9.7 Определение матрицыМатрица определяет способ преобразования координат. Это преобразование может быть параллельным переносом исходной системы координат, ее поворотом, симметрией или комбинацией этих преобразований. Любое преобразование координатной системы может быть описано с помощью системы трех уравнений: a 11x 1+a 12y 1+a 13z 1+a 14=x 2 a 21x 1+a 22y 1+a 23z 1+a 24=y 2 a 31x 1+a 32y 1+a 33z 1+a 34=z 2 Всегда можно определить значения таких коэффициентов a11 , a12 , . . . , a34 , что при подстановке в систему уравнений значений координат произвольной точки x1 , y1 , z1 в локальной системе координат будут получены координаты этой точки x2 , у 2, z2 в абсолютной (исходной) системе координат. Коэффициенты данной системы уравнений используются для представления матрицы преобразования в канонической форме и выводятся на печать в следующей последовательности: a 11a 12a 13 a 21a 22a 23 a 31a 32a 33 a 14a 24a 34 Первые три элемента каждого столбца определяют направление осей локальной системы координат по отношению к исходной (абсолютной) системе координат: a11 , a21 , a31 − единичный вектор оси х 1; а 12, а 22, а 32 − единичный вектор оси у 1;а 13, а 23, а 33 − единичный вектор оси z1 . Четвертая строка определяет положение начала координат локальной системы: Ом, «24, O34 − координаты х, у, z начала локальной системы координат в исходной (абсолютной) системе. Результатом матричного преобразования является геометрический объект, который имеет в локальной системе координат, полученной преобразованием исходной системы, параметры исходного геометрического объекта. При использовании комбинированных матричных преобразований, задаваемых произведением матриц, следует помнить, что матричное умножение не коммутативно, т. е. конечный результат зависит от последовательности элементарных преобразований. На рис. 2.53, а −в представлено последовательное преобразование исходной системы координат (о) матрицами поворота (б) и переноса (в), а на рис. 2.53, г−е дано преобразование системы матрицами переноса (д) и поворота (е). В геометрических определениях матрицы используются следующие модификаторы: ПОВХУ − определяет поворот осей х н у вокруг оси г; ПОВУЗ − поворот осей у к г вокруг оси * и ПОВЗХ − поворот осей z a x вокруг оси у (направление отсчета углов поворота − в соответствии с рисунком). Матрица, определяющая координатную систему, полученную поворотом на заданный угол исходной системы координат вокруг одной из ее осей: имя ={ПОВХУ|ПОВУЗ|ПОВЗХ}, угол Например (рис. 2.54): МАТР МТ2 = ПОВЗХ, 30.5 Матрица, определяющая координатную систему, полученную параллельным переносом исходной системы координат: имя = ПЕРЕНОС, координата х, координата у, [координата z ] Например (рис. 2.55): МАТРЗ = ПЕРЕНОС, 10, 15, 20
Матрица, определяющая координатную систему, полученную параллельным переносом исходной системы координат и последующим поворотом на заданный угол вокруг одной из координатных осей:
|
Содержание строки |
Данные, выводимые на печать |
|
ЕСЛИ (логическое) |
ЛОЖЬ или ИСТИНА |
|
НАМЕТКУ |
ПЕРЕХОД НА МЕТКУ |
|
ПОВТОР |
Минимальное и максимальное значения индекса |
|
КОНЦИКЛ |
ПЕРЕХОД НА МЕТКУ |
|
ВЫЗОВ |
ВХОД В МАКРО |
|
КОНЕЦ МАКРОСА |
ВЫХОД ИЗ МАКРО |
|
Арифметическое выражение |
Результат |
|
Геометрическое определение |
Имя параметра геометрического объекта Параметры геометрических объектов, образующих контур; координаты опорных точек табулированной кривой |
|
КОНТУР |
||
П р и м е ч а н и е . Перед результатом на печать выводится номер соответствующей строки. |
||
В режиме «1» печатаются результаты всех операторов, приведенных в табл. 2.5. В режиме «О» печатаются только результаты управляющих операторов. Вся информация выводится в процессе работы второй фазы процессора в формате, приведенном в табл. 2.5.
Оператор ПЧТ1 используется для печати значения некоторой переменной или параметров геометрического объекта (точки, окружности, вектора или прямой) и имеет следующий формат: ПЧТ1 имя 1, имя 2, имя 3,… где имя1 , имя2 , . . . − имена геометрических объектов или переменных.
Аналогично оператору СЛЕД информация выводится в процессе работы второй фазы процессора в следующем формате:/ номер строки имя 1 =внутреннее представление номер строки имя2 = внутреннее представление
Оператор СИНОНИМ служит для замены стандартных служебных слов синонимами и имеет следующий формат:
СИНОНИМ (служебное слово1 , синоним1 ), %
[(служебное слово2 , синоним2 ), %
… (служебное словоn , синонимn )]
В качестве синонимов могут употребляться только имена. Оператор должен быть задан до первого использования синонима. Например, задав оператор СИНОНИМ (ВПЕРЕД, В), (ПЕРЕСЕЧ, П), можно вместо оператора ВПЕРЕД ПР1 ДО 2 ПЕРЕСЕЧ КР1 употреблять в программе оператор В ПР1 ДО 2 П КР1.
Оператор вставки текста «*» позволяет вставить в программу текст, хранящийся во внешней памяти, и имеет следующий формат:
* имя * литерал где имя − имя модуля из библиотеки программ; литерал − спецификация файла. Например:
*PROG1
*’SY: PROG2'
Конкретный формат оператора зависит от типа используемой ЭВМ.
2.13 Макросы
В языке Техтран можно использовать в программе отдельно подготовленные части исходного текста − макросы. В макросе разрешается применять любые операторы языка, но вместо конкретных значений переменных могут использоваться параметры.
Подключение макроса к программе осуществляется при помощи специального оператора ВЫЗОВ. При этом в тексте программы на месте оператора ВЫЗОВ появляется текст вызываемого макроса (тело), в котором формальные параметры, заданные в теле макроса, заменяются фактическими значениями, указанными в операторе ВЫЗОВ. Допускается определение макросов внутри программы. В этом случае вызов макроса должен производиться из этой же программы.
Структура макросов. Макрос состоит из заголовка, тела и ограничителя. Заголовок макроса представляет собой специальный оператор МАКРО. Тело макроса − произвольная последовательность операторов языка Техтран (кроме операторов ДЕТАЛЬ, КОНЕЦ и ПЕЧТЕКСТ), в которых могут быть использованы параметры макроса. Тело макроса может содержать другие макросы и обращения к ним. Ограничителем макроса является служебное слово КОНМАК.
Параметры макроса. Параметры могут быть операторными и текстовыми. Параметры записываются в произвольном порядке и отделяются друг от друга запятыми.
Операторный параметр представляет собой оператор языка Техтран, заключенный в скобки. При вызове макроса операторные параметры выполняются непосредственно перед телом макроса. В качестве операторных параметров нельзя использовать операторы ДЕТАЛЬ, КОНЕЦ, МАКРО, КОНМАК, ВЫЗОВ, КОНТУР, КОНКОН, ПОВТОР, КОНЦИКЛ, ЕСЛИ. Операторы присваивания, не содержащие разделителей в правой части, в скобки можно не заключать.
Текстовой параметр в отличие от операторного имеет свое имя и значение. Значением текстового параметра является произвольная последовательность символов, не содержащая символа «#». Имя текстового параметра − произвольное имя, допустимое в языке Техтран.
В теле макроса имени текстового параметра должен предшествовать символ макроподстановки «&». При вызове макроса вместо символа «&» и имени параметра в текст будет подставлено его значение. Не разрешается параметризовать часть имени, числа или литерала.
Например, вместо оператора КР& КР = 0,0,40 после текстовой подстановки значения параметра '10' получим: КР 10 = 0,0,40, что недопустимо.
Правильной является запись: &КР = 0,0,40. При значении параметра 'КРЮ' оператор будет преобразован к виду: КР10 = 0,0,40.
Значения текстовых параметров макроса задаются в операторах ВЫЗОВ или МАКРО.
Заголовок макроса. Заголовок представляет собой специальный оператор МАКРО и имеет следующий формат:
МАКРО имя [(список значений) ]
где имя − имя макроса (любое имя, допущенное в языке Техтран); список значений − список
значений текстовых параметров, установленных по умолчанию.
Если значения по умолчанию не задаются, скобки должны быть опущены. Значение по умолчанию используют в том случае, если в операторе ВЫЗОВ значение данного текстового параметра не задано. Элементы списка значений отделяются друг от друга запятыми.
Значение по умолчанию задается одним из следующих способов:
1) 'имя' = литерал (например, 'КР'='КР10' − параметр с именем КР принимает по умолчанию значение, равное КРЮ);
2) 'имя1 ' = & имя2 (например, 'КР1' = &КР2− параметр с именем КР1 принимает то же значение, что и параметр КР2; параметр КР2 должен быть определен ранее);
3) 'имя' = объединение литералов и текстовых параметров (например, если значение параметра КР по умолчанию определено следующим образом: 'КР' = = 'КР'&М6&АБ'10', то при значениях параметров Мб и АБ'04' и 'В' соответственно, параметр с именем КР примет значение КР04В10).
Примеры заголовков макросов: МАКРО МТК1
Значений по умолчанию нет.
МАКРО М2 ('ПГ = '1',' П2' = 'ПР'&П1,' ПЗ' = 'КР'&П1&П1)
По умолчанию: П1 = 1; П2 = ПР1; ПЗ = КРП
МАКРО МЗ (/ ПГ = 'Г,'П2'=='ПР'&П4&П4',ПЗ' = 'КР'&П4)
По умолчанию: П1 = 1; П2 = ПР значение П4 значение П4; ПЗ = КР значение П4.
Значение параметра П4 обязательно должно быть определено при вызове макроса. В противном случае возникнет ошибка. Если для параметра П4 нужно задать значение по умолчанию, то это следует сделать до присваивания значений П2 и ПЗ: МАКРО ПЗ ('ПГ = 'Г, 'П4' = '2', 'П2'='ПР'&П4&П4, % ‘ПЗ' = 'КР'&П4)
Вызов макроса.
Для выполнения макроподстановки, т. е. вставки в текст исходной программы на Техтране тела макроса и для замены формальных "параметров фактическими предназначен оператор ВЫЗОВ. Он имеет следующий формат: èìÿ
ВЫЗОВ [(список параметров) ]
ëèòåðàë
где имя − имя макроса, использованное в операторе МАКРО; литерал − спецификация файла, в котором находится текст макроса; список параметров − последовательность операторных параметров и значений текстовых параметров, разделенных запятыми. Если параметры в вызове отсутствуют, скобки должны быть опущены.
Имя макроса используется в том случае, когда макрос находится в макробиблиотеке или определяется в самой программе. Если макрос содержится в отдельном файле, следует использовать литерал − спецификацию этого файла. Формат спецификации файла зависит от типа ЭВМ и операционной системы, например:
ВЫЗОВ Ml
ВЫЗОВ 'SY: MACRO 1’
С помощью оператора «:» (двоеточие) можно задавать умолчание для имени макроса. Формат оператора следующий: : литерал1 , литерал2
где литерал 1 − строка символов, присоединяемая к имени макроса слева; литерал 2 − строка
символов, присоединяемая к имени макроса справа.
Например, оператор: 'DK1: [77, 300]', '. TEH' позволяет, задавая в программе вызов в формате ВЫЗОВ МАКРО1, передать операционной системе имя файла в виде 'DK1: [77, 300] MAKRO 1. ТЕН'.
Рассмотрим следующий оператор:
ВЫЗОВ Ml (A=l, (ВЕЩ Б = 2), В = 30.5, (ТЧ1 =0,0,0))
В нем заданы четыре операторных параметра. Без скобок можно записывать только параметры, присваивающие вещественные значения.
Если в операторе ВЫЗОВ определено значение текстового параметра, которому присвоено значение по умолчанию в заголовке макроса, то значение по умолчанию игнорируется, например: ДЕТАЛЬ 'МАКРО'
МАКРО Ml ('ПГ = 'Г, 'П2' = & Ш'0')
А = &П1+& П2
ТЧ1=А, В
КР1=ТЧ1, В + & П1
ПЧТ1 А, В, ТЧ1, КР1
КОНМАК
ВЫЗОВ Ml (/ П1/ = '2/ , 'П2' = '25', В = 0)
ВЫЗОВ Ml ('П1' = '2', В = 3)
ВЫЗОВ Ml ('П2' = '35', В=2.5)
ВЫЗОВ Ml (В = 7.4)
КОНЕЦ
Таблица 2.6 Таблица 2.7
Номер вызова макроса |
П1 |
П2 |
В |
А |
ТЧ1 |
КР1 |
||
1 2 3 4 |
2 2 1 1 |
25 20 35 10 |
0 3 2,5 7,4 |
27 22 36 11 |
27 22 36 11 |
0 3 2,5 7,4 |
0 0 0 0 |
27 0 2 22 3 5 36 2,5 3,5 11 7,4 8,4 |
Номер вызова макроса М2 |
П1 |
А |
1 2 3 4 |
10 + - 1+2 |
А=10-1 А=+-1 А=-1 А=1+2-1 |
П р и м е ч а н и е . В результате 2-го вызова макроса будет выдана ошибка компиляции. |
Значения параметров и переменных, выводимые на печать, приведены в табл. 2.6.
Вложенные вызовы. В теле макроса может встретиться оператор ВЫЗОВ с именем другого макроса. При этом
происходит вставка тела нового макроса в тело старого. В теле внутреннего макроса нельзя использовать текстовые параметры внешнего макроса, но их можно применять в операторе ВЫЗОВ для задания значений внутренних текстовых параметров, например: МАКРО Ml ('П1' = ", П2 = ", П3 = ") ВЫЗОВ М2 ('ПГ = '&ПГ)
ВЫЗОВ М2 ('ПГ = '&П2 + &ПЗ')
КОНМАК
МАКРО М2
А = &П1 −1
КОНМАК
ВЫЗОВ Ml ('ПГ = '10')
ВЫЗОВ Ml ('П2' = 'Г, 'П3' = '2')
Значения параметра и переменной, выводимые на печать (для данного примера), приведены в табл. 2.7.
Локализация переменных в макросе. Для обеспечения полной независимости Макросов от вызывающей программы предусмотрена возможность локализации переменных внутри макросов.
Переменная является локализованной в макросе, если ее значение доступно только внутри этого макроса. В этом случае вне макроса может существовать другая переменная с тем же именем.
Для локализации переменной внутри макроса ее необходимо там явно описать. В противном случае будет использоваться переменная, определенная вне макроса. Если переменная используется впервые, она считается локализованной на текущем уровне вложения макросов.
Приведем пример использования локальных переменных:
А=1
МАКРО М
ВЕЩ А
А = 2
КОНМАК
ВЫЗОВ М
ПЧТ1 А
Поскольку в макросе М имеется явное задание типа переменной А, то она считается локальной в макросе М. Вне макроса ее значение, равное 2, недоступно. Вне тела макроса определена другая переменная А, которой было присвоено значение, равное 1, и именно это значение будет выведено на печать:
А=1
МАКРО М
А = 2
КОНМАК
ВЫЗОВ М
ПЧТ1 А
В этом случае печатается значение А = 2, так как в теле макроса используется переменная, определенная вне его. Расположение тела макроса относительно оператора А=1 здесь не существенно:
МАКРО М
А = 2
КОНМАК
ВЫЗОВ М ПЧТ1 А
В данном примере допущена ошибка, так как значение переменной А не определено.
Операторные параметры рассматриваются как операторы, находящиеся внутри макроса.
Переменные, определяемые в операторных параметрах, должны удовлетворять тем же соглашениям, что и переменные тела макроса, например:
А=1
ВЫЗОВ М (ВЕЩ А = 2)
ПЧТ1 А
На печать будет выведено А= 1, так как в вызове определена локальная в макросе М переменная.
А=1
ВЫЗОВ М (А = 2)
ПЧТ1 А
На печать будет выведено значение А = 2.
Использование меток. Все используемые в макросе метки локализованы внутри этого макроса. Это означает, что передачи управления в макрос и из него запрещены. Разрешены только переходы внутри тела макроса.
2.14 Примеры программ на Техтране
Примеры, приведенные ниже, иллюстрируют возможности процессора САП Техтран. Поэтому в них, как правило, отсутствуют операторы постпроцессора и некоторые вспомогательное перемещения, необходимые с точки зрения технолога.
Пример 1.
Ниже приводится текст программы обработки простейшего контура, изображенного на рис. 2.115. ДЕТАЛЬ ‘ПРИМЕР 1’
#
# ОПРЕДЕЛЕНИЕ ЭЛЕМЕНТОВ КОНТУРА
#
ТЧ0 = -30, 0
ТЧ1 = 0, 0
ПР1 = ТЧ1, 45
ПР2 = ТЧ1, -45
ТЧ2 = ПР1, ТЧ1, 50, УМ ТЧ3 = ПР2,ТЧ1, 50,УМ
ПР3 = ТЧ0, ПЕРП, ПР1
КР1 = ТЧ1, ТЧ2, ТЧЗ
КР2 = УМ, ПР1, УМ, ПР2, РАДИУС, 10
КР3 = УМ, ПР1, ХМ, ВНУТРИ, КР1, 10
КР4 = УМ, ПР2, ХБ, ВИУТРИ, КР1, 10
#
ИНСТР 6 # ДИАМЕТР ИНСТРУМЕНТА
МЕТОД ЛИНКРУГ # МЕТОД ИНТЕРПОЛЯЦИИ
ИНСТПР # ИНСТРУМЕНТ СПРАВА
#
# ОПИСАНИЕ ТРАЕКТОРИИ ДВИЖЕНИЯ ИНСТРУМЕНТА
#
ИЗ ТЧ0 # НАЧАЛО ДВИЖЕНИЯ
ИДИ ДО ПР1 # ПОДХОД К КОНТУРУ
ВПРАВО ПР1 # ОБХОД КОНТУРА
ВПЕРЕД КР3 : КР1 : КР4 : ПР2 : % # СНАРУЖИ ПРОТИВ
КР2 : ПР1 НА ПРЗ # ЧАСОВОЙ СТРЕЛКИ
ВТОЧКУ ТЧ0 # ВОЗВРАТ В ИСХ. ТЧ.
KOHEЦ # КОНЕЦ ПРОГРАММЫ