Реферат: Разработка программного обеспечения - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Разработка программного обеспечения

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 140 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Разработка программного обеспечения для передачи результатов проект ирования по СМП ПП на разработку конструкционных решений деталей и оснастки. Введение. Темой предлагаемого дипломного проекта является разработка программного обеспечения для передачи результатов проектирования по СМП ПП на разработку конструкционных реш ений деталей и оснастки. В проекте предлагается программное обеспечение p - flex , разработанное для интеграции пакетов PCAD и T - FLEX для СМП. Одним из недостатков PCAD - a является то , что он представляет лишь плоский (двухмерный ) вид ПП . Для разработчиков дет алей оснастки зачастую бывает необходимо знать объемные размеры ПП , т.к . от них напрямую зависят конфигурация и габариты проектируемого изделия . Разработанное программное обеспечение значительно облегчает контроль соответствия размеров , т.к . она полностью автоматизирует процесс передачи габаритов ПП (с учетом высоты !!! т.е . в трехмерном виде ) из системы PCAD прямо в систему разработки деталей оснастки - T - FLEX . Разработчику нужно лишь вставить фрагмент , изображающий плату , предварительно подготовленный разр аботанной программой p - flex , прямо в свой сборочный чертеж T - FLEX а на предназначенное ей место и визуально проконтролировать соответствие размеров . Заметим , что использование предлагаемого ПО освобождает разработчика деталей оснастки от использования PCAD ( тогда , как раньше ему приходилось вручную анализировать ПП в PCAD е и исходя из ее размеров строить свою работу ). Помимо передачи габаритных параметров между системами , предлагаемое ПО помогает осуществлять контроль по КД , т.к . способна , по стандартному pd f -файлу системы PCAD , создать полный перечень элементов , содержащихся на ПП , по необходимой форме и поместить его в файл . dbf в виде базы данных . Электронный вид и форма перечня элементов позволяют легко использовать его для формирования текстовой конструк торской документации. Кроме своего главного назначения разработанное ПО помогает продемонстрировать возможности системы T - FLEX как параметрической системы проектирования нового поколения , и показать ее преимущества в сравнении с AutoCAD ом . Краткое описан ие маршрута проектирования ПП. Ниже предлагается описание сквозного маршрута проектирования печатных плат (СМП ПП ) от схемы электрической принципиальной до выхода на технологическое оборудование с использованием системы PCAD 4.5 : структура маршрута и про граммное обеспечение. Дается основная последовательность действий пользователя в процессе сквозного проектирования РЭУ для двуслойных и многослойных субблоков с двухсторонней установкой элементов штырьевых и планарных. Отметим , что в СМП ПП не рассматрив аются задачи , связанные с логическим моделированием принципиальных электрических схем. 1. ОБЩИЕ ПОЛОЖЕНИЯ. 1 .1 ОСНОВНЫЕ ХАРАКТЕРИСТИКИ сквозного маршрута проектирования ПП. Программное обеспечение сквозного маршрута проектирования печатных плат (ПО СМП ПП ) является интегрированным набором проблемно ориентированных программных пакетов , работающих в интерактивном режиме . Средства системы PCAD (предполагается возможность использования пакетов от версии 4.5) позволяют проектировать принципиальные электр и ческие схемы , двухслойные и многослойные печатные платы . Программные средства , включенные в маршрут , позволяют получать , по информации спроектированной в системе PCAD, конструкторскую документацию (система “Восток” - для текстовой и PCAD - для графической ) , подготавливать и контролировать входную информацию для пакета программ выхода на технологическое оборудование (пакет программирования управляющей информации для маршрута ). Наличие большого числа взаимосвязанных пакетов и их баз данных обеспечивает сквозн ое проектирование РЭУ. Результаты проектирования ПП можно передать в T-Flex CAD , полностью параметрическую (в отличии от других ) систему проектирования для дальнейшей разработки деталей и оснастки , выработки конструкционных решений , а также контроля на соо тветствие габаритов ПП и элементов конструкции. ПО СМП ПП состоит из нескольких пакетов программ и их баз данных связанных в единую базу данных проектируемого изделия , что позволяет свести к минимуму ввод исходной информации и избежать повторного задания параметров проекта , тем самым сокращает количество возможных ошибок при вводе исходных данных , время проектирования изделия и его стоимость , обеспечивает качество разработок. Программное обеспечение сквозного маршрута проектирования ПП функционирует в ср еде MS-DOS на персональных компьютерах IBM PC/AT или PC/XT, с объемом памяти 640кб , а также на других ПЭВМ , полностью совместимых с указанными. Для работы системы требуются : - 10 мбт дисковой памяти на винчестере - устройство ввода типа “мышь”. Програм мное обеспечение системы позволяет проектировать ПП со следующими характеристиками и параметрами : · установка корпусов на плате - двусторонняя и односторонняя · тип устанавливаемых корпусов - штырьевые и планарные · размер платы - не более 500х 500 мм (6 0х 60 дюймов ) · разрешающая способность ширины проводников и расстояний - 0.025 мм (0.001дюйма ) · количество компонентов - не более 500 · различных компонентов - не более 400 · количество цепей в электрической схеме - не более 1000 · общее количес тво контактов : · всех корпусов и отверстий - не более 32000 · число проводниковых слоев - не более 50. 1.2СОСТАВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ сквозного маршрута проектирования ПП.. В состав ПО СМП ПП входят : пакет программ системы PCAD (версия 4.5), пакет программ “Восток” , пакет программ подготовки и контроля выхода на технологическое оборудование и программы подготовки информации для КД и ТД на изготовление изделия , и средства сопряжения всех перечисленных пакетов для автоматизированной передачи информа ц ии о проектируемом изделии между ними (одним из них является преедлагаемый пакет p - flex для связи PCAD T - FLEX ). Пакет программ системы PCAD содержит в своем составе три графических редактора PCCAPS, PCPLACE и PCCARDS и н абор утилит и программ , выполняющих служебные функции. Помимо стандартных программ PCAD версии 4.5 в состав ПО включен пакет программ , разработанных в НИИА для обеспечения выхода на технологическое оборудование , применяемое в НИИА . Разработанный пакет вкл ючает в себя программы корректировки , контроля , прорисовок топологии и формирования управляющей информации для технологических установок. 2.ЭТАПЫ РЕАЛИЗАЦИИ ПРОЕКТА . Сквозной маршрут проектирования печатных плат включает в себя этапы : создание графическ ого описания схемы электрической принципиальной со списком соединений средствами графического редактора PCCAPS, подготовки КД на схему , упаковку логических элементов в микросхемы , размещение их на конструктиве , проектирование топологии ПП и подготовки КД и УИ для технологического оборудования. Предполагается , что пользователь знаком с основными принципами работы с MS DOS ПЭВМ. В качестве программы-утилиты MS DOS рекомендуется использовать программу NORTON. 3. БАЗА ДАННЫХ СИСТЕМЫ PCAD В ходе эксплуатаци и системы PCAD было выявлено , что при разработке РЭУ необходимо очень внимательно использовать , своевременно и тщательно корректировать все элементы базы проектирования относительно распределения информации по слоям , их расположению в таблице слоев графич е ских редакторов системы P CAD назначению и парности . С особенным вниманием следует относится к формированию и корректировке КОНСТРУКТИВОВ для ПП , библиотечных ЭЛЕМЕНТОВ для схемы и платы , файлов .PS и .SSF, библиотечных и создаваемых при проектировании файл ов-БЛОКОВ . При создании файлов-БЛОКОВ не включать лишних слоев. При выборе библиотечных файлов для использования в проекте контролировать их корректность для топологической информации по таблице слоев и настройке слоев на принадлежность к проводниковым и парности слоев. Особенно ВНИМАТЕЛЬНО при подготовке информации следует относиться к состоянию активности слоев , т.е . где формируемая информация оставит свой след , т.к . не всегда есть возможность ее перенести или проверить , где она сформирована . Так наприм ер , при подготовке конструктива для упаковки платы и размещения элементов , необходимо записать его с активным состоянием слоя COMP, для обеспечения правильного формирования таблиц при постановке элементов , независимо от стороны и способа их размещения : од н о- или двухстороннего . Подробнее эти указания приведены в соответствующих инструкциях. Кроме того известно , что при разработке РЭУ необходимо очень внимательно использовать , своевременно и тщательно корректировать библиотеки РЭК . Исправление неверно введен ных РЭК на заключительных этапах проектирования дорого обходится , иногда приходится возвращаться к самому началу (к исправлению принципиальной схемы ) от уже изготовленной печатной платы. Описание РЭК в БД в общем случае состоит из двух частей : - Условно - графическое обозначение РЭК (УГО ) на электрической схеме (файлы с расширением .sym). УГО создается средствами схемного графического редактора PCCAPS. Правила и порядок создания УГО приведены в инструкции по созданию условно - графического обозначения Р Э К для сквозного маршрута проектирования с использованием системы PCAD4.5 и выше - Конструкторско - технологическое отображение РЭК (КТО ) (файлы с расширением .prt), включающее информацию о выводах РЭК для подключения КП , отображение РЭК на сборочном черте же ПП , а при использовании КТО при проектировании ПП по сквозному маршруту , также упаковочную информацию . КТО создается средствами топологического графического редактора PCCARDS. - Отображение РЭК для p - flex передаваемое по сквозному маршруту проектирован ия в T - flex . (см.описание ) За состоянием , коррекцией и пополнением БД следит специальная группа во главе с администратором БД. Перед началом работы с проектом , необходимо убедиться в том , что все компоненты , используемые в данном субблоке , присутствуют в БД. По всем вопросам , связанным с использованием БД PCAD, пользователю следует обращаться к администратору БД или создать недостающие компоненты , пользуясь вышеуказанными инструкциями по созданию УГО и КТО (в этом случае всю ответственность за правильнос ть и полноту информации для прохождения маршрута несет сам пользователь ). Перейдем теперь непосредственно к описанию работы по СМП ПП с использованием пакета PCAD.Для обеспечения проектирования РЭУ пользователь должен располагать следующим : - набор пакет ов программного обеспечения ; - ТЗ на проектирование РЭУ ; - БД , в которой должны быть все используемые в проекте элементы. Перед началом работ по ТЗ на рабочем диске в директории PCAD следует создать свой поддиректорий , имя которого , как правило , соотве тствует имени разрабатываемой ПП . В этом директории в дальнейшем будут находиться все файлы , необходимые для проектирования блока РЭУ . Все работы по проекту должны проводиться из этого директория . Настоятельно рекомендуется сохранять на ГМД ИСХОДНУЮ ИНФОР М АЦИЮ для КАЖДОГО ЭТАПА ПРОЕКТА и не менее ДВУХ последних КОПИЙ информации ТЕКУЩЕГО ЭТАПА. Директории , содержащие программное обеспечение и БД , доступны для чтения и находятся в ведении администратора системы : /PCAD/EXE - набор загрузочных модулей маршрута проектирования /PCAD/UTIL - ПО подготовки и контроля УИ для выхода на технологическое оборудование /PCAD/DRV - сопровождающие драйверы /PCAD/LIB - библиотеки /PCAD/... - базы данных проведение текущих работ и запись информации о проекте в эти директории нежелательна и может привести к порче программного обеспечения. По всем вопросам , связанным с установкой ПО для работы по маршруту , следует обращаться к администратору ПО маршрута. 4. ПОСТРОЕНИЕ ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ И ПОДГОТОВКА ИНФОРМАЦИИ ДЛЯ ПЕРЕДАЧИ КОНСТРУКТОРУ. Начальной фазой при проектировании РЭУ по сквозному маршруту является создание схемы электрической принципиальной , включающий в себя следующие этапы : 1.Создание схемы электрической принципиальной. Программа PCCAPS, файл .sch. В НИМАНИЕ ! При создании электрической схемы всем компонентам схемы должен быть присвоен атрибут PRT, содержащий имя КТО РЭК . Эту информацию разработчик электрической схемы получает из учетной информации БД или от конструктора РЭУ и вносит в .sch файл на этапе создания схемы . Атрибут PRT может быть изменен при конструкторской доработке схемы. 2.Выделение списка электрических соединений. Программа PCNODES, файл .nlt. 3.Объединение списков электрических соединений в один , в случае много листового описания. Программа PCLINK, файл .xnl. 4.Проверку электрической схемы в плане нарушения общих правил построения электрических схем и требований сквозного маршрута проектирования. Программа PCERC, файл протокола .erc. 5.Получение перечня элементов РЭУ. Система Вос ток 3.1, файл .pe3. Система P - FLEX , файл . dbf 6.Получение эскиза и КД электрической принципиальной схемы. Выполнение перечисленных этапов проводится разработчиком РЭУ. При проектировании РЭУ по сквозному маршруту проектирования конструктор РЭУ должен полу чить от разработчика электрической схемы следующую информацию : - Список электрических соединений ( .nlt или .xnl файл ); - Распечатку перечня элементов ; - Эскиз электрической схемы (чертеж и /или .sch файл ). - Файлы-фрагменты с изображением ПП для перед ачи в T - FLEX Если при проектировании РЭУ по сквозному маршруту разработчик выполняет упаковку платы и первоначальное размещение элементов , то конструктор РЭУ должен получить от разработчика электрической схемы следующую информацию : - Распечатку перечня элементов ; - Эскиз электрической схемы (чертеж и /или .sch файл ). - Описание списка цепей и размещения компонентов на печатной плате ( .pkg или .plc файл ); - Файл описания упаковочной информации (.pkl файл ). Пользуясь переданной информацией - конструкт ор РЭУ проводит проектирование РЭУ , выполняя следующие этапы маршрута. 5. ПРОВЕРКА ВЫПОЛНЕНИЯ В ЭЛЕКТРИЧЕСКОЙ СХЕМЕ ТРЕБОВАНИЙ СКВОЗНОГО МАРШРУТА ПРОЕКТИРОВАНИЯ РЭУ ( PCERC и PCFORM ), ПОДГОТОВКА КОНСТРУКТИВА ДЛЯ УПАКОВКИ И РАЗМЕЩЕНИЯ . 5.1ПРОВЕРКА ЭЛЕКТР ИЧЕСКОЙ СХЕМЫ. Перед началом обработки полученного от разработчика .nlt или .xnl файла конструктору необходимо провести входной контроль проверку выполнения в .nlt или .xnl файле требований сквозного маршрута проектирования. 5.1.1.Программа PCERC обеспе чивает проверку правильности ввода электрической принципиальной схемы. Входным файлом для программы PCERC является файл списка цепей в двоичном виде (.NLT и .XNL). В результате проверки формируется файл отчета (.ERC), который может быть выведен на экран или принтер. Правила и порядок выполнения этого этапа : - После загрузки программы PCERC по главному меню программы операция GCONFIGURE (конфигурация модуля ) выполнить настройку , т.е . выбрать необходимые проверки. Программа PCERC позволяет осуществить до десяти различных проверок электрической схемы изделия . Можно осуществить проверку сразу по всем правилам , только по одному из правил , или по нескольким правилам в любой комбинации. До выполнения работ по проектированию топологии необходимо выполнить пров ерку наличия и правильности упаковки вентилей в корпус - проверка 8 Packaging consistency check (проверка упаковки ). В случае наличия в .nlt или .xnl ошибок , приводящих к некорректности дальнейшей обработки , конструктор должен сообщить об этом разработчик у электрической схемы . Разработчик должен устранить указанные ошибки и передать конструктору новый вариант .nlt или .xnl файла (и .sch файла ). 5.1.2.Программа PCFORM обеспечивает проверку наличия и правильности задания в компонентах атрибута PRT. Наличи е у КАЖДОГО компонента РЭУ PRT атрибута является обязательным условием для дальнейшей обработки. Наличие в электрической схеме определенного количества компонентов периферии и правильность задания их опорных имен также является обязательным условием прави льного получения БД РЭУ. Входным файлом для программы PCFORM является файл списка цепей в двоичном виде (.NLT и .XNL). В результате для выполнения проверки сформировать файл отчета (.MAT) - список компонентов по опорным именам , который можно вывести на эк ран или принтер , для этого на запросы программы указать : Attribute Keyword : Ввести имя передаваемого в .mat файл атрибута компонентов PRT List Components By: NAME Пробелом установить REFERENCE DESIGNATOR. Для выполнения проверки просмотреть сод ержимое полученного .MAT файла. .MAT файл содержит таблицу , включающую следующие графы : ITEM - номер QTY - количество вентилей COMP-NAME - имя УГО (.SYM файла ) REFERENCE-DESIGNATOR - опорное имя вентилей DESCRIPTION - выделенное значение атрибута (PRT - имя КТО ) В одну строку (под один номер ) попадает группа компонентов , у которых одинаковы все три значения : имя УГО , опорное имя вентиля , значение атрибута. В таблице необходимо проверить следующее : - ВСЕ компоненты должны иметь атрибут PRT; - Значение PRT атрибута должно быть обязательно задано с расширением. - Значение PRT атрибута для вентилей , входящих в один корпус , должно быть одинаковым. Т.е . одно и то же опорное имя может встречаться более чем в одной строке только в том случае , есл и компонент является неоднородным . При этом значение PRT атрибута в данных строках должно быть ОБЯЗАТЕЛЬНО одинаковым. Невыполнение хотя бы одного из указанных требований приводит к невозможности дальнейшей обработки .nlt или .xnl или к ее некорректности. В этом случае конструктор должен сообщить об этом разработчику электрической схемы . Разработчик должен устранить указанные ошибки и передать конструктору новый вариант .nlt или .xnl файла (и .sch файла ). 5.2ПОДГОТОВКА КОНСТРУКТИВА. Последовательность действий. 1.Вызов PCCARDS - командой DETL установить “детальный” режим работы графического редактора , п pи этом меню команд окрашено в зеленый цвет, - командой VLYR проверить исходную таблицу слоев по рекомендациям пункта 3 для графического редактора PCCA RDS, если таблица изменена , выйти из редактора , удалить из рабочей директории файла .cmd, .cm$, .dbg, повторить вызов PCCARDS. 2.Для обеспечения трассировки МПП проверить в таблице слоев наличие слоев для внутренних трасс : INT1, INT2,...,INTi. П pоставить флаг трассировки S для всех внутренних трасс (SCMD/LPAR), а так же для COMP и SOLDER и обеспечить парность внутренних слоев. 3.Ввести в требуемых местах запреты на проведение трасс (DRAW/FREC, слои BARALL, BARCMP, BARSLD, BARIN1...), запрет на размещение межслойных отверстий (слой BARVIA) и запреты на размещение элементов (слои BARPLC, BARCMP, BARSLD). Толщина линии (W:0). 4.Для обеспечения двухстороннего размещения элементов объединить в па pы (SCMD/LPAR) следующие слои : PADCOM-PADSLD, FLCOMP-FLSOLD, PI N-PINBOT, SLKSCR-SLKBOT, REFDES-REFDBT, DEVICE-DVCBOT, BARCMP-BARSLD, BARTOP-BARBOT, MSKGTP-MSKGBT и т.п. 5.Обрисовка контура платы (DRAW/LINE). Проводится на 2-х слоях : а ) SLKSCR (толщина линии W:10) б ) KONTUR (W:10) Размещение контура платы производи ть так , чтобы левый нижний угол имел координату (0,0). 6.Обрисовка области трассировки (DRAW/RECT, DRAW/LINE). BRDOUT (W:0) выполнить обрисовку поля трассировки прямоугольником или ломанной линией , только линия прорисовки должна быть непрерывной. 7.В це нтрах крепежных отверстий : нарисовать следующие знаки (DRAW/LINE, CIRCLE): - на слое KONTUR: перекрестье (W=0) и окружность требуемого радиуса (W=5). - на слое SLKSCR: перекрестье (W=0) “ +”. 8. Установить командой VLYR слой COMP 1 ABL A. В цент pе кажд ого крепежного отверстия поставить компонент с именем OTV.PRT. Команда (ENRT/COMP). 9.Ввести ключ ФШ с именем KLUCH.PRT. Команда (ENTR/COMP). или Ключ - на слое TRO ввести вспышку (DRAW/FLSH, APER=10). 10.Завести уголки по контуру платы на слое TRO. Ком анда DRAW/LINE толщина линии (W:16). 11.Установить сетку трассировки 50х 50. 12.Командой SYMB установить символьный режим (меню окрасится в красный цвет ). Задать нулевую точку (ENTR/ORG) в левом нижнем углу контура платы для обеспечения сверления отверсти й . 13.Проименовать каждый компонент начиная с ключа ФШ. Команда NAME/RSQE имя 1,2,...,N. 14. Установить командой VLYR слой COMP 1 ABL A. SOLDER и все слои INTn ABL, слой BRDOUT ON, слои PIN, PINTOP, PINBOT и SLKSCR, SLKTOP, SLKBOT ON, для дополнител ьного контроля различными между собой по цвету . Остальные слои OFF. Задать ширину проводника 10. Команда EDIT/WIRE толщина линии (W:10). 15.Запомнить файл с расширением .PLA или .PCB. Команда FILE/SAVE. 6. УПАКОВКА ЭЛЕКТРИЧЕСКОЙ СХЕМЫ В БД РЭУ ( PCPACK ). Выполнение этого этапа проводится конструктором или разработчиком РЭУ , после согласования с конструктором способа установки КТО , получения или проверки правильности подготовки выбранного конструктива. Программа PCPACK выполняет важную функцию упаковк и логических элементов в микросхемы , в результате чего вместо образа электрической схемы (.SCH) появляется образ печатной платы (.PKG). Упаковка электрической схемы в БД РЭУ обеспечивает передачу информации , содержащейся в электрической схеме , в .pkg файл - исходный для проектирования топологии РЭУ и является одним из основных этапов проектирования. Упаковка электрической схемы в БД РЭУ требует : - использование КТО , содержащих повентильную упаковочную информацию ; - конструктив ПП (.PCB). - обязательно го выполнения требований , проверка которых осуществлялась в разделе 5. Для проведения упаковки электрической схемы в БД РЭУ необходимо выполнить следующее : 6.1.Подготовить БД проекта. - Руководствуясь ТЗ на проектирование РЭУ , распечаткой перечня и тех нологическими ограничениями , а также учитывая размеры и выбранный способ установки элементов определить контур платы , расположение крепежных отверстий и расположение зон запрета трассировки на плате и их характер , выбрать конструктив из существующих в библ иотечном наборе или подготовить его руководствуясь рекомендациями приведенными в разделе 5.1. - Поместить все используемые в РЭУ КТО в библиотечную директорию проекта либо в директорию , из которой будет осуществляться запуск программы PCPACK (текущую дирек торию ). Можно также поместить часть КТО в библиотечную директорию , а часть в текущую. Примечание. В качестве библиотечной директории проекта может выступать только одна директория , поэтому ВСЕ КТО , используемые в РЭУ , должны быть помещены в одну из двух ( библиотечную или текущую ) или в обе из указанных директорий. - Проверить наличие в БД КТО элементов , указанных в перечне. Если необходимо выбрать или разработать способ установки для элементов требующих специальных условий использования или для экономи и площади поля размещения , а также учитывая дополнительные требования ТЗ или технологии изготовления РЭУ . В случае необходимости , провести корректировку и дополнить БД КТО. Для применения связи PCAD T-FLEX , рекомендуется заранее подготовить файлы .pdf , для используемых в проекте КТО ( .prt ), и передать их в подкаталог \ PDF программы p-flex . 7 . АВТОМАТИЗИРОВАННОЕ РАЗМЕЩЕНИЕ РЭК НА ПЕЧАТНОЙ ПЛАТЕ (PCPLACE). Редактор PCPLACE является одним из трех графических редакторов с истемы PCAD (PCCAPS, PCPLACE, PCCARDS) и предназначен для размещения РЭК на печатной плате . PCPLACE имеет много общего с графическим редактором PCCAPS. Ниже будут описаны существенные особенности , присущие редактору PCPLACE. Входным файлом для запуска ра змещения являются БД ПП , сформированные пакетами PCNLT или PCPACK (.PKG). Прежде чем приступить к размещению элементов при двустороннем монтаже на ПП в редакторе PCPLACE, надо проверить и настроить в исходном файле .PKG таблицу слоев - определить пары сло ев “верх-низ” , как описано в разделе 10.2. Описание всех команд редактора PCPLACE приведено в Пакете документации по графическим редакторам входящим в систему PCAD версии 4.5 (см . pcadhelp). При работе используется дюймовая система единиц - милсы : 1милс = 0.001дюйма = 0.025мм. ПОДГОТОВКА ФАЙЛА ПРИ ДВУСТОРОННЕМ МОНТАЖЕ РЭК НА ПП . Прежде чем приступить к размещению элементов при двустороннем монтаже на ПП в редакторе PCPLACE, надо проверить и в случае необходимости откорректировать в сходном файле .PKG таблицу слоев и определение пар слоев “верх-низ” . Для этого командой SCMD/LPAR графического редактора PCCARDS требуется объединить в пары с запретом для трассировки (признак S и тип переходного отверстия для указанной пары должны быть сняты ) следующие сло и : PADCOM - PADSLD - FLCOMP - FLSOLD - SLKSCR - SLKBOT - PIN - PINBOT - DEVICE - DVCBOT - REFDES - REFDBT - DRCCOM - DRCSLD - MSKGTP - MSKGBT - MSKFTP - MSKFBT - BARCMP - BARSLD - BARTOP - BARBOT - для автоматического размещения компонентов Подобное объед инение позволяет выполнять командой CLYR/COMP (или командой FLIP в PCPLACE) перестановку компонента со стороны слоя COMP на SOLDER и наоборот с автоматическим переносом графической информации на альтернативные слои. 8 . ПРОЕКТИРОВАНИЕ ТОПОЛОГИИ ПП (PCCARD S.) Следующий за размещением этап - трассировка . Как и размещение трассировку можно осуществлять либо автоматически , либо вручную , либо комбинируя оба эти способа . Исходный файл для трассировки - это файл xxx.PLC, полученный в результате размещения . Чащ е всего приходится использовать общий случай , когда часть трасс проводится вручную , а остальные автоматически. PCCARDS является последним из трех графических редакторов системы PCAD (PCCAPS, PCPLACE, PCCARDS). Этот мощный редактор предназначен для работы с топологией ПП , создания библиотек КТО РЭК , формирования наборов контактных площадок и конструктивов . Принцип работы PCCARDS во многом схож с работой других графических редакторов PCADа. Как и в других графических редакторах системы PCAD в PCCARDS исполь зуется структура слоев для отображения информации на экране . В PCCARDS по СМП ПП используются , как рабочие , следующие основные слои : PIN - соединительные контакты на верхней стороне ПП PINBOT - соединительные контакты на нижней стороне ПП BRDOUT - грани цы поля трассировки SLKSCR - чертеж графических символов с верхней стороны ПП SLKBOT - чертеж графических символов с нижней стороны ПП DEVICE - название элемента на верхней стороне ПП DVCBOT - название элемента на нижней стороне ПП REFDES - опорные об означения на верхней стороне ПП REFDBT - опорные обозначения на нижней стороне ПП ATTR - атрибуты COMP - трассы со стороны элементов (верхний слой ) SOLDER - трассы с нижней стороны ПП INT1,INT2,..INTi - трассы внутренних слоев. MSKGTP,MSKGBT,MSKFTP,MSKF BT - графика маскирующих слоев ПП ; Первые 17 слоев стандартной таблице (п .3) зарезервированы для создания файлов контактных площадок (файлы .PS) и их подгрузки в .PCB, остальные - для проектирования и редактирования топологии ПП и создания библиотечных э лементов. Система PCAD позволяет проектировать многослойные ПП (МПП ) с двусторонним монтажом РЭК на МПП . Для осуществления этой возможности в PCCARDS необходимо объединить в пары слои ПП , отмечающие “низ-верх” (п .5.2.4). При работе используется , как прави ло , дюймовая система единиц - милсы , при разработке маршрута выбрано соответствие : 1милс = 0.001дюйма = 0.025мм. Так как для передачи в T-Flex используются только данные о графике элементов и атрибуты , а также размещение на поле ПП , подробности работ по маршруту не приводятся. 9 . ПРИМЕНЕНИЕ СПРОЕКТИРОВАННОЙ ТОПОЛОГИИ . По спроектированной и проверенной .PCB информации можно получить : графическую КД , УИ на фотоплоттер для изготовления ФШ и УИ на сверлильный станок для подготовки крепежных и переходных отверстий монтажа (сквозных и межслойных ). А также передать информацию о спроектированной плате в системы Восток 3.1, AutoCAD (,Спринт-КРР ) и сравнить ее с исходным описанием схемы электрической принципиальной (.SCH файл ). Для передачи информации о спроек тированной плате в среду системы “Восток” необходимо воспользоваться документацией : - ВОСТОК-ПРИМЕНЕНИЕ Инструкция пользователю по применению системы программных средств Восток 3.1. - Инструкция пользователю по применению программных средств PCAD-VOSTOK Для передачи информации о спроектированной плате в среду системы AutoCAD необходимо воспользоваться документацией : - Инструкция пользователя NXACAD - передача изображения из PCAD в AutoCAD Этапы получения графической КД , УИ для изготовления ФШ и УИ на св ерлильный станок для подготовки крепежных и переходных отверстий монтажа (сквозных и межслойных ) по сквозному маршруту проектирования ПП приведены ниже для выполнения работ в системе PCAD и общих специальных программ контроля подготовленной информации . Ра б ота с программным обеспечением ориентированным на применяемое технологическое оборудование описана в отдельных документах : - инструкции пользователю на “Автоматизированное рабочее место (АРМ ) подготовки управляющих программ (УП ) для СМ -600 по результатам сквозного маршрута проектирования печатных плат”. Документация и инструкции пользователю к системе CAMbridge, к программе оптимизации описания топологии для ГИ ЭМ -5039 и к программе RT11. Для передачи информации о спроектированной плате в среду системы T -Flex следует воспользоваться описанием пакета p-flex (см . Руководство по применеию программного обеспечения ). 1 0 . ПОЛУЧЕНИЕ ТЕХНОЛОГИЧЕСКОЙ ИНФОРМАЦИИ (чертежей КД , УИ для фотошаблонов и сверловки ) на проектируемый печатный узел . Сквозной маршрут про ектирования ПП обеспечивает получение следующих выходных конструкторско-технологических документов : - послойные чертежи платы ; - управляющая информация для фотооригиналов слоев платы ; - управляющая информация на станки с ЧПУ для сверления отверстий ; - сборочный чертеж ячейки ; - сборочный чертеж платы печатной многослойной. По . pcb БД топологии платы после проверки можно программными средствами СМП ПП получить и передать на технический контроль для получения учетных номеров (на хранение в архиве рез ультатов проектирования ПП ) все перечисленные выше документы кроме последнего , который в свою очередь формируется средствами редактора PCCARDS (в отдельном файле .PCB или в том же ) по результатам подготовки предыдущих документов и содержит технические треб ования и чертеж сборки МПП . Эти БД : . pcb и документы - составляют БД проектируемой платы , должны храниться в архиве результатов проектирования по СМП ПП и могут использоваться при внесении изменений и доработке. Формирование сборочных чертежей ячейки и МП П. Для сборочного чертежа ячейки формирование выполняется по БД .PCB ПП в PCCARDS. Для подготовки информации необходимо включить слои содержащие всю информацию передаваемую на сборочный чертеж ячейки из файла . pcb спроектированной платы , именно это изобр ажение может быть передано в T-flex . Выбрать формат (например : FT2M2.PCB - формат A2, масштаб прорисовки 2:1 - для плат с размером конструктива не больше 170х 110, а для конструктивов большего размера FT1M2.PCB). Используя команды ZOUT, PAN и VIND уменьши ть размер изображения платы на экране приблизительно до четверти линейного размеры экрана и разместить его по центру экрана для удобства компоновки поля чертежа. Подгрузить в .PCB файл командой FILE/BKLD и разместить изображение формата вокруг конструктив а платы с учетом возможности формирования выносных размеров , размещения блоков вид сбоку и технических требований для сборочного чертежа и оцифровки для послойного. Подгрузить в .PCB файл командой FILE/BKLD и разместить изображение блоков : вид сбоку , техн ических требований для сборочного чертежа , необходимых сервисных блоков. Отредактировать их при необходимости и дополнить недостающими элементами графики , используя слои назначенные для дополнительной информации КД чертежа (например : FORM1, FORM1B, FORM2, FORM2B, NADKDP, NADKDZ, KDIN1, ... - для надписей в штампах и на поле с учетом их подключения по принадлежности чертежу /чертежам КД ). Для редактирования текстов в штампах формата выполнитьмаскирование компонентов . Отредактировать тексты в штампах формата , ТТ и выносную текстовую информацию - используя команды DROW/TEXT, MOVE, COPY, DEL, надписи в штампе и на поле чертежа , предназначенные только для сборочного чертежа перенести в слой SLKSCR (командой CLYR/IDEN). ВНИМАНИЕ !!! команду DROW/TEXT применять для редактирования текста , т.е . установить курсор на строку текста и ввести или скорректировать содержание надписи без изменения ее атрибутов , а команды MOVE, COPY, DEL применять для изменения количества строк и их расположения. Получить .PLT файл для пр орисовки сборочного чертежа ячейки . Кроме слоев исходного .PCB файла для сборочного чертежа (SLKSCR и др .), включить в состоянии ON или ABL дополнительные слои КД формата для сборочного чертежа : FORMAT, FORTXT, FORM1 и т.п. Сохранить подготовленную информ ацию в виде .PCB файла на рабочей дискете и для организации архива результатов проектирования ПП. Для сборочного чертежа МПП формирование выполняется в БД .PCB МПП средствами PCCARDS на поле послойного чертежа слоя со стороны установки элементов (COMP - в ерхняя сторона платы ). Если поля выбранного для этого чертежа формата недостаточно , можно загрузить в эту же базу дополнительный блок формата вне поля основных чертежей или подготовить дополнительный файл .PCB для сборочного чертежа МПП. Так как для подго товки информации о сборке МПП необходимо использовать данные получаемые при подготовке послойных чертежей и УИ сверловки отверстий , следует предварительно получить необходимую информацию для таблице отверстий и подготовки технических требований . Приемы вы полнения работ и подготовки информации описаны выше , но следует использовать специальные слои . После дополнения шаблонов данными по спроектированной плате , сохранить информацию в файле .PCB и подготовить файл .PLT для прорисовки КД. Описание технических т ребований к программе. Предлагающийся к рассмотрению программный продукт предназначается для передачи информации о конструкции печатной платы из пакета PCAD в T-FLEX по сквозному маршруту проектирования для выработки дальнейших конструкционных решений и р азработки деталей оснастки. 1. Состав программного обеспечения : · p-flex .exe : основной файл , осуществляющий всю работу ; · gabarits.dbf : база данных в виде таблицы , куда заносятся все найденные параметры элементов , присутствующих в конструкции анализи руемой платы . Этот файл создается при п eрвом запуске программы и постоянно пополняется новыми данными при дальнейшем анализе плат ; · error.txt : этот файл создается при каждой обработке нового pdf-файла платы и содержит в текстовом виде имена элементов пл аты , на которые не были найдены габаритные размеры (т.е . не найден pdf-файл на элемент c таким названием в подкаталоге PDF). · f4.grb, plata.grb, 2d.grb : графические файлы-образы в формате T-FLEX, по кторым программа создает образ платы и элементов . 2. Технические характеристики : · программа разработана для IBM-совестимых компьютеров с процессорами 286-AT и выше . Для приемлемого быстродействия рекомендуется использовать компьютер с процессором не ниже чем 386-DX40; · программа предназначена для испол ьзования в среде MS-DOS4.0 или выше , но может , так же , работать под управлением WINDOWS в режиме эмуляции MS-DOS, либо в окне DOS; · для нормальной работы программы необходимо 400kb свободной памяти DOS (программа будет работать и с меньшим количеством па мяти , но при большом количестве элементов на плате она выйдет в DOS с сообщением об ошибке ); · программу можно запускать из любого удобного пользователю каталога , т.к . при запуске программа делает каталог , в котором находится , текущим ; · (!)внимание : в к аталоге , где располагается файл p-flex .exe пользователь обязательно должен создать подкаталог с названием PDF и именно в нем должны располагаться pdf-файлы элементов (полученные пользователем из prt-файлов с помощью программы pdfout.exe, из пакета PCAD), в противном случае программа не сможет обнаружить габаритные параметры элементов , присутствующих на плате. 3. Возможности программного пакета. · представленная на рассмотрение программа способна обрабатывать pdf-файлы (полученные программой pdifout.exe) в формате PCAD4.5, PCAD7, PCAD8 - т.е . со всеми версиями PCAD, применяемыми на данный момент - и обеспечивает передачу данных независимо от версии PCAD; · программа создает постоянно пополняющуюся в процессе работы базу данных , в которую заносятся основны е атрибуты : имя ptr-файла элемента , его длина , высота , ширина , точка привязки и т.п. · программа создает файлы-фрагменты T-FLEX, которые представляют собой графический образ платы (содержащейся в анализируемом pdf-файле ) в трехмерном виде (изометрии ), что позволяет визуально оценить ее объемный размер и принять решения по разработке деталей и оснастки , с которыми связаны размеры этой платы ; пользователь по своему желанию может задать ограничения на высоту элементов по верхней и нижней стороне платы , а эле м енты , выходящие за эти ограничения , будут выделены в T-FLEX красным цветом ; · программа создает файлы-фрагменты T-FLEX, которые представляют собой графический образ платы (содержащейся в анализируемом pdf-файле ) в двухмерном виде (плоском ): спереди , сзади , справа , слева , сверху и снизу - что позволяет разработчику загрузить такой вид вместе с соответствующим видом корпуса и визуально проследить соответствие размеров ; · программа имеет возможность , по желанию пользователя , подготовить перечень элементов по форме документа , содержащихся на анализируемой плате , в виде стандартного dbf-файла (для передачи на оформление текстовых документов и другую обработку ); · программа изображает все элементы на плате , используя прилагаемую к ней графическую библиотеку в ф ормате T-FLEX, в виде параллелепипедов с реальными размерами по высоте , длине , ширине и местоположением на плате (возможно создание подробной графической библиотеки на все элементы , что позволит абсолютно точно передавать их графический образ ). 4. Требова ния к формату pdf-файлов. Все требования к формату файлов следует учесть при создании БД PCAD по СМП ПП в PCCARDS , до получения файлов .pdf. На слое KONTUR должен быть заведен контур печатной платы , т.к . именно там программа будет его искать . Если конту р платы будет создан на каком-либо другомм слое , то для программы это равносильно его отсутствию вообще. На слое атрибуты для каждого элемента должен быть заведен параметр Н =ххх.ххх , где ххх.ххх - высота данного элемента в мм . Именно исходя из этих параме тров программа будет определять высоту при создании объемного образа элемента , а при отсутствии такого параметра элементу автоматически присваивается высота в 10мм. Когда при анализе платы программа обнаруживает элемент , она производит проверку на наличие этого элемента на слое шелкографии и при отрицательном результате элемент просто игнорируется. Руководство по применению программного обеспечения. 1.Запуск. Для запуска программы набрать в командной строке DOS имя программы — p-flex.exe (с указанием пут и к ней в том случае если текущий каталог не является каталогом , в котором расположена программа ) и через пробел имя pdf-файла анализируемой платы (полученного из pcb-файла с помощью программы pdfout.exe), например : ххх .exe sample.pdf На экране появится окно — главное меню : Из этого меню пользователь сможет управлять всей дальнейшей работой программы выбирая те или иные пункты меню с помощью функциональных клавиш. 2.Функци ональные клавиши. -навигационные клавиши устанавливают курсор на нужный вам пункт меню ; -клавишей ENTER осуществляется выбор того пункта меню , на котором стоит курсор ; -клавишей INSERT в интерактивном режиме можно переключить режим замещения / вставки бук в с раздвижкой строки ; -клавиша ESC, как правило , выполняет возврат к предыдущей функции или меню (аналогично пункту ВЫХОД ). 3.Описание использования функциональных возможностей программы. После запуска открывается главное меню программы , состоящее из пу нктов , управляющих дальнейшей работой : - АТРИБУТЫ - при выборе этого пункта становиться активным окно с атрибутами и пользователь может настроить атрибуты по своему усмотрению : - Имя комплекта : указывае название каталога для системы T-FLEX, в котором расположены файлы f4.grb, plata.grb, 2 d .grb, необходимые для формирования элементов платы средствами пакета T-FLEX по результатам работы p-flex . - Ограничение сверху (снизу ) : п редельные значения параметров по высоте элементов с верхней и нижней стороны платы (если высота элемента больше этих параметров , то элемент будет выделен красным цветом ). - Толщина платы : параметр , определяющий толщину платы (т.к . в PCAD нет понятия о тол щине платы , то этот параметр определяется пользователем , по умолчанию = 0). - Имя pdf - файла : в этом пункте пользователь может ввести название pdf- файла PCAD-а , который он хочет обработать с указанием пути к нему . Если при запуске программы был указано имя файла pdf, в виде ключа , то оно автоматически попадает в этот пункт . При наборе имени файла программа проверяет существование такого файла по указанному пути и , если он не существует , то пользователь не имеет возможности выйти из окна АТРИБУТЫ до тех п ор , пока не введет правильное имя файла иначе остается возможность выхода по esc ,без сохранения всех изменений , сделанных в этом окне. - КОМПОНОВКА - данный пункт не активен при выборе , до тех пор , пока не будет указанно правильное имя анализируемого pdf- файла в окне АТРИБУТЫ (о чем свидетельствует горящее посреди экрана сообщение “Не вижу pdf-файла” ). Если pdf- файл доступен , то при выборе этого пункта меню начинается его анализ : за скоростью этого процесса пользователь может следить по процентной линии , отображаемой на экране. Внизу экрана отображается общее количество найденных на плате элементов а так же сообщение о результате поиска контура платы на слое KONTUR. После завершения анализа платы программа выбирает габариты элементов из файла gabarits.dbf по их названию , а если не находит нужного , то выполняет поиск pdf-файла элемента (для prt, обработанного pdifout.exe) в подкаталоге PDF (который должен находиться в том же каталоге что и программа ). При успешном поиске она анализирует этот файл , находит в нем габариты элемента и заносит их в базу gabarits.dbf . Т.е . если на анализируемой плате есть элементы со стандартным названием , но не стандартными (обновленными ) г абаритами , то необходимо удалить gabarits.dbf , а в подкаталог PDF скопировать все .pdf -файлы элементов платы , и тогда габариты всех элементов платы просканируются и файл подготовится заново . (В существующей версии каждый элемент по размерам округляется до параллелограмма , т.е . шар например станет кубом . Для точной графической передачи элементов в трехмерном виде требуется создание специальной графической библиотеки в формате T-FLEX, чему будет посвящена следующая версия программы .) Габариты элемента помеща ю тся в базу gabaritrs.dbf. Т.е . если элемент встречался хотя-бы раз в какой-либо плате , то во всех последующих платах данные на него будут браться из базы без повторной обработки его PRT-файла . Если контур платы был обнаружен , то при создании файлов для T -FLEX в них передадутся габаритные размеры платы , со слоя KONTUR, округленные по форме до прямоугольника (существующая версия не обрабатывает сложные контуры ). Если-же контур найден не был то программой создается собственный прямоугольный контур платы по у словию : расстояние от края платы до граничных элементов равно 10 мм. После этого предлагается меню компоновки : - Выход (или ESC) — выход в предыдущее (главное ) меню , если эт от пункт выбирается первым , то при выходе происходит отказ от создания файлов платы в формате T-FLEX; - Трехмерная компоновка — при выборе этого пункта начинается процесс создания файлов изображения платы в трехмерном виде в формат T-FLEX. На экране отобр ажается количество элементов , созданных в файлах T-FLEX , соответственно на нижний и верхней стороне платы . При этом создаются 3-и файла в формате T-FLEX: *****top.frg-файл элементов верхней стороны платы , *****bot.frg-файл элементов нижней стороны платы, *****plt.frg-файл контура платы (символом ***** обозначаются пять первых символов каждого файла , они общие для всех трех файлов , которые пользователь редактирует по своему усмотрению в пункте Имя файла ). После завершения автоматически предлагается меню ко м поновки и пользователь , по желанию , может либо создать какой-либо другой вид платы , либо выйти в главное меню ; - Имя файла — при выборе этого пункта курсор переходит в окно с именем файла и позволяет изменить его по своему усмотрению ; - Описание — при выборе этого пункта создается стандартный dbf- файл , содержащий перечень всех элементов анализируемой платы. - Двумерная компоновка — при выборе этого пункта предлагается меню с р азличными двумерными видами платы : спереди ( F) , сзади (A) , слева (L) , справа (R) . Под каждым пунктом нарисована плата и стрелкой показано направление взгляда на неё . При вы боре нужного пункта происходит создание файлов двумерного изображения , соответствующего вида , в формате T-FLEX (создается файл *****2d # .frg , где ***** - имя задаваемое пользователем при выборе пункта “имя” , а # - символ признак вида : F, A, L, R ). Пос ле этого вновь предлагается меню компоновки. Алгоритм и описание программы. Программа разработана и написана в СУБД CLIPPER 5.2 с использованием стандартных форматов файлов баз данных. Учитывая объем программы и сложность алгоритма , использовались методы структурированного программирования и текст программы разбит на несколько файлов , в которых выделены основные функции , таким образом , чтобы их легко было редактировать во время отладки. 1.Основная программа содержится в файле dbfill.prg, которая в своей работе использует процедуры и функции , описанные во вспомогательных программных файлах. На первом шаге выполнения программа считывает имя pdf-файла , заданного в командной строке , делает текущим каталог в котором она находится , создает переменные , необходим ые в работе как её , так и другим подпрограммам : PARAMETERS fname //считать параметры командной строки PUBLIC higt,higtd,pnow:=0,filelen,exit:='',attr:='',desc,bufer:=SPACE(65000), ; compon[0,9],nomcomp:=0 PUBLIC koef:=0.1,str,stolb,parts,znak,kontur[0] ,verkont:=0,parametr PUBLIC errfile[0] // массив сообщений об ошибках PRIVATE razm,filend,not,L,p1,str2,colo PUBLIC tlplat:=7 //толщина платы set cursor off cls colo:=setcolor('g+/b') tmppat:=dirname() //делает текущим каталог в котором наход. pa t:=LOWER(exename()) //исполняемый файл c1:=RAT('tel',pat) pat:=LEFT(pat,c1-2) DIRCHANGE (pat) Далее вызывается функция , активизирующая главное меню программы , которая , в зависимости от выбранного пункта , передает управление той или иной процедуре : IF fname<>NIL cls setboxgrow(3) wbox(0) set date format 'dd:mm:yyyy' //открытие основного окна ZAGOL('ОБРАБОТКА PDF-ФАЙЛА '+DTOC(DATE())) SETCOLOR('N/G') wmenu:=wind(1,2,maxrow()-3,maxcol()-3,'Главное меню ',5) perv:=1 SHOWTIME(0,72,'G/G') attrtmp:='DEMO ' higttmp:=30.00 higtdtmp:=30.00 exittmp:=' out' GL() //выов фкнкции главного меню WINCLOSE() SETCOLOR(colo) cls ELSE SETCOLOR(colo) cls @ 3,0 SAY 'Не введено имя pdf файла !' ENDIF SETCOLOR(colo) DIRCHANGE (tmppat) //возвращает сохраненный текущий каталог SETCOLOR('g/n') @ MAXROW()-1,15 SAY 'Shurasoft 1997 Mihail & Alexandr Company' SETCOLOR(colo) //возвращение текущего цвета при выходе ?' ' RETURN //***************************************************************** FUNCT ION GL() //главное меню CLEAR GETS cglold:=setcolor('n/rg') @ 11,5 CLEAR TO maxrow()-2,maxcol()-6 @ 11,5 TO maxrow()-2,maxcol()-6 DOUBLE set cursor off set scoreboard off readexit(.F.) set cursor on set date format to 'dd.mm.yyyy' setpos(12,(max col()/2)-4) dispout(' АТРИБУТЫ ','g+/b') @ 13,7 say "Имя комплекта ................................" color ('W+/rg') get attrtmp color('rg+/rg,n/w') @ 14,7 say "Ограничение по высоте сверху в mm............" color ('W+/rg') get higttmp picture '@B 999.99 ' color('gr+/rg,n/w') @ 15,7 say "Ограничение по высоте снизу в mm............." color ('W+/rg') get higtdtmp picture '@B 999.99' color('gr+/rg,n/w') setcolor(cglold) set cursor off mas:= 'Атрибуты ', 'Компоновка ', 'Выход ' , "Редактирование атрибутов файла ", "Скомпоновать файл в формате T-FLEX", "Выход в DOS" str:=MENU (mas,14,perv) perv=str str1:=10 IF str=1 //если выбран пункт АТРИБУТЫ - запустить меню , //позволяющее изменить атрибуты set cursor on read set cursor off ELSEIF str=2 //если выбран пункт КОМПОНОВКА - запустить //процедуру анализа pdf- файла WSELECT(0) SETCOLOR('n/bg') PUBLIC pnow:=0,filelen,desc,bufer:=SPACE(65000),compon[0,9],nomcomp:=0 PUBLIC kontur[0],verkont:=0,parametr PUBLIC errfile[0] // массив сообщений об ошибках CREATDB() wzapis:=wind(2,3,maxrow()-7,maxcol()-6,"Компоновка ",5) higt:=higttmp higtd:=higtdtmp attr:=alltrim(attrtmp) CONT() winclose() wselect(wmenu) ELSEIF str=0 //если не выбран не один пункт perv=4 ENDIF IF str<>3 wselect(wmenu) GL() ENDIF RETURN //***************************************************************** FUNCTION CONT() //функция анализу\ирующая pdf- файл PUBLIC kolkomp,koltop:=0,kolbot:=0,dx,dy //выделенме параметров эле -//ментов //dx,dy -поправка на 0 desc:=FOPEN(fn ame) filelen:=FSEEK(desc,0,2) prflen:=filelen FSEEK(desc,0,0) CLS ?'ИДЕТ ПОИСК КОМПОНЕНТ ...' not:=SEARCHCOMP(@koef) //вызов функции которая выполняет всю работу по анализу текста pdf- айла , находит имена , обозначения , габариты всех элементов , нахо дящихся на плате и упаковывает их в виде файла базы данных kolkomp:=0 IF len(not)>0 kolkomp:=not[1] koltop:=not[2] kolbot:=not[3] ENDIF FCLOSE(desc) //закрытие pdf файла //*****ОБРАБОТКА ПАРАМЕТРОВ У НАЙДЕННЫХ ЭЛЕМЕНТОВ **** IF kolkomp>0 AUTOKONTUR(kolkomp) //выделение контура платы по максимальным габаритам элементов на ней ENDIF //*******ВЫБОР ВИДА ПЛАТЫ ****************************** exit:=alltrim(exittmp) CLEAR GETS st:=1 cls DO WHILE (st<>4) //Предлагается меню , где можно выбрать н аправление взгляда на плату cglold:=setcolor('n/rg') @ 9,12 CLEAR TO 11,maxcol()-13 @ 9,12 TO 11,maxcol()-13 DOUBLE set cursor off set scoreboard off readexit(.F.) set cursor on @ 10,14 say "Имя получаемоемого файла ......" color ('w+/rg') get exit tmp picture 'NNNNN' color('gr+/gr,n/w') setpos(10,50) dispout('.frg','w+/gr') setcolor(cglold) mas:= 'Двумерная ','Трехмерная ','Имя файла ','Выход ' , "Создание файла вида сбоку (двумерное изображение )","Создание файла вида со стороны (трехмерное изображ ение )",'Изменить имя получаемоемого файла ','Выход в главное меню ' st:=MENU (mas,13,st) IF st=1 @ 9,0 CLEAR TO maxrow(),maxcol() set cursor off TO2D(kolkomp) //пересчет точек привязки в трехмерные координаты PRINTINFO() ERRF() inkey(6) cls ELSE IF st=2 @ 9,0 CLEAR TO maxrow(),maxcol() set cursor off TO3D(kolkomp) //пересчет точек привязки в трехмерные координаты PRINTINFO() ERRF() inkey(6) cls ELSEIF st=3 set cursor on read exit:=alltrim(exittmp) set cursor off ELSEIF st=0 st=4 ENDIF ENDDO RETURN //***************************************************************** FUNCTION INP(dl,pods,typ) //вспомогательная функция для ввода данных с клавиатуры oldcol:=col() oldrow:=row() er:=space(maxcol()-col()) IF typ<>'n' FOR L=1 TO 2 ACCEPT pods TO tmp IF LEN(tmp)<1 L=1 @ oldrow+1,oldcol SAY er SETPOS(oldrow,oldcol) ELSEIF LEN(tmp)>dl L=1 @ oldrow+1,oldcol SAY er SETPOS(oldrow,oldcol) ELSE tmp=ALLTRIM(tmp) L=2 ENDIF NEXT ELSEIF typ='n' FOR L=1 TO 2 ACCEPT pods TO tmp IF LEN(tmp)<1 L=1 @ oldrow+1,oldcol SAY er SETPOS(oldrow,oldcol) ELSEIF VAL(tmp)=0 L=1 @ oldrow+1,oldcol SAY er SETPOS(oldrow,oldcol) ELSE L=2 ENDIF NEXT ENDIF RETURN tmp //*******печать информации о найденных элементах ****** FUNCTION PRINTINFO() //функция , печатающая на экране результатысоздания TFLEX-файлов и результаты анализа SCROLL(10,0,MAXROW(),MAXCOL(),4) SETPOS(MAXROW()-4,0) ?'ДЛИНА PDF-ФАЙЛА :',prflen,' байт ' ?'КОЛИЧЕСТВО НАЙДЕННЫХ ЭЛЕМЕНТОВ :',ALLTRIM(STR(kolkomp) ) ?'ЭЛЕМЕНТОВ НА ВЕРХНЕЙ СТОРОНЕ :',ALLTRIM(STR(koltop)) ?'ЭЛЕМЕНТОВ НА НИЖНЕЙ СТОРОНЕ :',ALLTRIM(STR(kolbot)) RETURN //************************************************* FUNCTION ERRF() //функция , создающая файл ERROR.TXT и записы //вающая туда имена компо нентов , на которые не //найдены габаритные размеры IF len(errfile)<>0 desk:=fcreate('error.txt') fwrite(desk,"Не найдены файлы :"+chr(13)+chr(10)) for k:=1 to len(errfile) fwrite(desk,errfile[k]) fwrite(desk,chr(13)+chr(10)) next fclose(desk) ENDIF RETURN //************************************************** FUNCTION TO3D(st0) // функция , пересчитывающая координаты и габаритные размеры элементов в трехмерную модель cos30:=0.5*SQRT(3) cos60:=0.5 FOR L:=1 TO st0 compon[l,4]=compon[l,4]+dx compon[l,5]=compon[l,5]+dy compon[l,4]=compon[l,4]+cos60*compon[l,5] //пересчет координат в //3D compon[l,5]=compon[l,5]*cos30 IF compon[L,2]='bot' compon[L,5]=compon[L,5]-compon[L,3] //для эл . нижней стороны ENDIF NEXT maxy:=kontur[4] maxx:=kontu r[3] tx[5])*(maxy-tx[5])))<(((maxx-tx[4])*(maxx-tx[4]))+((maxy-tx[5])*(maxy-ty[5]))) ) tx[4])+kwad(tx[5]))>(kwad(maxx-tx[4])+kwad(tx[5])) ) ASORT(compon,,, |tx,ty| (tx[4]*tx[4]+(maxy*2-tx[5])*(maxy*2-tx[5]))<(ty[4]*ty[4]+(maxy*2-ty[5])*(maxy*2-ty[5])) ) //*******СОЗДАНИЕ ФАЙЛОВ-ФРАГМЕНТОВ ************ IF kolkomp>0 SCROLL(10,0,MAXROW(),MAXCOL(),1) SETPOS(MAXROW()-1,0) ?'Идет создание файла элементов на нижней стороне :' nn:=FILECR3D(kolkomp,'bot','bot') ??nn SCROLL(10,0,MAXROW(),MAXCOL(),1) SETPOS(MAXROW()-1,0) ?'Идет создание файла элементов на верхней стороне :' nn:=FILECR3D(kolkomp,'top','top') ??nn PLATCR() //создание файла контура платы ENDIF FOR L:=1 TO st0 //обратный пересчет координат для приведения // массива габаритов в исх одный вид IF compon[L,2]='bot' compon[L,5]=compon[L,5]+compon[L,3] //для эл . нижней стороны ENDIF compon[l,5]=compon[l,5]/cos30 compon[l,4]=compon[l,4]-cos60*compon[l,5] compon[l,5]=compon[l,5]-dy compon[l,4]=compon[l,4]-dx NEXT RETURN //******** ******************************************** FUNCTION TO2D(st0)// функция , пересчитывающая координаты и //габаритные размеры элементов в двумерную //модель wzapis:=wind(3,4,maxrow()+2,maxcol()+3,"Двумерная компоновка ",5) mas:= 'Спереди ','Сзади ','Слев а ','Справа ' , "Создание файла вида спереди ","Создание файла вида сзади ","Создание файла вида слева ","Создание файла вида справа " xkor:=4 strel:= chr(24),chr(25),chr(26),chr(27) //Прорисовка видов плат col2d:=setcolor('r+/bg') For k=1 To 4 setcolor('r/bg') @ 5,xkor to 5+2,xkor+10 setcolor('n/bg') @ 5+3,xkor-1 say '0,0' xkor=xkor+16 next setcolor('g+/bg') @ 8,9 say strel[1] @ 4,25 say strel[2] @ 6,35 say strel[3] @ 6,63 say strel[4] setcolor(col2d) st:=MENU (mas,13,st) IF st=1 ASORT(compon,,, |x,y| x[5]>y[5] ) FOR L:=1 TO st0 compon[l,4]=compon[l,4]+dx // compon[l,5]=0 // compon[l,8]=0 IF compon[L,2]='bot' compon[L,5]=compon[L,5]-compon[L,3]-tlplat //для эл . нижней стороны ENDIF NEXT tkont2:=kontur[2] tkont4:=kontur[4] kontur[2]=-10 kontur[4]=kontur[2] //*******СОЗДАНИЕ ФАЙЛОВ-ФРАГМЕНТОВ ************ IF kolkomp>0 SETPOS(MAXROW()-1,0) ?'Идет создание файла элементов на нижней стороне :' dlin:=ALLTRIM(STR(kontur[3]-kontur[1])) nn:=FILECR2D(kolkomp ,'top',dlin) ??nn ENDIF FOR L:=1 TO st0 //обратный пересчет координат для приведения // массива габаритов в исходный вид IF compon[L,2]='bot' compon[L,5]=compon[L,5]+compon[L,3]+tlplat //для эл . нижней стороны ENDIF compon[l,4]=compon[l,4]-dx NEXT kontur[2]=tkont2 kontur[4]=tkont4 ELSEIF st=2 TO2DZAD(st0) ELSEIF st=3 ELSEIF st=4 ENDIF winclose() RETURN //**************************************************** FUNCTION AUTOKONTUR(L1) // выделение контура платы по максимуму minY:=compon[1,5] maxY:=minY minX:=compon[1,4] maxX:=minX IF verkont=0 PUBLIC kontur[4] FOR L:=2 TO L1 IF compon[L,4]>maxX maxX:=compon[L,4] ELSEIF compon[L,4]maxY maxY:=compon[L,5] ELSEIF compon[L,5]LEN(st1) ?'Ошибка при записи файла ' ELSE ??' OK' ENDIF FCLOSE(fil) RETURN ///*************************************************** FUNCTION CREATDBF(nom2)//функция создающая пустую базу данных PUBLIC nfill1:='COMP' , nfill2:='SIDE', nfill3:='attr', nfill4:="X",nfill5:="Y" PRIVATE struct [5,4],nom struct[1,1]=nfill1 struct[1,2]="C" struct[1,3]=18 struct[1,4]=0 struct[2,1]=nfill2 struct[2,2]="C" struct[2,3]=5 struct[2,4]=0 struct[3,1]=nfill3 struct[3,2]="N" struct[3,3]=10 struct[3,4]=0 struct[4,1]=nfill4 struct[4,2]="N" struct[4,3]=10 struct[4,4]=5 struct[5,1]=nfill5 struct[5,2]="N" struct[5,3]=10 struct[5,4]=5 parametr:=exit DBCREATE(parametr,struct) //создание базы данных U SE USE ¶metr //открытие б.д. FOR nom=1 TO nom2 APPEND BLANK REPLACE &nfill1 WITH compon[nom,1] REPLACE &nfill2 WITH compon[nom,2] REPLACE &nfill3 WITH compon[nom,3] REPLACE &nfill4 WITH compon[nom,4] REPLACE &nfill5 WITH compon[nom,5] NEXT USE //закрытие б.д. RETURN //*************************************************************** FUNCTION TO2DZAD(st0) // функция , пересчитывающая координаты и габаритные размеры элементов в двумерную модель вида сзади dlin:=ALLTRIM(STR(kontur[3]-kontur [1])) ASORT(compon,,, |x,y| x[5]0 SETPOS(MAXROW()-1,0) ?'Идет создание файла элементов на нижней стороне :' dlin:=ALLTRIM(STR(kontur[3]-kontur[1])) nn:=FILECR2D(kolkomp ,'top',dlin) ??nn ENDIF kontur[2]=tkont2 kontur[4]=tkont4 FOR L:=1 TO st0 //обратный пересчет координат для приведения массива габаритов в исходный вид IF compon[L,2]='bot' compon[L,5]=compon[L,5]+compon[L,3]+tlplat //для эл . Нижней стороны END IF compon[l,4]=-compon[l,4]+kontur[3]-kontur[1]+compon[l,7] compon[l,4]=compon[l,4]-dx NEXT RETURN //*************************************************************** FUNCTION kwad(argum) //функция возведения в квадрат newarg:=argum*argum RETURN newarg //**************************************************** //подключение файлов с вспомогательными программами #include 'CH\ssear.ch' #include 'CH\swind.ch' #include 'CH\smenu.ch' #include 'CH\sfilcr3d.ch' #include 'CH\sfilcr2d.ch' 4.Файл ssear.prg содержит в себе текст подпрограммы , которая выполняет весь анализ pdf файла , находит имена , габариты , и координаты всех элементов , содержащихся в этом pdf файле , а так же ищет для всех вновь встреченных элементов их преобразовнные prt- файлы , берет оттуда габарит ы и помещает их в базу данных габаритов элементов (файл gabarits.dbf): FUNCTION SEARCHCOMP(koef) lastseek:=0 olsear:=setcolor('n/gb') set cursor off //******** Выделение элементов из pdf-файла и занесение их в массив compon[0,9] ***** // compon[n,1]-назва ние элемента (строка ) // compon[n,2]-сторона установки ('top' или 'bot') // compon[n,3]-высота элемента (число ) // compon[n,4]-координата х-точки привязки (число ) // compon[n,5]-координата у-точки привязки (цифра ) // compon[n,6]-поворот элемента (число от 0 до 3) // compon[n,7]-ширина элем .(число ) // compon[n,8]-длина элем .(число ) // compon[n,9]-обозначение элемента (строка ) tmz1:=SEAR() setcolor(olsear) RETURN tmz1 FUNCTION INSERTCOMP() //выделение параметров элементов из строки текста USE 'gabarits.dbf' //открытие базы данных с размерами элементов FOR L=1 TO LEN(compon) //выделение координат точки привязки элемента IF compon[L,1]=NIL L=LEN(compon) kolkomp:=L-1 ELSE kolkomp:=len(compon) str2=ALLTRIM(compon[l,4]) IF compon[l,2]<>'bot' koltop=kol top+1 ELSEIF compon[l,2]='bot' kolbot=kolbot+1 ENDIF p1=At(' ',str2) compon[l,4]=VAL(SUBSTR(str2,0,p1-1))*koef //выделение х точки привязки str2=LTRIM(SUBSTR(str2,p1,30)) p1=At(' ',str2) IF p1=0 p1=AT(' ',str2) ENDIF compon[l,5]=VAL (SUBSTR(str2,0,p1-1))*koef //выделение у точки привязки SCROLL(10,0,MAXROW(),MAXCOL(),1) st0:=compon[l,1]+compon[l,2]+' X='+STR(compon[l,4])+' Y='+STR(compon[l,5])+' Ro='+str(compon[l,6]) gab:=GABARIT(compon[L,1],L) //вызов данных о размерах элемента ENDIF NEXT USE //закрытие базы данных с размерами элементов RETURN kolkomp,koltop,kolbot //**************************************************** FUNCTION GABARIT(st0,nn) // определение габаритов элемента по его имени PRIVATE naiden:=0,gabar:= 0,0,0 //по заданному имени элемента возвращает массив из 3 чисел /ширина /длина /высота / WHILE naiden=0 LOCATE FOR name=st0+SPACE(10-LEN(st0)) IF FOUND()=.T. gabar[1]:=SHIR*koef gabar[2]:=DLIN*koef IF compon[nn,3]=0 compon[nn,3]=Vis*koef IF Vis=0 compon[nn,3]=90*koef ENDIF ENDIF EXIT ELSE gabar[1]=0 gabar[2]=0 gabar[3]=0 hcomp:=0 dat:=POISK(st0) //поиск данных о новом элементе и занесение его // в базу IF VALTYPE(dat)<>'C' APPEND BLANK REPLACE NAME WITH st0 REPLACE SHIR WITH gabar[1 ]/koef REPLACE DLIN WITH gabar[2]/koef REPLACE VIS WITH hcomp/koef REPLACE X WITH dat[1]/koef REPLACE Y WITH dat[2]/koef gabar[1]:=SHIR*koef gabar[2]:=DLIN*koef IF compon[nn,3]=0 compon[nn,3]=Vis*koef ENDIF ELSE EXIT ENDIF ENDIF ENDDO ROT(X*koef,Y*koef,gabar[1],gabar[2],nn) RETURN gabar //**************************************************** FUNCTION ROT(a,b,shc,dlc,L)//функция учитывающая поворот элемента относительно оси и производящая соответствующий пересчет его координат IF com pon[L,6]=0 //учет поворота элемента IF compon[L,2]='bot' compon[L,4]=compon[L,4]+shc-a compon[L,5]=compon[L,5]-b ELSE compon[L,4]=compon[L,4]+a compon[L,5]=compon[L,5]-b ENDIF compon[L,7]=shc compon[L,8]=dlc ELSEIF compon[L,6]=1 IF compon[L,2]='bot' compon[L,4]=compon[L,4]+b compon[L,5]=compon[L,5]-a ELSE compon[L,4]=compon[L,4]+b compon[L,5]=compon[L,5]+a-shc ENDIF compon[L,7]=dlc compon[L,8]=shc ELSEIF compon[L,6]=2 IF compon[L,2]='bot' compon[L,4]=compon[L,4]+a com pon[L,5]=compon[L,5]+b-dlc ELSE compon[L,4]=compon[L,4]-a+shc compon[L,5]=compon[L,5]+b-dlc ENDIF compon[L,7]=shc compon[L,8]=dlc ELSEIF compon[L,6]=3 IF compon[L,2]='bot' compon[L,4]=compon[L,4]-b+dlc compon[L,5]=compon[L,5]+a-shc ELSE compon[L,4]=compon[L,4]-b+dlc compon[L,5]=compon[L,5]-a ENDIF compon[L,7]=dlc compon[L,8]=shc ENDIF RETURN //**************************************************** //Функция которая последовательно считывает pdf- файл кусками по 65000 байт (т.е . после анализа 1-го куска в 65000 байт считывается следующий и т.д. FUNCTION READF() //чтение куска файла 65000 с текущей позиции PRIVATE bait:=CHR(10),seek,contr,sost:=' ',buf bufer=SPACE(65001) contr:=FREAD(desc,@bufer,65000) IF contr<65000 sost='end' I F lastseek<65000 PROCENT() ENDIF ELSE sost='noend' buf=RIGHT(bufer,1000) seek=64000+RAT(bait,buf) bufer:=LEFT(bufer,seek) lastseek:=FSEEK(desc,-(65000-seek),1) PROCENT() ENDIF RETURN sost //**************************************************** //Функция построчно анализирующая pdf- файл и берущая из него по определенным критериям названия и координаиы элементов FUNCTION SEAR() PRIVATE filesost,c1,c2,c3,c4,namecomp,ends:=0 @ 5,0 SAY 'Анализ файла :' SETPOS(8,0) FOR contin:=1 TO 2 //пойск конт ура платы contin=2 filesost=READF() //загрузить первые 65000 pdf- файла IF AT('COMP_DEF ',bufer)<>0 ends=1 ENDIF c0=AT(' ANNOTATE',bufer) IF c0<>0 bufer:=LTRIM(RIGHT(bufer,LEN(bufer)-(c0+5))) FOR kol=1 TO 2 //поиск между ANNOTATE и COMP_DEF kol=2 c0=AT('[Ly "KONTUR"]',bufer) IF c0<>0 bufer:=LTRIM(RIGHT(bufer,LEN(bufer)-(c0+5))) FOR kol1=1 TO 2 kol1=2 c0:=AT(' R ',bufer) ver:=AT('[Ly "',bufer) IF ver=0 ver:=66000 ENDIF IF c0=0 IF AT('COMP_DEF ',bufer)<>0 ends=1 ELSEIF AT('Ly "',bufer)<>0 ends=1 ELSE IF filesost<>'end' filesost=READF() kol1=1 ENDIF ENDIF ELSEIF c0>ver ends=1 ELSE kont=ALLTRIM(STROKA(c0+3)) ends=1 verkont=1 //переменная наличия контура DISPOUT('Найден контур платы ','b/gb') koll:=SKO NT(kont) FOR kk:=1 TO LEN(koll) AADD(kontur,( nil )) kontur[kk]=koll[kk] NEXT ENDIF NEXT ELSE c1=AT(' COMP_DEF ',bufer) IF c1<>0 ends=1 ELSEIF ends=1 ends=1 ELSE IF filesost<>'end' filesost=READF() kol=1 ENDIF ENDIF ENDIF NEXT ENDIF IF filesost='end' IF AT(' COMP_DEF ',bufer)=0 ends=1 ENDIF ELSEIF ends=0 contin=1 ENDIF NEXT IF verkont=0 DISPOUT('Контур платы не обнаружен ','r/gb') ENDIF private endc2,contin,powtor,slovo namecomp:='not found' c1=AT(' COMP_DEF ',bufer) IF c1<>0 //поиск имени prt в bufer slovo:=STROKA(c1) namecomp=ALLTRIM(SUBSTR(slovo,11,15)) bufer:=LTRIM(RIGHT(bufer,LEN(bufer)-(c1+11))) ENDIF FOR contin:=1 TO 2 IF SHELK()=1 FINDCOMP() ENDIF c1=AT(' COMP_DEF ',bufer) IF c1<>0 //поиск имени pr t в оставшемся buferе slovo=STROKA(c1) namecomp=ALLTRIM(SUBSTR(slovo,11,15)) bufer:=LTRIM(RIGHT(bufer,LEN(bufer)-(c1+10))) contin=1 ELSE IF filesost<>'end' filesost=READF() contin=1 ELSE contin=2 ENDIF ENDIF NEXT PROCENT() setpos(maxrow(),20) dispout('OK. Анализ файла завершен .','g+/gb') inkey(3) tmz:=INSERTCOMP() RETURN tmz //**************************************************** FUNCTION STROKA(nomer) //выдел.подстроки из переменной //bufer,с указанной позиции (nomer ) PRIVATE txt,pos //до конца строки (символа CHR10) txt:=RIGHT(bufer,LEN(bufer)+1-nomer) pos=AT(CHR(10),txt) txt=ALLTRIM(LEFT(txt,pos-2)) RETURN txt //**************************************************** FUNCTION PROCENT() //функция построения процен тной линии PRIVATE laststr,laststolb laststr:=ROW() laststolb:=COL() pnow=pnow+1 oldcol:=SETCOLOR() IF pnow=1 str:=5 stolb:=15 parts:=ROUND(filelen/65000,0) IF parts<2 parts=parts+1 ENDIF procen:=ROUND(90/parts,0) znak:=ROUND(45/parts,0) stcolor :=setcolor('R+/gb') mstolb:=stolb+49 WHILE stolb65 EXIT ENDIF SETCOLOR('b/gb') ??'-' stolb=stolb+1 SETPOS(4,57) SETCOLOR('B/gb') ??((stolb-15)*2) ??'% ' SETPOS(str,stolb) NEXT SETPOS(laststr,laststolb) SETCOLOR(oldcol) RETURN //**************************************************** FUNCTION SKONT(st0) //выделение координат контура (если он //обнаружен ) PRIVATE rez[0] nom:=0 FOR k=1 to 2 p1:=AT(' ',st0) IF p1=0 p1=AT(' ',st0) k=2 ELSE k=1 ENDIF nom:=nom+1 AADD(rez,( nil )) rez[nom]=SUBSTR(st0,0,p1-1) rez[nom]=(VAL(rez[nom])*koef) st0=ALLTRIM(SUBSTR(st0,p1,60)) NEXT RETURN rez //**************************************************** FUNCTION SHELK(max) //проверка компонента на слой шелкографии false:=0 FOR proo:=1 TO 2 proo=2 n1:=AT ('[Ly "SLK',bufer) n2=AT(' I '+namecomp,bufer) n3=AT('COMP_DEF ',bufer) IF n3=0 n3=65500 ENDIF IF n2=0 n2=n3 ENDIF IF n1<>0 IF n1'end' filesost=READF() proo=1 ENDIF ENDIF ENDIF NEXT RETURN false //**************************************************** FUNCTION FINDCOMP() // поиск компонента с именем 'namecomp' FOR kol:=1 TO 2 kol=2 c2=AT(' I ',bufer) //поиск I 'имя prt' c1=AT (' COMP_DEF ',bufer) IF c2<>0 .AND. c1<>0 .AND. c2>c1 c2=0 ENDIF IF c2<>0 kol=1 //после конца процедуры повторить поиск с тем -//же именем nomcomp=nomcomp+1 ?'Количство элементов на плате :',ALLTRIM(STR(nomcomp)),' ' setpos(row()-1,Col()) AADD(compon, NIL,NIL,NIL,0,0,NIL,0,0,NIL ) //увеличение массива на один элемент slovo:=STROKA(c2) st0:=ALLTRIM(slovo) st1:=AT('.',st0) compon[nomcomp,1]=ALLTRIM(SUBSTR(st0,4,st1-4)) //выделение названия компонента st1:=RAT(' ',slovo) compon[nomcomp, 9]:=(SUBSTR(st0,st1+1,30)) compon[nomcomp,6]:=0 compon[nomcomp,3]:=0 compon[nomcomp,2]='top' bufer:=LTRIM(RIGHT(bufer,LEN(bufer)-(c2+3))) //отброс передней части буфера FOR powtor:=1 TO 2 powtor=2 c2=AT(' I ',bufer) //определ.поз.следующ.компон. c3 =AT(' Ps "B"',bufer) c4=AT(' Pl ',bufer) c1=AT(' COMP_DEF ',bufer) //определ.след.названия IF c1=0 c1=66000 ENDIF c5=AT(' Ro' ,bufer) c6=AT(' At H ' ,bufer) IF c2<>0 .AND. c1<>0 .AND. c20 //определения конца области endc2 =c1 //поиска в пределах текущего ELSE //компонента endc2=65001 ENDIF IF c3<>0 //определ.стороны IF c30 //определ.стороны IF c50 //определ.стороны IF c60 опр.атриб.комп,если он расположен IF c4'end' не наидены и до конца буфера filesost=READF() не встреча ется I , COMP_DEF, тогда powtor=1 подгрузить след . буфер и искать ELSE в нем powtor=2 если буфер последний то идти дальше ENDIF ENDIF ENDIF NEXT ENDIF NEXT повторный поиск комп . в оставш . буфере с тем-же именем RETURN //******************** ******************************** FUNCTION POISK(name) поиск данных о новом элементе PRIVATE razmx:= ,razmy:= ,st_org:=' ',st_razm:=' ',x:=0,y:=0,tp CLS fclose(desc) pnow=0 setpos(0,0) ??'Поиск данных на элемент ',name,'...' str=4 stolb=15 desc:=FOPEN('P DF\'+alltrim(name)+'.pdf') IF FERROR()<>0 ??'не найдены ' IF ASCAN(errfile,name+'.pdf')=0 AADD(errfile,name+'.pdf') ENDIF fclose(desc) RETURN 'no' ENDIF FOR cont:=1 to 2 cont=2 IF READF()='end' cont=2 ELSE cont=1 ENDIF c1=AT(' Org ',bufer) IF c1<>0 st_org:=STROKA(c1+5)+' ' ENDIF c1=AT(' At H ',bufer) IF c1<>0 tm1:=(STROKA(c1+6)+' ') ttt:=SKONT(tm1) hcomp:=ttt[1] ENDIF POISKRAZM(@x,@y) NEXT PROCENT() st_org:=SKONT(st_org) координаты org ASORT(razmx) ASORT(razmy) IF len(razmx)<1 razmx:= 0 ENDIF IF len(razmy)<1 razmy:= 0 ENDIF gabar[1]=ABS(razmx[LEN(razmx)]-razmx[1]) gabar[2]=ABS(razmy[LEN(razmy)]-razmy[1]) st_org[1]:=razmx[LEN(razmx)]-st_org[1] st_org[2]:=st_org[2]-razmy[1] ??'найдены ' fclose(desc) PROCE NT() RETURN st_org возвращает коорд . точки привязки FUNCTION POISKRAZM(x,y) private mpoisk:= 65000,'L' , 65000,'R' , 65000,'C' mpoisk[1,1]=AT(' L ',bufer) поиск на графическом слое линий (L),прямо- угольников (R),кругов (C) mpoisk[2,1]=AT(' R ',bufer) mpoisk[3,1]=AT(' C ',bufer) cc:=0 For pk:=1 to len(mpoisk) IF mpoisk[pk,1]=0 mpoisk[pk,1]=65000 ENDIF Next ASORT(mpoisk,,, |px,py| px[1]65000 .AND. mpoisk[1,2] <>'C' st_razm:=ALLTRIM(STROKA(cc+3))+' ' bufer:=SUBSTR(bufer,cc+3,65000) mas:=SKONT(st_razm) FOR k:=1 TO LEN(mas)-1 STEP 2 выборка координат по Х x=x+1 AADD(razmx,0) razmx[x]:=mas[k] IF LEN(razmx)>20 ASORT(razmx) min1:=razmx[1] max2:=razmx[LEN(razmx)] razmx= min1,max2 x=2 ENDIF NEXT FOR k:=2 TO LEN(mas) STEP 2 выборка координат по Y y=y+1 AADD(razmy,0) razmy[y]:=mas[k] IF LEN(razmy)>20 ASORT(razmy) min1:=razmy[1] max2:=razmy[LEN(razmy)] razmy= min1,max2 y=2 E NDIF NEXT POISKRAZM(@x,@y) ELSEIF cc<>65000 .AND. mpoisk[1,2]='C' st_razm:=ALLTRIM(STROKA(cc+3))+' ' bufer:=SUBSTR(bufer,cc+3,65000) mas:=SKONT(st_razm) IF len(mas)=3 st_tmp:=SKONT(st_org) координаты org AADD(razmx,st_tmp[1]+(mas[1]+mas[3]/2)) AADD(razmy,st_tmp[2]+(mas[2]+mas[3]/2)) AADD(razmx,st_tmp[1]+mas[1]-mas[3]/2) AADD(razmy,st_tmp[2]+mas[2]-mas[3]/2) ENDIF POISKRAZM(@x,@y) ENDIF RETURN //**************************************************** 5.Файл specif.prg содержит в себе текс т подпрограммы , создающей перечень всех элементов , содержащихся на анализируемой плате , в виде стандартного dbf файла с именем xxxxx.dbf, где ххххх — имя pfd файла PCAD-а. //*************************************************************** FUNCTION CreatSpe c() PRIVATE struct1 [4,4],nom, ns1:='name',ns2:='oboz',ns3:='kol',ns4:='con' struct1[1,1]=ns1 struct1[1,2]="C" struct1[1,3]=20 struct1[1,4]=0 struct1[2,1]=ns2 struct1[2,2]="C" struct1[2,3]=25 struct1[2,4]=0 struct1[3,1]=ns3 struct1[3,2]="C" struct1[3,3]=6 struct1[3,4]=0 struct1[4,1]=ns4 struct1[4,2]="C" struct1[4,3]=10 struct1[4,4]=0 public nameper:='' nameper:=alltrim(left(fname,at('.',fname)-1))+'.dbf' DBCREATE(nameper,struct1) // USE //***************************************** ********************** append blank FOR naz=1 to len(snaz) REPLACE &ns1 WITH snaz[naz,1] nzap:=recno() kolv:=0 / strsp:='' FOR nom=1 TO len(compon) vrem:=compon[nom,9] IF vrem<>nil aaa:=posalpha(vrem,.T.) pvr:=alltrim(left(vrem,aaa-1)) set exact on IF (ascan(soboz[naz],pvr)>0); .OR.(naz=len(snaz) .AND. ascan(soboz, |x| ascan(x,pvr)>0 )=0) kolv=kolv+1 IF (len(alltrim(&ns2))+len(vrem)+1)<25 vrstr:=alltrim(&ns2)+vrem+',' REPLACE &ns2 WITH vrstr ELSE APPEND BLANK vrstr:=alltrim(&ns2 )+vrem+',' replace &ns2 with vrstr ENDIF ENDIF set exact off ENDIF NEXT IF kolv>0 vrstr=left(vrstr,len(vrstr)-1) replace &ns2 with vrstr goto nzap replace &ns3 with alltrim(STR(kolv)) APPEND BLANK APPEND BLANK ELSE REPLACE &ns1 WITH '' ENDIF NEXT USE RETURN Функционирование разработанной программы было проверено на реальном изделии (4 платы в изделии ). Задание : Эргономичность диалогового взаимодействия. Введение. Эргономика представляет собой научную дисциплину , комплексно изучаю щую человека в конкретных условиях его деятельности . Возникшая на стыке общественных , технических и естественных наук , она является одновременно и проектной , и научной дисциплиной . Эргономика , используя фундаментальные знания наук о человеке адаптирует их к практическому применению в проектировании . В последние годы активно разрабатываются собственные методологические принципы , методы и процедуры исследований . Объектом исследований является система человек - машина-среда . Рассматривая человека , машину и сре д у в конкретных условиях их взаимодействие как сложное функциональное целое с ведущей ролью человека , специалисты по эргономике разрабатывают методы учета человеческого фактора при проектировании и создании техники , критерии оптимизации систем и человеческ о й деятельности . Эргономичность диалогового взаимодействия. Опорным моментом , организующим всю систему психологических процессов и состояний , включенных в деятельность , является цель деятельности . Она определяет характер селекции информации в восприятии, в процессах памяти , внимания и т.д . Из далеко не полностью описанных психологических характеристик и св-в человека следует , что психические процессы в каждых конкретных условиях протекают специфическим образом , они изменчивы и вариативны по своей природ е , и поэтому их необходимо рассматривать в рамках системного подхода как процессы сложные , динамические и многоуровневые. Психологическое изучение информационного взаимодействия человека с видеотерминалами только начинаемся . Наряду с такими традиционными п роблемами , как изучение особенностей восприятия человеком информации возникает и ряд новых проблем : особенности использования различных языков обмена информацией , способы их построения , организация диалога и т.п. Диалог признается перспективной формой взаи модействия человека с терминалом , где взаимодействие представляет собой двухсторонний обмен информацией в виде команд , просьб , вопросов - ответов и сообщений различных видов . Обмен сообщениями происходит на языке , который можно варьировать от сложного язык а программирования до простого языка команд. Языков программирования и их диалектов насчитывается по крайней мере несколько сотен , но только несколько десятков из них имеют широкое распространение . У каждого языка есть свои грамматика и синтаксис , собственн ая манера выражения понятий . Практика показывает что определенную вычислительную задачу на одном языке написать гораздо проще , чем на другом . Отсюда и выбор языка программирования должен определяться целями его предполагаемого применения. Языки , используем ые на дисплее , часто применяют в кодированном или сокращенном варианте , и в отличии от естественного языка они не обладают избыточностью . По этой причине пропуск , замена , или забывание кодов приводят к ошибкам в работе . Кроме того следует учесть , что неоп ы тным операторам к различным сообщениям необходимы объяснения . Структура диалога является одним из факторов , обуславливающих эффективность взаимодействия с дисплеем . Она должна быть различной , для разных видов пользователя . Одним из подходов к конструирова н ию диалогового языка , при котором языковые средства удовлетворяют требования опытного и неопытного пользователей , считается следующий : пользователь должен иметь возможность для выбора предела любого соотношения от ЭВМ , т.е . возможность получать дополнител ь ные сообщения , когда ему это необходимо . Чем проще язык диалога , чем меньше его приходиться изучать новичку , чем удобнее его применять , тем шире круг пользователей. Другим фактором , определяющим эффективность взаимодействия , является время срабатывания сис темы , т.е . время ответа на запросы или команды пользователя . По мнению Р . Миллера время ожидания в режиме диалога не должно превышать 2с . Но эта рекомендация не универсальна , т.к . в зависимости от разных систем и функций необходимое время ответа может быт ь разным . При чтении информации с экрана с “перелистыванием” время смены страниц должно быть не более одной секунды , чтобы не нарушать непрерывность мысленного процесса . Для переключения внимания с клавиатуры на экран необходимо около 1.5 с , поэтому 2-х се к ундная задержка ответа при вводе с клавиатуры нормальна. Эффективность диалога зависит и от соответствующих устройств ввода - вывода информации . Разработка таких устройств должна основываться на результатах экспериментальных исследований не только аппаратн ых , но и программных средств , ибо именно совокупность программных и аппаратных средств является функционально завершенными средствами деятельности пользователя. На основе экспериментальных данных выдвигаются следующие психологические требования и рекоменда ции к дисплею. Психологические требования предъявляются к знаковой информации , выводимой на дисплей , и направлены на оптимизацию ее представления с позиций оптимизации кодирования , значимости и смысловой нагрузки сообщения , обеспечения максимальной скорост и переработки информации при максимальной надежности ее понимания , оптимизация структурного представления текстовых и графических сообщений , правильной организации диалога с учетом свойств восприятия , памяти и мышления человека. Скорость передачи информа ции человеку должна не превышать его пропускной способности и быть достаточной для поддержания преобразования поступающей информации. Максимальный объем информации , отображаемой на экране , должен определяться скоростью опознания и интерпретации предъявля емых сигналов , а также временем их восприятия . Если объем информации превышает возможности человека , ее следует передавать порциями . Каждая порция должна быть равна оперативной памяти оператора , а интервалы должны быть достаточными для преобразования пост у пающей информации. Чтобы не перегружать оперативную память человека-оператора следует исключить : · одновременный учет трех-четырех различных значений текущих параметров при операциях обслуживания ; · сопоставление в уме более трех логических условий ; · вычисления или перевод в уме с той или иной величины в другие единицы или системы отсчета ; · дополнительное перекодирование предъявляемой информации. Требования предъявляемые к сообщению. Сообщение должно содержать лишь те элементы , которые играют сущес твенную роль в выполнении задач , поставленных перед оператором. В сообщении необходимо выделять каким-либо способом (цветом , размером ) те элементы , которые наиболее важны для контроля и управления системой . Каждая часть сообщения , соответствующая автоно мно управляемому объекту , должна иметь четкую , легко воспринимающуюся структуру , отличную от других и отражающую особенности этого объекта . Структурированные данные в виде групп обеспечивают более точное и быстрое их обнаружение и опознание. При кодирован ии сообщений следует использовать простые и привычные ассоциации , сложившиеся между знаками и обозначаемыми объектами. Каждый из признаков сообщения должен находиться во взаимооднозначном соответствии с кодируемыми характеристиками объекта. Для каждого т ипа задач требуется адекватная система знаков . При большой нагрузке на оперативную память эффективнее буквенно-цифровое кодирование . Цветом лучше кодировать местоположение стимула . Мелькание служит для привлечения внимания оператора к определенным парамет р ам , у которых изменилось состояние , или которые требуют выполнения определенных действий . Обычно используют не более двух частот вспышек на одном дисплее . Выделение отдельных областей на графиках можно закодировать штриховкой , полутонами , цветом . Отдельны е графические объекты могут быть выделены толщиной линий. Способы кодирования довольно разнообразны и каждый из них должен быть рассмотрен исходя из всех особенностей конкретной ситуации. Текст - широко распространенный способ передачи информации . Скорост ь и точность его восприятия зависят от характеристик букв , интервалов между ними и словами , от длины строк и интервалов между строками . При выборе начертания букв следует учитывать различимость не только каждой из них , но и алфавита в целом . Шрифт должен быть экономичным , простым и понятным . Для каждого шрифта существует определенная оптимальная длина строки . Слишком длинную строку трудно удержать в поле зрения и порой нелегко найти начало следующей строки . При чтении же коротких строк иногда трудно улови т ь смысл текста , разбитого на мелкие части . Удобнее для чтения такая длина строки , когда фиксация ее центра позволяет периферическим зрением охватить всю строку. Пробелы между буквами следует устанавливать с учетом формы соседних знаков , размера , плотности и насыщенности шрифта . Зрительно одинаковые пробелы между буквами и словами дают возможность читателю сохранять определенный ритм чтения , с увеличением межстрочных пробелов улучшается читаемость включенных в текст формул. Логограммы должны быть краткими , н о достаточно понятными , благозвучными , не вызывать нежелательных ассоциаций , легко усваиваться , запоминаться и читаться. Выбор формата текста на экране диктуется размерами экрана . Точность и скорость считывания буквенно - цифровых знаков существенно не меня ются при изменении преобладании ширины над высотой формата и наоборот. Понимание содержания текста зависит от того , насколько оператор владеет языком и той областью знаний к которой относится воспринимаемый текст. График — графическое изображение функцион альных зависимостей . Способ отображения функциональной зависимости ломаной линией лучше по скорости и точности передачи информации по сравнению с графиками в виде вертикальных и горизонтальных столбцов . Когда необходимо сравнить несколько функций , то целе с ообразнее прибегнуть к многолинейному графику , т.е . на одном графике отражать несколько функциональных зависимостей (но не более 4-х ) , чем использовать несколько однолинейных графиков. На многолинейном графике необходимо ввести различительные признаки лин ий для безошибочного их восприятия . Различием линий по толщине и тону пользуются для акцентирования одной кривой из семейства однородных кривых . Чаще всего применяется различное начертание линий . Линии на графике , с нанесенными на них крестиками , кружками, квадратами , и треугольниками различить легче , чем линии с внутренней структурой или составленные из однородных элементов (штрихов , точек и т.д .). Точность определения требуемых величин повышается при нанесении на график координатной сетки . Линии , образующ ие координатную сетку должны отличаться от линий графика толщиной , цветом или типом. Таблицы — как способ представления информации на дисплее используются в тех случаях , когда имеется достаточное пространство и не требуется интерполяции данных . Хотя скоро сть передачи информации графиками выше , чем таблицами , но когда важна точность , эффективнее использовать таблицы. Скорость и точность считывания табличных данных зависят от их пространственной организации . Столбцы цифровой информации целесообразно разделят ь между собой вертикальными линиями , причем толщина линий не должна превышать толщину штрихов цифр . Дополнительное кодирование (цветом , размером , яркостью ) повышает эффективность счета и сравнения величин. Если сложная инструкция описательного вида (слова, фразы ) переводится в форму таблицы , то она должна изображаться согласно логической последовательности действий и исключать необходимость в добавочных арифметических действиях. Диалог — непосредственный и оперативный обмен сообщениями - требует развитых с редств коммуникации . Выбор вида диалога должен обосновываться характером и типом решаемых задач и квалификацией пользователя. Процедура диалога должна предусматривать удобство приема информации , содержать минимальное число шагов и этапов , минимизировать по грешности и отказы , обеспечивать легкое вхождение пользователя во все существенные этапы диалога , включать автоматическую переработку большей части информации . Для успешного диалога необходимо знать используемый язык . Сообщения и ответы должны иметь четку ю и однозначную форму , чтобы не вызывать разночтений. Временная функция взаимодействия должна соответствовать времени срабатывания всей системы в целом , выбранной форме и организации диалога и согласовываться с временными характеристиками обработки информац ии человеком. Организация диалогового режима должна быть гибкой и обеспечивать многократный доступ к отдельным частям программы , а также систему подачи сообщений об ошибках . Организация данных на экране дисплея должна предусматривать возможность зонировани я экрана , изменение масштаба изображения , поворот и сдвиг изображения , изменение положения начала координат и т.п. Работу человека в диалоговом режиме необходимо организовывать так , чтобы сохранить его активность при управлении ходом решения задач , предост авлять ему определенную степень свободы при выборе того или иного способа выполнения задания , формы представления данных , автоматизировать рутинные компоненты деятельности , т.е . сделать работу человека по возможности многосторонней и творческой. Эргономич ность интерфейса разработанной программы. Учитывая важность эргономичной организации диалога пользователя с дисплеем интерфейс предлагаемой программы разрабатывался с учетом всех выше описанных требований и рекомендаций . Несмотря на то , что обращение с пр ограммой не требует от пользователя большого опыта и больших умственных усилий ее внешний вид и организация диалога сделана для обеспечения наибольшего удобства и комфорта . Так , пункты меню предлагаются пользователю в виде объемных кнопок и при выборе одн ого из них на экране происходит нажатие соответствующей кнопки . Это вызывает ассоциации работы с обычным кнопочным прибором и поэтому не отнимает времени пользователя на то , чтобы разбираться в организации меню . Несмотря на технические трудности (язык , на котором написана программа не предусматривает русского алфавита ) весь ход выполнения программы сопровождается сообщениями и пояснениями на русском языке , выраженными в краткой и понятной форме . Из программы исключены все сокращения (в названиях пунктов м е ню и сообщениях ), которые могут ввести пользователя в заблуждение , приложены все старания для придания диалогу предельно понятной и краткой формы . В программе действует “защита” от неопытного пользователя , т.е . когда пользователю предлагается ввести какую -либо информацию или ответить на вопрос , то это организовано так , что ввод данных в неверной форме просто не возможен . Например при запросе ввода даты не работают никакие клавиши , кроме цифровых , и при вводе числа месяца не воспринимаются числа больше две н адцати . При подборе цветовой палитры учитывалось , что пункты меню и строки сообщений должны не только ярко выделяться на фоне рабочего поля , но и не перегружать зрение пользователя чрезмерной контрастностью. Ниже предлагается один из видов рабочего поля предлагаемой программы. Итак , учитывая все вышесказанное , можно сделать вывод , что разработанная программа удовлетворяет всем требованиям организации эргономичного диалога ме жду пользователем и машиной , и можно надеяться , что работа с ней принесет удовольствие пользователю.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
- Володя, говорят, у тебя накопился уже очень большой капитал! Несколько десятков миллиардов! Володя, я тоже себе столько миллиардов хочу!
- Димон, как говорится, в большой стране - клювом не щёлкай!
- Но, Володя, у меня нет клюва...
- А у меня, Димон, уже есть! )) И дельтаплан, чтобы потом свалить отсюда...
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Разработка программного обеспечения", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru