Программирование и комп-ры

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

                                  Введение.

        Темой   предлагаемого   дипломного   проекта   является   разработка
программного обеспечения для передачи результатов проектирования по  СМП  ПП
на разработку конструкционных решений деталей и остнастки.
      В проекте предлагается программное обеспечение  p-flex,  разработанное
для интеграции пакетов PCAD и T-FLEX для СМП.
      Одним из недостатков PCAD-a является  то,  что  он  представляет  лишь
плоский (двухмерный) вид ПП. Для разработчиков  детелей  остнастки  зачастую
бывает необходимо знать объемные размеры ПП, т.к. от  них  напрямую  зависят
конфигурация и габариты проектируемого  изделия.  Разработанное  программное
обеспечение значительно облегчает контроль соответствия размеров,  т.к.  она
полностью автоматизирует процесс передачи габаритов ПП (с  учетом  высоты!!!
т.е. в трехмерном виде) из системы PCAD прямо в систему  разработки  деталей
остнастки  --   T-FLEX.   Разработчику   нужно   лишь   вставить   фрагмент,
изображающий плату, предварительно подготовленный  разработанной  программой
p-flex, прямо в свой сборочный чертеж T-FLEXа на предназначенное ей место  и
визуально   проконтролировать   соответствие    размеров.    Заметим,    что
использование предлагаемого ПО освобождает  разработчика  деталей  остнастки
от  использования  PCAD  (тогда,  как   раньше   ему   приходилось   вручную
анализировать ПП в PCADе и исходя из ее размеров строить свою работу).
      Помимо передачи габаритных параметров  между  системами,  предлагаемое
ПО помогает осуществлять контроль по КД, т.к. способна, по стандартному pdf-
файлу системы PCAD, создать полный перечень элементов, содержащихся  на  ПП,
по необходимой форме и поместить его  в  файл  .dbf   в  виде  базы  данных.
Электронный вид и форма перечня элементов позволяют легко  использовать  его
для формирования текстовой конструкторской документации.
       Кроме  своего   главного   назначения   разработанное   ПО   помогает
продемонстрировать возможности системы T-FLEX  как  параметрической  системы
проектирования нового поколения, и показать ее  преимущеста  в  сравнении  с
AutoCADом.



                Краткое описание маршрута проектирования ПП.



      Ниже  предлагается   описание   сквозного    маршрута   проектирования
печатных плат (СМП ПП) от схемы электрической  принципиальной   до    выхода
на  технологическое  оборудование  с  использованием   системы   PCAD4.5   :
структура маршрута и программное обеспечение.
     Дается основная последовательность действий  пользователя  в   процессе
сквозного  проектирования   РЭУ  для  двуслойных и  многослойных   субблоков
с  двухсторонней  установкой  элементов штырьевых и планарных.
     Отметим, что в СМП   ПП   не  рассматриваются   задачи,   связанные   с
логическим моделированием принципиальных электрических схем.

                             1. ОБЩИЕ  ПОЛОЖЕНИЯ.

             1.1 ОСНОВНЫЕ  ХАРАКТЕРИСТИКИ сквозного маршрута проектирования
                                     ПП.

         Программное обеспечение сквозного маршрута проектирования  печатных
  плат   (ПО   СМП   ПП)   является   интегрированным    набором   проблемно
ориентированных   программных   пакетов,    работающих     в   интерактивном
режиме. Средства системы PCAD  (предполагается  возможность    использования
пакетов     от   версии   4.5)   позволяют   проектировать    принципиальные
электрические    схемы,   двуслойные   и   многослойные   печатные    платы.
Программные средства,  включенные   в  маршрут,   позволяют   получать,   по
информации спроектированной в системе  PCAD,   конструкторскую  документацию
(система  «Восток»   -  для   текстовой    и   PCAD  -  для    графической),
подготавливать  и контролировать входную  информацию   для  пакета  программ
выхода на технологическое оборудование (пакет программирования   управляющей
информации для маршрута).
      Наличие большого числа   взаимосвязанных  пакетов  и   их  баз  данных
обеспечивает сквозное проектирование РЭУ.
      Результаты проектирования ПП можно передать в  T-Flex  CAD,  полностью
параметрическую (в отличии от других) систему проектирования для  дальнейшей
разработки деталей и остнастки, выработки конструкционных решений,  а  также
контроля на соответсвие габаритов ПП и элементов конструкции.

         ПО СМП ПП состоит из нескольких пакетов программ и  их  баз  данных
связанных в единую базу данных проектируемого изделия, что позволяет  свести
к  минимому   ввод  исходной  информации  и  избежать  повторного    задания
параметров  проекта,  тем  самым  сокращает  количество   возможных   ошибок
при   вводе   исходных  данных,  время  проектирования   изделия    и    его
стоимость, обеспечивает качество разработок.
          Программное  обеспечение  сквозного  маршрута  проектирования   ПП
функционирует в среде  MS-DOS на персональных  компьютерах   IBM  PC/AT  или
PC/XT,  с  объемом  памяти  640кб,  а  также  на  других   ПЭВМ,   полностью
совместимых с указанными.
 Для работы системы требуются:
           - 10 мбт дисковой памяти на винчестере
           - устройство ввода типа «мышь».

      Программное  обеспечение  системы  позволяет  проектировать   ПП    со
следующими характеристиками и параметрами:
. установка корпусов на плате  - двусторонняя и односторонняя
. тип устанавливаемых корпусов - штырьевые и планарные
. размер платы                 - не более 500х500 мм (60х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  в состав ПО  включен
пакет   программ,   разработанных   в   НИИА  для  обеспечения  выхода    на
технологическое  оборудование,  применяемое  в  НИИА.   Разработанный  пакет
включает в себя программы корректировки, контроля, прорисовок  топологии   и
формирования  управляющей информации  для технологических установок.

                                 ТАБЛИЦА  1.
 ------T---------T---------------------T-------T---------T--------¬
 ¦ N   ¦ Название¦     Назначение      ¦Входные¦ Выходные¦ Входит ¦
 ¦  п/п¦программы¦     программы       ¦ файлы ¦   файлы ¦ в пакет¦
 +-----+---------+---------------------+-------+---------+--------+
 ¦  1. ¦ PCCAPS  ¦ Графический редактор¦ *.SCH ¦  *.SCH  ¦ PCAD   ¦
 ¦     ¦         ¦для создания и редак-¦ *.CMD ¦  *.CMD  ¦        ¦
 ¦     ¦         ¦тирования описания   ¦ *.SYM ¦  *.CM$  ¦        ¦
 ¦     ¦         ¦эл.пр.схем и УГОэл-ов¦       ¦  *.SYM  ¦        ¦
 ¦     ¦         ¦                     ¦       ¦  *.PLT  ¦        ¦
 ¦  2. ¦ PCNODES ¦ Формирует список    ¦ *.SCH ¦  *.NLT  ¦ PCAD   ¦
 ¦     ¦         ¦цепей в специальном  ¦ *.PCB ¦  *.PNL  ¦        ¦
 ¦     ¦         ¦формате программ.    ¦       ¦         ¦        ¦
 ¦  3. ¦ PCLINK  ¦ Объединяет в один   ¦ *.NLT ¦  *.XNL  ¦ PCAD   ¦
 ¦     ¦         ¦список цепей несколько       ¦         ¦        ¦
 ¦     ¦         ¦связанных двоичных   ¦       ¦         ¦        ¦
 ¦     ¦         ¦файлов, полученных   ¦       ¦         ¦        ¦
 ¦     ¦         ¦программой  PCNODES  ¦       ¦         ¦        ¦
 ¦     ¦         ¦при проектировании   ¦       ¦         ¦        ¦
 ¦     ¦         ¦многолистных схем.   ¦       ¦         ¦        ¦
 ¦  4. ¦ PCFORM  ¦Формирует текстовые  ¦ *.NLT ¦  *.WRL  ¦ PCAD   ¦
 ¦     ¦         ¦файлы результатов    ¦ *.XNL ¦  *.MAT  ¦        ¦
 ¦     ¦         ¦работы по проекту,   ¦ *.BNL ¦  *.CMP  ¦        ¦
 ¦     ¦         ¦сформированные       ¦ *.PNL ¦  *.NDE  ¦        ¦
 ¦     ¦         ¦программами PCNODES, ¦ *.PKG ¦  *.PKL  ¦        ¦
 ¦     ¦         ¦   PCLINK и PCPACK.  ¦       ¦         ¦        ¦
 ¦  5. ¦ PCPACK  ¦Создает исходное опи-¦ *.NLT ¦  *.CMD  ¦ PCAD   ¦
 ¦     ¦         ¦сание перечня компо- ¦ *.XNL ¦  *.ERR  ¦        ¦
 ¦     ¦         ¦нентов и списка цепей¦ *.PCB ¦  *.BNL  ¦        ¦
 ¦     ¦         ¦печатной  платы  по  ¦       ¦  *.PNL  ¦        ¦
 ¦     ¦         ¦графическому описанию¦       ¦  *.PKG  ¦        ¦
 ¦     ¦         ¦схемы электрической  ¦       ¦         ¦        ¦
 ¦     ¦         ¦принципиальной.      ¦       ¦         ¦        ¦
 ¦  6. ¦ PCNLT   ¦Программа формирования *.ALT ¦  *.PKG  ¦ PCAD   ¦
 ¦     ¦         ¦компонентов и списка ¦ *.PCB ¦         ¦        ¦
 ¦     ¦         ¦цепей печатной платы ¦ *.PRT ¦         ¦        ¦
 ¦     ¦         ¦по текстовому описа- ¦       ¦         ¦        ¦
 ¦     ¦         ¦нию.                 ¦       ¦         ¦        ¦
 ¦  7. ¦ PCPLACE ¦Графический редактор ¦ *.PKG ¦  *.PKG  ¦ PCAD   ¦
 ¦     ¦         ¦для размещения РЭК   ¦ *.PLC ¦  *.PLC  ¦        ¦
 ¦     ¦         ¦в поле конструктива и¦ *.PCB ¦  *.PCB  ¦        ¦
 ¦     ¦         ¦коррекции размещения.¦       ¦  *.PLR  ¦        ¦
 ¦     ¦         ¦                     ¦       ¦  *.PLT  ¦        ¦
 ¦  8. ¦ PCCARDS ¦ Графический редактор¦ *.PCB ¦  *.PCB  ¦ PCAD   ¦
 ¦     ¦         ¦для создания и редак-¦ *.PRT ¦  *.PRT  ¦        ¦
 ¦     ¦         ¦тирования описания   ¦ *.PS  ¦  *.PS   ¦        ¦
 ¦     ¦         ¦топологии РЭУ и РЭК. ¦ *.SSF ¦  *.PLT  ¦        ¦
 ¦     ¦         ¦                     ¦ *.CMD ¦  *.RPT  ¦        ¦
 ¦     ¦         ¦                     ¦       ¦  *.CMD  ¦        ¦
 L-----+---------+---------------------+-------+---------+---------


 ------T---------T---------------------T-------T---------T--------¬
 ¦ N   ¦ Название¦     Назначение      ¦Входные¦ Выходные¦ Входит ¦
 ¦  п/п¦программы¦     программы       ¦ файлы ¦   файлы ¦ в пакет¦
 +-----+---------+---------------------+-------+---------+--------+
 ¦  9. ¦ PCBACK  ¦Формирует командные  ¦ *.CMD ¦  *.BKA  ¦ PCAD   ¦
 ¦     ¦         ¦файлы для автоматичес- *.RPT ¦  *.LIS  ¦        ¦
 ¦     ¦         ¦кого переименования  ¦       ¦         ¦        ¦
 ¦     ¦         ¦вентилей микросхем на¦       ¦         ¦        ¦
 ¦     ¦         ¦схеме принципиальной ¦       ¦         ¦        ¦
 ¦     ¦         ¦электрической.       ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 10. ¦ PCROUTE ¦Выполняет автоматичес¦ *.CTL ¦  *.PCB  ¦ PCAD   ¦
 ¦     ¦         ¦кую трассировку топо-  *.PLC ¦  *.REP  ¦        ¦
 ¦     ¦         ¦логии РЭУ по заданной¦ *.PCB ¦         ¦        ¦
 ¦     ¦         ¦стратегии и размещению       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 11. ¦ PCDRC   ¦Контроль топологии ПП¦ *.PCB ¦  *.DRC  ¦ PCAD   ¦
 ¦     ¦         ¦по технологическим   ¦       ¦         ¦        ¦
 ¦     ¦         ¦параметрам и списку  ¦       ¦         ¦        ¦
 ¦     ¦         ¦цепей схемы.         ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 12. ¦ PCERC   ¦Программа электричес-¦ *.NLT ¦  *.ERC  ¦ PCAD   ¦
 ¦     ¦         ¦кого контроля списков¦ *.XNL ¦         ¦        ¦
 ¦     ¦         ¦цепей схемы принципи-¦       ¦         ¦        ¦
 ¦     ¦         ¦альной электрической ¦       ¦         ¦        ¦
 ¦     ¦         ¦и топологии печатной ¦       ¦         ¦        ¦
 ¦     ¦         ¦платы.               ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 13. ¦ PCNLC   ¦Программа определения¦ *.NLT ¦  *.NLC  ¦ PCAD   ¦
 ¦     ¦         ¦соответствия между   ¦ *.XNL ¦         ¦        ¦
 ¦     ¦         ¦двумя печатными плата¦ *.PNL ¦         ¦        ¦
 ¦     ¦         ¦ми, или двумя схемами¦ *.BNL ¦         ¦        ¦
 ¦     ¦         ¦электрическими прин-и¦       ¦         ¦        ¦
 ¦     ¦         ¦или  печатной платы и¦       ¦         ¦        ¦
 ¦     ¦         ¦схемой принципиальной¦       ¦         ¦        ¦
 ¦     ¦         ¦электрической.       ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 14. ¦ PLTCONV ¦Проводит коррекцию   ¦ *.PLT ¦  *.PLT  ¦ PCAD   ¦
 ¦     ¦         ¦.PLT файла с заменой ¦       ¦         ¦        ¦
 ¦     ¦         ¦текстовой информации ¦       ¦         ¦        ¦
 ¦     ¦         ¦линейной графикой.   ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 15. ¦ PCPRINT ¦Позволяет выводить   ¦ *.PLT ¦    -    ¦ PCAD   ¦
 ¦     ¦         ¦графическую информа- ¦ *.CFG ¦         ¦        ¦
 ¦     ¦         ¦цию в растровом виде ¦       ¦         ¦        ¦
 ¦     ¦         ¦на печатающее        ¦       ¦         ¦        ¦
 ¦     ¦         ¦устройство.          ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 16. ¦ PCPLOTS ¦Позволяет выводить   ¦ *.PLT ¦    -    ¦ PCAD   ¦
 ¦     ¦         ¦графическую информа- ¦ *.APR ¦         ¦        ¦
 ¦     ¦         ¦цию на графопострои- ¦ *.CFG ¦         ¦        ¦
 ¦     ¦         ¦тель.                ¦       ¦         ¦        ¦
 L-----+---------+---------------------+-------+---------+---------


 ------T---------T---------------------T-------T---------T--------¬
 ¦ N   ¦ Название¦     Назначение      ¦Входные¦ Выходные¦ Входит ¦
 ¦  п/п¦программы¦     программы       ¦ файлы ¦   файлы ¦ в пакет¦
 +-----+---------+---------------------+-------+---------+--------+
 ¦ 17. ¦ PCDRILL ¦Позволяет формировать¦ *.PCB ¦  *.DRL  ¦ PCAD   ¦
 ¦     ¦         ¦информацию для сверле¦PCDRILL¦  *.MFG  ¦        ¦
 ¦     ¦         ¦ния по номерам PINов ¦  .TBL ¦         ¦ .TBL   ¦
 ¦     ¦         ¦в кодах станка       ¦ *.CFG ¦         ¦        ¦
 ¦     ¦         ¦Excellon             ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 18. ¦ PLTDEL4 ¦Проводит коррекцию - ¦ *.PLT ¦  *.PLT  ¦ СМП ПП ¦
 ¦     ¦         ¦удаляет вспышки или  ¦       ¦PLTDEL   ¦        ¦
 ¦     ¦         ¦окружности не связан-¦       ¦     .LOG¦        ¦
 ¦     ¦         ¦ные  с проводниками. ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 19. ¦ PLTPR   ¦Проводит контроль PLT¦ *.PLT ¦  *.LOG  ¦ СМП ПП ¦
 ¦     ¦\PLTPRM  ¦информации, образует ¦       ¦         ¦        ¦
 ¦     ¦         ¦текстовый файл.      ¦       ¦         ¦        ¦
 ¦     ¦         ¦Определяет площадь   ¦       ¦         ¦        ¦
 ¦     ¦         ¦металлизации.        ¦       ¦         ¦        ¦
 ¦     ¦         ¦                     ¦       ¦         ¦        ¦
 ¦ 20. ¦ PLT-VID ¦Проводит контроль PLT¦ *.PLT ¦ PLT-VID ¦ СМП ПП ¦
 ¦     ¦\PLT-LVID¦информации с выводом ¦ *.APP ¦    .LOG ¦        ¦
 ¦     ¦         ¦на экран изображения ¦ *.APM ¦         ¦        ¦
 ¦     ¦         ¦с учетом набора масок¦       ¦         ¦        ¦
 ¦     ¦         ¦для вспыщек. Проводит¦       ¦         ¦        ¦
 ¦     ¦         ¦замену текста линеями¦       ¦         ¦        ¦
 ¦     ¦         ¦нулевой толщины.     ¦       ¦         ¦        ¦
 L-----+---------+---------------------+-------+---------+---------
В результате проектирования  печатных плат системой  PCAD на диске
образуются рабочие файлы проекта, имеющие предусмотренные в системе
стандартные расширения. Типы рабочих файлов определены в таблице 2.
                     ТАБЛИЦА  2      Список типов файлов
 -------T----------T------------------------T--------------------¬
 ¦ N    ¦Расширение¦    Назначение          ¦ Наименование       ¦
 ¦   п/п¦          ¦                        ¦  программы,        ¦
 ¦      ¦          ¦                        ¦которая создает файл¦
 +------+----------+------------------------+--------------------+
 ¦  1.  ¦ *.ALT    ¦ Описание списка цепей  ¦Создается пользова- ¦
 ¦      ¦          ¦ в текстовом виде.      ¦телем               ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  2.  ¦ *.APR    ¦ Список апертур для     ¦ PCPLOTS, PCPHOTO   ¦
 ¦      ¦          ¦ графопостроителя.      ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  3.  ¦ *.BKA    ¦ Командный  файл для    ¦    PCBACK          ¦
 ¦      ¦          ¦ автоматического        ¦                    ¦
 ¦      ¦          ¦ переименования вентилей¦                    ¦
 ¦      ¦          ¦ микросхем на схеме     ¦                    ¦
 ¦      ¦          ¦ принципиальной         ¦                    ¦
 ¦      ¦          ¦ электрической.         ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  4.  ¦ *.BNL    ¦ Список цепей с учетом  ¦    PCPACK          ¦
 ¦      ¦          ¦упаковочной информации о¦                    ¦
 ¦      ¦          ¦вентилях в микросхемах. ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  5.  ¦ *.CFG    ¦ Файл описания          ¦    PCCAPS, PCERC,  ¦
 ¦      ¦          ¦ конфигурации программы.¦ PCPLOTS, PCPHOTO,  ¦
 ¦      ¦          ¦                        ¦ PCCARDS, PCPRINT,  ¦
 ¦      ¦          ¦                        ¦      PCDRILL       ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  6.  ¦ *.CMD    ¦ Командный файл для     ¦   PCPACK           ¦
 ¦      ¦          ¦ автоматической работы  ¦                    ¦
 ¦      ¦(*.CM$)   ¦ граф. редактора        ¦                    ¦
 ¦      ¦          ¦ (переименования        ¦                    ¦
 ¦      ¦          ¦ вентилей микросхем на  ¦                    ¦
 ¦      ¦          ¦ схеме принципиальной   ¦                    ¦
 ¦      ¦          ¦ электрической).        ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  7.  ¦ *.CMP    ¦Список цепей в текстовом¦   PCFORM           ¦
 ¦      ¦          ¦виде, сгруппированный по¦                    ¦
 ¦      ¦          ¦компонентам.            ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  8.  ¦ *.CTL    ¦ Файл стратегии         ¦   PCROUTE          ¦
 ¦      ¦          ¦ трассировки.           ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  9.  ¦ *.DBG    ¦ Файл распределения     ¦   PCCAPS           ¦
 ¦      ¦          ¦ оперативной памяти.    ¦   PCCARDS          ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  10. ¦ *.DRC    ¦ Описание ошибок        ¦   PCDRC            ¦
 ¦      ¦          ¦ топологии печатной     ¦                    ¦
 ¦      ¦          ¦ платы  по критерию     ¦                    ¦
 ¦      ¦          ¦ наличия  узких мест и  ¦                    ¦
 ¦      ¦          ¦ недостаточных зазоров. ¦                    ¦
 L------+----------+------------------------+---------------------


 -------T----------T------------------------T--------------------¬
 ¦ N    ¦Расширение¦    Назначение          ¦ Наименование       ¦
 ¦   п/п¦          ¦                        ¦  программы,        ¦
 ¦      ¦          ¦                        ¦которая создает файл¦
 +------+----------+------------------------+--------------------+
 ¦  11. ¦ *.DRL    ¦Программа для сверления ¦   PCDRILL          ¦
 ¦      ¦          ¦в формате Shmoll        ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  12. ¦ *.ERC    ¦Описание ошибок описания¦   PCERC            ¦
 ¦      ¦          ¦схемы электрической     ¦                    ¦
 ¦      ¦          ¦принципиальной.         ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  13. ¦ *.ERR    ¦Файл сообщений об       ¦  PREPACK,PCPACK,   ¦
 ¦      ¦          ¦ошибках.                ¦  PCPHOTO  ...      ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  14. ¦ *.GBR    ¦Программа для фотокоор- ¦   PCPHOTO          ¦
 ¦      ¦          ¦динатографа в формате   ¦                    ¦
 ¦      ¦          ¦  GERBER                ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  15. ¦ *.HIS    ¦Гистограмма плотности   ¦   PCPLACE          ¦
 ¦      ¦          ¦распределения связей    ¦                    ¦
 ¦      ¦          ¦на печатной плате.      ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  18. ¦ *.LIS    ¦Текстовый файл описания ¦   PCBACK           ¦
 ¦      ¦          ¦перестановок вентилей   ¦                    ¦
 ¦      ¦          ¦в микросхемах.          ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  19. ¦ *.LOG    ¦Текстовый файл-протокол ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  20. ¦ *.MAT    ¦Перечень материалов     ¦   PCFORM           ¦
 ¦      ¦          ¦проекта.                ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  21. ¦ *.MFG    ¦Текстовый файл-протокол ¦   PCDRILL          ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  22. ¦ *.NDE    ¦Список цепей в текстовом¦   PCFORM           ¦
 ¦      ¦          ¦виде, сгруппированный   ¦                    ¦
 ¦      ¦          ¦по цепям.               ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  23. ¦ *.NLC    ¦Описание ошибок соответ-¦   PCNLC            ¦
 ¦      ¦          ¦ствия двух печатных плат,                    ¦
 ¦      ¦          ¦двух схем принципиальных¦                    ¦
 ¦      ¦          ¦электрических или схемы ¦                    ¦
 ¦      ¦          ¦принципиальной электри- ¦                    ¦
 ¦      ¦          ¦ческой и печатной платы.¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  24. ¦ *.NLT    ¦Список описания цепей   ¦   PCNODES          ¦
 ¦      ¦          ¦в двоичном формате.     ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  25. ¦ *.PCB    ¦Описание топологии      ¦   PCCARDS          ¦
 ¦      ¦          ¦печатной платы          ¦   PCROUTE          ¦
 ¦      ¦          ¦в двоичном виде.        ¦   PCDRC            ¦
 L------+----------+------------------------+---------------------



 -------T----------T------------------------T--------------------¬
 ¦ N    ¦Расширение¦    Назначение          ¦ Наименование       ¦
 ¦   п/п¦          ¦                        ¦  программы,        ¦
 ¦      ¦          ¦                        ¦которая создает файл¦
 +------+----------+------------------------+--------------------+
 ¦  26. ¦   *.PKG  ¦Исходное описание       ¦   PCPACK           ¦
 ¦      ¦          ¦перечня компонентов и   ¦   PCNLT            ¦
 ¦      ¦          ¦списка цепей печатной   ¦                    ¦
 ¦      ¦          ¦платы до фазы           ¦                    ¦
 ¦      ¦          ¦размещения.             ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  27. ¦   *.PKL  ¦Текстовый файл описания ¦   PCFORM           ¦
 ¦      ¦          ¦упаковочной информации. ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  28. ¦   *.PLC  ¦Описание компонентов    ¦   PCPLACE          ¦
 ¦      ¦          ¦и списка цепей печатной ¦                    ¦
 ¦      ¦          ¦платы после размещения  ¦                    ¦
 ¦      ¦          ¦компонентов на печатной ¦                    ¦
 ¦      ¦          ¦плате.                  ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  29. ¦   *.PLR  ¦Информация об автома-   ¦   PCPLACE          ¦
 ¦      ¦          ¦тическом размещении     ¦                    ¦
 ¦      ¦          ¦компонентов на печатной ¦                    ¦
 ¦      ¦          ¦плате.                  ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  30. ¦   *.PLT  ¦Двоичный файл описания  ¦  PCCAPS, PCCARDS   ¦
 ¦      ¦          ¦графики для вывода на   ¦ PCPLACE, PLTCONV   ¦
 ¦      ¦          ¦векторный графопостро-  ¦ PLTDEL/PLTDEL4     ¦
 ¦      ¦          ¦итель.                  ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  31. ¦   *.PNL  ¦Список цепей с учетом   ¦   PCPACK           ¦
 ¦      ¦          ¦упаковочной информации  ¦   PCNODES          ¦
 ¦      ¦          ¦о вентилях в микросхемах¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  32. ¦   *.PRN  ¦Текстовый файл-протокол ¦ PLTPR              ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  33. ¦   *.PRT  ¦Файл описания библиотеч-¦   PCCARDS          ¦
 ¦      ¦          ¦ного элемента посадочного                    ¦
 ¦      ¦          ¦места на печатной плате.¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  34. ¦   *.PS   ¦Файл описания контактной¦   PCCARDS          ¦
 ¦      ¦          ¦площадки.               ¦                    ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  35. ¦   *.RPT  ¦Описание перестановок   ¦   PCCARDS          ¦
 ¦      ¦          ¦вентилей в микросхемах  ¦   PCPLACE          ¦
 ¦      ¦          ¦                        ¦                    ¦
 ¦  36. ¦   *.REP  ¦Текстовый файл описания ¦   PCROUTE          ¦
 ¦      ¦          ¦результатов автоматичес-¦                    ¦
 ¦      ¦          ¦кой трассировки соедине-¦                    ¦
 ¦      ¦          ¦ний топологии печатной  ¦                    ¦
 ¦      ¦          ¦платы.                  ¦                    ¦
 L------+----------+------------------------+---------------------



 -------T-----------T-----------------------T--------------------¬
 ¦ N    ¦Расширение ¦   Назначение          ¦ Наименование       ¦
 ¦   п/п¦           ¦                       ¦  программы,        ¦
 ¦      ¦           ¦                       ¦которая создает файл¦
 +------+-----------+-----------------------+--------------------+
 ¦  37. ¦   *.RP1   ¦ Описание результатов  ¦   PCNLT            ¦
 ¦      ¦   *.RP2   ¦ работы программы      ¦                    ¦
 ¦      ¦*.RP3,*.RP4¦   PCNLT               ¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  38. ¦   *.SCH   ¦ Графическое описание  ¦   PCCAPS           ¦
 ¦      ¦           ¦ компонентов и списка  ¦                    ¦
 ¦      ¦           ¦ цепей схемы принципи- ¦                    ¦
 ¦      ¦           ¦ альной электрической. ¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  39. ¦   *.SSF   ¦Текстовый файл соответ ¦ Создается          ¦
 ¦      ¦           ¦ствия типов контактных ¦ пользователем      ¦
 ¦      ¦           ¦площадок файлам описания                    ¦
 ¦      ¦           ¦контактной площадки    ¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  40. ¦   *.SWP   ¦ Файл описания переста-¦   PCPLACE          ¦
 ¦      ¦           ¦ новок компонентов.    ¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  41. ¦   *.SYM   ¦ Файл описания символь-¦   PCCAPS           ¦
 ¦      ¦           ¦ ного библиотечного    ¦                    ¦
 ¦      ¦           ¦ элемента (УГО).       ¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  42. ¦   *.TBL   ¦ Таблица соответствия  ¦   PCDRILL          ¦
 ¦      ¦           ¦ сверл и PINов.        ¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  43. ¦   *.WRL   ¦ Список цепей описания ¦   PCFORM           ¦
 ¦      ¦           ¦ схемы в формате, близ-¦                    ¦
 ¦      ¦           ¦ ком к   *.ALT   файлу.¦                    ¦
 ¦      ¦           ¦                       ¦                    ¦
 ¦  44. ¦   *.XNL   ¦ Объединенный список   ¦   PCLINK           ¦
 ¦      ¦           ¦ цепей.                ¦                    ¦
 L------+-----------+-----------------------+---------------------



                      2.     ЭТАПЫ РЕАЛИЗАЦИИ ПРОЕКТА.

      Сквозной маршрут проектирования печатных плат включает в  себя  этапы:
создание   графического  описания  схемы  электрической  принципиальной   со
списком соединений средствами  графического  редактора   PCCAPS,  подготовки
КД на схему, упаковку логических элементов в микросхемы,  размещение их   на
конструктиве,   проектирование топологии  ПП  и    подготовки   КД   и    УИ
для   технологического оборудования.
    Предполагается, что пользователь знаком с основными принципами работы  с
MS DOS ПЭВМ.
      В  качестве  программы-утилиты  MS  DOS   рекомендуется   использовать
программу NORTON.

                         3. БАЗА ДАННЫХ СИСТЕМЫ PCAD
       В   ходе   эксплуатации   системы   PCAD   было  выявлено,  что   при
разработке    РЭУ     необходимо    очень     внимательно      использовать,
своевременно   и    тщательно     корректировать    все    элементы     базы
проектирования  относительно   распределения   информации   по   слоям,   их
расположению в таблице слоев графических редакторов системы PCAD  назначению
и парности. С  особенным  вниманием  следует  относится   к  формированию  и
корректировке  КОНСТРУКТИВОВ для ПП,  библиотечных ЭЛЕМЕНТОВ  для   схемы  и
платы,  файлов    .PS   и    .SSF,   библиотечных    и    создаваемых    при
проектировании  файлов-БЛОКОВ.   При   создании  файлов-БЛОКОВ  не  включать
лишних слоев.
       При  выборе  библиотечных   файлов  для  использования    в   проекте
контролировать их  корректность для  топологической информации   по  таблице
слоев и настройке слоев на принадлежность к проводниковым и парности слоев.

   Для редактора PCCAPS:      ¦            Для редакторов PCPLACE и
PCCARDS:
  WIRES      BORDER     ¦ PADCOM        BRDOUT         MSKFBT
  BUS                   ¦ FLCOMP        FLTARG         PSTGTP
  GATE                  ¦ PADSLD        SLKSCR         PSTGBT
  IEEE                  ¦ FLSOLD        DEVICE         PSTFTP
  PINFUN                ¦ PADINT        ATTR           PSTFBT
  PINNUM                ¦ FLINT         REFDES         SLKTOP
  PINNAM                ¦ GNDCON        COMP           SLKBOT
  PINCON                ¦ FLGCON        SOLDER         DVCTOP
  REFDES                ¦ CLEAR         INT1           DVCBOT
  ATTR                  ¦ FLCLER        INT2           REFDTP
  SDOT                  ¦ PWRCON        DRLGIN         REFDBT
  DEVICE                ¦ FLPCON        DRLFIN
  OUTLIN                ¦ SLDMSK        PINTOP
  ATTR2                 ¦ FLSMSK        PINBOT
  NOTES                 ¦ DRILL         MSKGTP
  NETNAM                ¦ FLDRLL        MSKGBT
  CMPNAM                ¦ PIN           MSKFTP


      Особенно    ВНИМАТЕЛЬНО    при    подготовке    информации     следует
относиться   к   состоянию   активности    слоев,   т.е.   где   формируемая
информация оставит свой след, т.к. не всегда есть возможность  ее  перенести
или  проверить,  где  она  сформирована.  Так   апример,    при   подготовке
конструктива  для  упаковки  платы  и   размещения   элементов,   необходимо
записать   его   с   активным   состоянием  слоя   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
файла).

ВНИМАНИЕ !!!


     На данном этапе необходимо провести контроль  наличия в
     электрической схеме  РЭУ  многовентильных  компонентов,

           имеющих  РАЗЛИЧНЫЕ УГО, НО ОДИНАКОВЫЕ КТО.

     В случае  присутствия в РЭУ  такого набора  компонентов
     проводимый в дальнейшем процесс перекомпоновки вентилей
     необходимо  выполнять  с соблюдением особых требований.
     Об этом будет сказано позже.

Пример .MAT файла, не содержащего ошибок :


ITEM QTY COMP-NAME REFERENCE-DESIGNATOR DESCRIPTION

 1  14 564LA7    D1 D5 D3 PRT=564LA7.prt   -- Множество компонентов,
                 D6 D6 D3                     имеющих одинаковое
                 D5 D1 D1                     УГО и КТО   D3 D5
                 D1 D6 D3

 2  2  C         C1 C3    PRT=K10171A.prt  - Одно и то же УГО упак.
                                             в различные корпуса,
 3  1  C         C2       PRT=K10171P0.prt - различные КТО

 4  1  F33LR11A  D4       PRT=F33LR11.prt  - Неоднородный компонент.
                                             Различные вентили упак.
 5  1  F33LR11B  D4       PRT=F33LR11.prt  - в один корпус

 6  2  F33KP14A  D2 D8    PRT=F33KP14.prt  - Группа многовентильных
                                             компонентов - различные
 7  2  F33KP14B  D7 D9    PRT=F33KP14.prt  - УГО, но одинаковые КТО

 8  74 RAZEM     X1 X2    PRT=ROZET.prt    --  Компоненты периферии



                       5.2   ПОДГОТОВКА  КОНСТРУКТИВА.


    Последовательность действий.
  1.  Вызов PCCARDS
           -   командой   DETL    установить   «детальный»   режим   работы
       графического  редактора,  пpи  этом  меню команд окрашено  в  зеленый
       цвет,
           -  командой   VLYR   проверить   исходную   таблицу   слоев   по
       рекомендациям  пункта   3  для    графического    редактора  PCCARDS,
       если  таблица  изменена,  выйти  из  редактора, удалить  из   рабочей
       директории  файла .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,    PIN-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. ПРОЕКТИРОВАНИЕ  ТОПОЛОГИИ  ПП  (PCCARDS.)

       Следующий  за  размещением  этап  -  трассировка.  Как  и  размещение
трассировку можно  осуществлять  либо  автоматически,  либо   вручную,  либо
комбинируя оба эти способа.  Исходный  файл  для  трассировки   -  это  файл
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,MSKFBT - графика маскирующих слоев ПП;

     Первые 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 (см. Руководство  по
 применеию программного обеспечения).



  10. ПОЛУЧЕНИЕ ТЕХНОЛОГИЧЕСКОЙ ИНФОРМАЦИИ (чертежей КД, УИ для фотошаблонов
                                и сверловки)
                             на проектируемый печатный узел.

      Сквозной   маршрут    проектирования    ПП    обеспечивает   получение
следующих выходных конструкторско-технологических документов:
 - послойные чертежи платы;
 - управляющая информация для фотооригиналов слоев платы ;
 - управляющая информация на станки с ЧПУ для сверления отверстий ;
 - сборочный чертеж ячейки;
 - сборочный чертеж платы печатной многослойной.

     По  .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

            На экране появится окно —  главное меню:

                                                                       [pic]

            Из этого меню  пользователь  сможет  управлять  всей  дальнейшей
   работой  программы  выбирая  те  или  иные   пункты   меню   с   помощью
   функциональных клавиш.

2.          Функциональные клавиши.

-     навигационные  клавиши устанавливают курсор на нужный вам пункт меню;
-     клавишей ENTER осуществляется  выбор  того  пункта  меню,  на  котором
стоит курсор;
-      клавишей  INSERT  в  интерактивном  режиме  можно  переключить  режим
замещения / вставки букв с раздвижкой строки;
-     клавиша ESC, как правило, выполняет возврат к предыдущей  функции  или
меню (аналогично пункту ВЫХОД).

3.          Описание использования функциональных возможностей  программы.

                  После  запуска   открывается   главное   меню   программы,
   состаящее из пунктов, управляющих дальнейшей работой:

      -     АРИБУТЫ - при выборе этого пункта становиться  активным  окно  с
   атрибутами  и  пользователь  может    настроить   атрибуты   по   своему
   усмотрению:

                                    [pic]

      - Имя комплекта :  указывае   название   каталога   для   системы   T-
        FLEX,  в  котором  расположены  файлы  f4.grb,  plata.grb,   2d.grb,
        необходимые   для  формирования  элементов платы средствами пакета T-
        FLEX по результатам работы p-flex.
      - Ограничение сверху  (снизу)  :  предельные  значения  параметров  по
        высоте элементов с верхней  и  нижней  стороны  платы  (если  высота
        элемента больше этих параметров, то элемент  будет  выделен  красным
        цветом).
      - Толщина платы : параметр, определяющий толщину платы  (т.к.  в  PCAD
        нет  понятия  о  толщине  платы,  то  этот   параметр   определяется
        пользователем, по умолчанию = 0).
      - Имя pdf - файла : в этом пункте пользователь может  ввести  название
        pdf- файла PCAD-а, который он хочет обработать с  указанием  пути  к
        нему. Если при запуске программы был указано имя файла pdf,  в  виде
        ключа, то оно автоматически попадает в этот пункт. При наборе  имени
        файла программа проверяет существование такого файла  по  указанному
        пути и, если он не существует, то пользователь не имеет  возможности
        выйти из окна АТРИБУТЫ до тех пор, пока  не  введет  правильное  имя
        файла иначе остается возможность выхода по esc ,без сохранения  всех
        изменений, сделанных в этом окне.

      -     КОМПОНОВКА - данный пункт не активен при  выборе,  до  тех  пор,
   пока не будет указанно правильное имя анализируемого pdf- файла  в  окне
   АТРИБУТЫ (о чем свидетельствует горящее  посреди  экрана  сообщение  “Не
   вижу pdf-файла”). Если pdf- файл доступен, то при  выборе  этого  пункта
   меню начинается его анализ : за скоростью  этого  процесса  пользователь
   может следить по процентной линии, отображаемой на экране.

                                                                       [pic]

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

                 После завершения анализа платы программа выбирает  габариты
   элементов из файла gabarits.dbf  по  их  названию,  а  если  не  находит
   нужного, то выполняет поиск pdf-файла злемента (для  prt,  обработанного
   pdifout.exe) в подкаталоге  PDF  (который  должен  находиться  в  том-же
   каталоге что и программа). При  успешном  поиске  она  анализирует  этот
   файл, находит в нем габариты элемента и заносит их в базу  gabarits.dbf.
   Т.е. если на анализируемой плате есть элементы со стандартным названием,
   но не стандартными  (обнавленными)  габаритами,  то  необходимо  удалить
   gabarits.dbf, а в подкаталог PDF скопировать  все  .pdf-файлы  элементов
   платы, и тогда габариты  всех  элементов  платы  просканируются  и  файл
   подготовится заново. (В существующей версии каждый элемент  по  размерам
   округляется до параллелограмма, т.е.  шар  например  станет  кубом.  Для
   точной  графической  передачи  элементов  в  трехмерном  виде  требуется
   создание специальной графической библиотеки в формате T-FLEX, чему будет
   посвящена следующая версия программы.) Габариты  элемента  помещаются  в
   базу gabaritrs.dbf. Т.е. если элемент встречался хотя-бы  раз  в  какой-
   либо плате, то во всех последующих платах данные на него  будут  браться
   из базы без повторной обработки его PRT-файла.

                 Если контур платы был обнаружен,  то  при  создании  файлов
   для T-FLEX в них передадутся габаритные размеры платы, со  слоя  KONTUR,
   округленные  по  форме  до  прямоугольника   (существующая   версия   не
   обрабатывает  сложные  контуры).  Если-же  контур  найден  не   был   то
   программой создается собственный прямоугольный контур платы по  условию:
   расстояние от края платы до граничных элементов равно 10 мм.

                 После этого предлагается меню компоновки:
                                                                       [pic]

      - Выход  (или ESC) — выход в предыдущее  (главное)  меню,  если  этот
        пункт выбирается первым, то при выходе происходит отказ от  создания
        файлов платы в формате T-FLEX;

      - Трехмерная компоновка — при выборе этого пункта начинается  процесс
        создания файлов изображения платы в трехмерном виде в формат T-FLEX.
        На экране отображается количество элементов, созданных в  файлах  T-
        FLEX , соответственно на нижнй и верхней  стороне  платы.  При  этом
        создаются 3-и файла в формате  T-FLEX:  *****top.frg-файл  элементов
        верхней стороны платы, *****bot.frg-файл  элементов  нижней  стороны
        платы, *****plt.frg-файл контура платы (символом *****  обозначаются
        пять первых символов каждого файла, они общиие для всех трех файлов,
        которые пользователь редактирует по своему усмотрению в  пункте  Имя
        файла). После завершения автоматически предлагается меню  компановки
        и пользователь, по жланию, может либо создать какой-либо другой  вид
        платы, либо выйти в главное меню;

      -  Имя файла — при выборе этого пункта  курсор  переходит  в  окно  с
        именм файла и позволяет изменить его по своему усмотрению;
                                    [pic]


      - Описание —  при выборе  этого  пункта  создается  стандартный  dbf-
        файл, содержащий перечень всех элементов анализируемой платы.

      - Двумерная компановка —  при выборе этого пункта предлагается меню с
        различными двумерными видами платы : спереди (F), сзади  (A),  слева
        (L), справа (R). Под каждым  пунктом  нарисована  плата  и  стрелкой
        показано направление взгляда на неё.

                                                                       [pic]

            При выборе нужного пункта происходит создание файлов двумерного
        изображения, соответствующего вида, в формате 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()         //делает текущим каталог в котором
       наход.
          pat:=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

         //*****************************************************************

         FUNCTION 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,(maxcol()/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(fname)
            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 exittmp 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
             ELSEIF 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:=kontur[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)  //создание базы данных
           USE

           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     //для
         эл. Нижней
                                                         стороны
                    ENDIF
                     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'

Файл swind.prg содержит в  себе  текст  подпрограммы,  организующей  оконный
интерфейс:

         FUNCTION WIND(top,left,bot,rigt,zag,speed,centr) //создание окна
         setboxgrow(speed)
         //переменные:верх,лево,низ,право,
         wsetshadow(-1)                               //текст
         заголовка,скорость распахивания,центрирование
         n:=wopen(top,left,bot,rigt,.F.)
         wbox(0)
         wsetshadow('N+/N')                               //текст
         заголовка,скорость распахивания,центрирование
         n:=wopen(top,left,bot,rigt,.F.)
         setboxgrow(0)
         //переменные:верх,лево,низ,право,
         wbox(0)
         IF centr<>nil
           IF centr='centr'
            WCENTER(.T.)
           ENDIF
         ENDIF
         ZAGOL(zag)
         RETURN n

         FUNCTION WINCLOSE()      //функция закрывающая окно
         wclose()
         wclose()
         RETURN

         FUNCTION RUSSLOW(st)
         FOR k:=1 to len(russl)
         st:=strtran(st,russl[k],russs[k])
         NEXT
         RETURN st


         FUNCTION ZAGOL(L1)      //делает надпись окна
         l2:=len(L1)
         l3:=maxcol()
         l4:=(l3-l2)/2
         @ -1,l4 SAY ' '+l1+' '
         RETURN

3.           Файл  smenu.prg  содержит  в  себе   текст   подпрограммы   для
   организации на экране меню:

         FUNCTION MENU(k,razm,res)
         olcurs:=setcursor(0)
         set wrap on                //к-2-массив пунктов и подсказок,razm-
         длина 1-го пункта
         olrow:=ROW()               //res-начальный пункт
         olcol:=COL()
         ol:=setcolor('GR+/B,gr+/R')
         dl:=len(k[1])
         zmes:=0

         FOR nom:=1 to dl
         IF len(k[1,nom])/2=INT(len(k[1,nom])/2) .AND. razm/2=INT(razm/2)
         k[1,nom]=center(k[1,nom],razm,' ',.T.)
         ELSEIF len(k[1,nom])/2<>INT(len(k[1,nom])/2) .AND.
         razm/2<>INT(razm/2)
         k[1,nom]=center(k[1,nom],razm,' ',.T.)
         ELSE
         k[1,nom]=center(k[1,nom],razm-1,' ',.T.)
         ENDIF
         zmes:=zmes+len(k[1,nom])
         NEXT

         ots:=maxcol()-zmes
         ots:=ots/(dl+1)
         col:=ots
         ten:=''
         tc:=ntocolor(screenattr(2,0),.T.)
         tc:=substr(tc,at('/',tc)+1,7)
         tc:=left(tc,len(tc)-1)
         tn:=''

         FOR nom:=1 to dl
         ten:=padright(tn,len(k[1,nom]),chr(223))
         k[2,nom]=center(k[2,nom],maxcol()+1,' ',.T.)
         @ 1,col PROMPT k[1,nom] MESSAGE k[2,nom]
         trow:=row()
         tcol:=col()
         dispout(chr(220),'n/'+tc)      //г78_---
         setpos(2,col()-len(k[1,nom]))
         dispout(ten,'n/'+tc)
         setpos(trow,tcol)
         col:=col+len(k[1,nom])+ots
         NEXT

         SET MESSAGE TO maxrow() CENTER
         MENU TO res
         IF res<>0                      //эффект нажатия кнопки
         razm:=len(k[1,res])
         dol:=0
         FOR o:=1 to res
         dol:=dol+len(k[1,o])
         NEXT
         dol:=dol-razm
         setpos(2,1+ots+dol+(ots)*(res-1))
         dispout(space(razm+1),tc+'/'+tc)
         setpos(1,ots+dol+(ots)*(res-1))
         dispout(' ',tc+'/'+tc)
         dispout(k[1,res],'GR+/R')
         inkey(0.1)
         setpos(1,1+ots+dol+(ots)*(res-1))
         dispout(space(razm+1),tc+'/'+tc)
         setpos(1,ots+dol+(ots)*(res-1))
         dispout(k[1,res],'GR+/R')
         dispout(chr(220),'n/'+tc)      //г78_---
         setpos(2,col()-razm)
         ten:=padright(tn,len(k[1,res]),chr(223))
         dispout(ten,'n/'+tc)
         inkey(0.1)
         ENDIF
         setcolor(ol)
         setpos(olrow,olcol)
         setcursor(olcurs)

         RETURN res



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=koltop+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 compon[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
                             compon[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'
                  IF 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:=SKONT(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                 //поиск имени prt в
         оставшемся 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('PDF\'+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)
         PROCENT()

         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
                   ENDIF
             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 CreatSpec()

          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
         //***************************************************************

           USE &nameper              //открытие б.д. перечня элементов
           private

         //массив со всевозможными названиями элементов
         snaz:={{"Конденсаторы",1},{"Резисторы",1},{"Дроссели",1},{"Транзисто
         ры",2},{"Диоды",2},{"Микросхемы",2},{"Вилки",1},{"Прочие",1}}
           private

         //массив со всевозможными обозначчениями элементов
        soboz:={{'C','c'},{'R','r'},{'L','l'},{'VT','vt,'},{'VD','vd'},{'DD',
        'D','d','dd'},{'X','x'},}

           APPEND BLANK
                 REPLACE &ns1 WITH 'Название'
                 REPLACE &ns2 WITH 'Обозначение'
                 REPLACE &ns3 WITH 'Кол-во'
                 REPLACE &ns4 WITH 'Примеч.'
           APPEND BLANK
                 REPLACE &ns1 WITH '-----------------------------------------
         -'
                 REPLACE &ns2 WITH '-----------------------------------------
         -'
                 REPLACE &ns3 WITH '-----------------------------------------
         -'
                 REPLACE &ns4 WITH '-----------------------------------------
         -'

          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 платы в изделии).



                     Организационно-Экономическая часть.



Задание:  Техноко-Экономическое  обоснование  разработки.  Анализ   разделов
бизнес-плана. Выполнение расчетов по учету издержек и  конкурентоспособности
продукции. Образование цены.

                                 Введение .

      Несмотря на то,  что  данный  проект  является  экспериментальным,  и
  изготавливается на заказ конкретного предприятия, его можно рассмотривать
  как товар так как, несомненно, найдется  большое  количество  аналогичных
  предприятий и частных пользователей заинтересованных в таком  программном
  продукте.  Поэтому  далее  предлагается  к   рассмотру   бизнес-план   по
  производству и реализации этого программного продукта.
       Бизнес-план  является  одним   из   первых   обобщающих   документов
  обоснования  инвестиций  и  содержит  укрупнённые  данные  о  планируемой
  номенклатуре и объёмах выпуска продукции, характеристики рынков  сбыта  и
  сырьевой базы, потребность производства  в  земельных,  энергетических  и
  трудовых ресурсах, а также содержит ряд показателей, дающих представление
  о коммерческой, бюджетной и экономической эффективности  рассматриваемого
  проекта, и  в  первую  очередь  представляющих  интерес  для  участников-
  инвесторов проекта. Расчёты  показателей  адаптированы  к  требованиям  и
  условиям современного отечественного и зарубежного инвестирования.



                              Описание товара.

      Программный продукт представляет  собой  пакет  программных  средств,
  написанных для IBM-совместимых компьютеров. Программа  предназначена  для
  использования ее совместно с пакетами PCAD и T-FLEX (которые  применяются
  для разработки и проектирования печатных плат и деталей остнастки). Пакет
  PCAD предназначен для разработки плат, а в пакете T-FLEX  разрабатывается
  корпус. В система PCAD плата изображается  только  в  двухмерном  виде  и
  поэтому такой образ платы бесполезен при разработке корпуса в  ситеме  T-
  FLEX т.к. этот чертеж  не  обладает  объемными  размерами.  Разработанный
  программный  продукт  позволяет  передавать  все  параметры  и   элементы
  печатной платы, разрабатываемой в PCAD, пакету T-FLEX, конвертируя чертеж
  платы  в  трехмерный  объект,  для  дальнейшей  разработки  корпуса   под
  созданную плату.

                         Основные технические требования :
      Конфигурация  компьютера - IBM 386/DX или выше.
      Операционная система - MS-DOS 5.0 или выше.
      Свободная память DOS - не менее 450 kb.
      Размер, занимаемый на диске - 500 kb.

                       Возможности программного пакета.
 . представленная на рассмотрение программа способна обрабатывать pdf-файлы
   (полученные программой pdifout.exe) в формате PCAD4.5, PCAD7, PCAD8 ;
 . в ходе своей  работы  программа  создает  постоянно  пополняющуюся  базу
   данных элементов;
 .  программа  способна  создавать  файлы   в   формате   T-FLEX,   которые
   представляют  собой  графический   образ   платы   в   трехмерном   виде
   (изометрии), что  позволяет  визуально  оценить  ее  объемный  размер  и
   принять решения по разработке деталей оснастки;
 . программа имеет возможность,  по  желанию  пользователя,  подготавливать
   форму со спецификацией всех  элементов,  содержащихся  на  анализируемой
   плате в виде стандартного dbf-файла;


                                Рынок сбыта.
      Предполагается поставлять данный  программный  продукт  ограниченному
  кругу   организаций   занимающихся   разработкой    печатных    плат    и
  конструкционной остнастке к ним. Основным потребителем  программы  должны
  стать различные  подразделения  НИИ  «Автоматики».  Предполагаемый  объем
  поставок системы:

|                     |1998 |1999 |2000 |2001   |
|НИИ «Автоматики»     |50   |60   |70   |70     |
|Прочие организации   |10   |80   |140  |360    |


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

                          Источник финансирования.

      Финансирование проекта осуществляется за счет базового предприятия из
  средств выделенных на НИР. На первом этапе  предполагается  устанавливать
  программу только в устройствах производства НИИ «Автоматики».  На  втором
  этапе предполагается расширить  рынок  сбыта  за  счет  продаж  программы
  прочим   производителям.   Поскольку   НИИ   «Автоматики»   финансировало
  разработку системы предполагается поставлять ему программу по существенно
  более низким ценам.

                         Календарный план разработки

|Название этапа                        |Время выполнения|Количество |
|                                      |(дни)           |(человек)  |
|Разработка технического задания       |3               |1          |
|Изучение технической документации и   |2               |1          |
|выбор языка программирования          |                |           |
|Изучение форматов  файлов систем PCAD |5               |1          |
|и T-FLEX                              |                |           |
|Разработка алгоритма передачи данных  |2               |1          |
|Разработка алгоритма конвертирования  |2               |1          |
|трехмерного изображения               |                |           |
|Создание работающей модели алгоритмов |10              |1          |
|Отладка программы                     |10              |1          |
|Подготовка технической документации   |2               |1          |
|Всего чел/дней                        |32              |           |


  Этапы:
|1|1| | | | | | | | | | | | | | | | | | | | | | | |
|2| |2| | | | | | | | | | | | | | | | | | | | | | |
|3| | |3| | | | | | | | | | | | | | | | | | | | | |
|4| | | | | | | |4| | | | | | | | | | | | | | | | |
|5| | | | | | | | |5| | | | | | | | | | | | | | | |
|6| | | | | | | | | |6| | | | | | | | | | | | | | |
|7| | | | | | | | | | | |7| | | | | | | | | | | | |
|8| | | | | | | | | | | | | | | | | | | | | | |8| |
| |1|2|3|4|5|6|7|8|9|1|1|1|1|1|1|1|1|1|1|2|2|2|2|2|
| | | | | | | | | | |0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|



                            Структура разработки.

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

                      Расчет издержек и цены продукта.

                  Затраты на материалы и покупные изделия.


|№      |Наименование                    |Кол-во|Цена за |Общая   |
|       |                                |      |единицу |сумма   |
|1      |Документация по PCAD и T-FLEX   |8     |40000   |320000  |
|2      |Папка для диплома               |1     |30000   |30000   |
|3      |Дискеты                         |40    |5000    |200000  |
|4      |Программный продукт             |1     |240000  |240000  |
|5      |Ватман                          |6     |8000    |48000   |
|6      |Книги по теме проекта           |4     |20000   |80000   |
|7      |Бумага                          |1     |60000   |60000   |

  Всего на материалы было истрачено 978000 руб.

  С учетом транспортных расходов затрачено 998000 руб.



Основная заработная плата.


|Этап                   |Исполнители   |Кол-во  |За работу |Месячный   |
|                       |              |дней    |получено  |оклад      |
|Разработка технического|Руководитель  |3       |450000    |3000000    |
|                       |проекта       |        |          |           |
|задания.               |              |        |          |           |
|Изучение технической   |Инженер       |2       |200000    |2000000    |
|документации           |программист   |        |          |           |
|Изучение форматов PCAD |Инженер       |5       |500000    |2000000    |
|и  T-FLEX.             |программист   |        |          |           |
|Разработка алгоритма   |Инженер       |2       |200000    |2000000    |
|передачи данных        |программист   |        |          |           |
|Разработка алгоритма   |Инженер       |2       |200000    |2000000    |
|конвертирования        |программист   |        |          |           |
|трехмерного изображения|              |        |          |           |
|Создание работающей    |Инженер       |10      |1000000   |2000000    |
|модели алгоритмов      |программист   |        |          |           |
|Отладка программы      |Инженер       |10      |1000000   |2000000    |
|микропроцессора        |программист   |        |          |           |
|Подготовка технической |Инженер       |2       |200000    |2000000    |
|                       |программист   |        |          |           |
|документации           |              |        |          |           |
|                       |              |Итого   |3750000   |           |


Дополнительная З/П

  Средства затраченные на выходные дни, отпуска , премии и т .д.

  Дополнительная З/П=15%Основная З/П  =562500 руб.


Отчисления на социальные нужды.

       Отчисления  на  социальные  нужды=40%(Дополнительная  З/П+  Основная
  З/П)=40%(3750000 руб+562500 руб.)=1725000 руб.


Накладные расходы

      Затраты, связанные с управлением, покупкой деталей,  обслуживанием  и
  коммунальными услугами, составляют  2400000 руб.


Прочие расходы.

      При разработке испытательного устройства используются 2  персональных
  компьютера в течение всего срока разработки. Стоимость одного дня  работы
  на компьютере составляет 10000 руб. с учетом  амортизации  и  потребления
  электричества.  Время  выполнения  всего  проекта  составляет   24   дня.
  Стоимость работы на компьютере будет составлять 480000 руб.


Итоговая таблица издержек и цены продукта.

|Название издержек                           |Затраты (руб.)        |
|Затраты на материалы и покупные изделия     |998000                |
|Основная З/П                                |3750000               |
|Дополнительная З/П                          |562500                |
|Отчисления на социальные нужды              |1725000               |
|Накладные расходы                           |2400000               |
|Прочие расходы                              |480000                |
|Всего                                       |6165500               |

  Норма прибыли=20%
  Издержки=6165500 руб.
  Стоимость разработки без НДС на затраты=
  Норма прибыли+Издержки=7398600 руб.
  НДС на затраты =20% Затраты=1479720 руб.
                      Стоимость разработки=8878320 руб.



                                Охрана труда.



Задание: Составить карту условий труда программиста, определить категорию
тяжести труда и разработать мероприятия по оптимизации условий труда.



      Изучение и  решение проблем,   связанных  с  обеспечением  здоровых  и
безопасных условий,  в которых протекает труд человека  -  одна из  наиболее
важных задач в разработке новых технологий и систем  производства.  Изучение
и   выявление   возможных  причин   производственных   несчастных   случаев,
профессиональных  заболеваний,  аварий,  взрывов,  пожаров,   и   разработка
мероприятий   и  требований,   направленных  на   устранение   этих   причин
позволяют создать безопасные и благоприятные  условия  для  труда  человека.
Комфортные и безопасные условия труда— один из основных  факторов   влияющих
 на  производительность служащих Вычислительных Центров.

      Работа сотрудников  вычислительных  центров   непосредственно  связана
компьютером,  а соответственно с дополнительным вредным воздействиям.



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

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

             Карта условий труда программиста на рабочем месте.

|№|Показатели условий труда.|ПДУ|Оценка        |Длительност|Балл|
| |Единицы измерения.       |,  |показателя    |ь          |с   |
| |                         |ПДК|              |воздействия|учет|
| |                         |   |              |(экспозиция|ом  |
| |                         |   |              |)          |эксп|
| |                         |   |              |           |озиц|
| |                         |   |              |           |ии  |
| |                         |   |Абсолю|В     |Мин. |В %  |    |
| |                         |   |тная  |баллах|     |смены|    |
|1|2                        |3  |4     |5     |6    |7    |8   |
|А. Психофизиологические нагрузки.                                |
|1|Напряжение зрения:       |   |На    |2     |     |95   |2   |
| |освещенность рабочего    |   |уровне|      |     |     |    |
| |места, лк                |   |санита|      |     |     |    |
| |                         |   |рн.   |      |     |     |    |
| |                         |   |норм  |      |     |     |    |
| |размеры объекта, мм      |   |0.3-0.|3     |     |90   |3   |
| |                         |   |15    |      |     |     |    |
| |энтропия зрительной      |   |32    |4     |     |80   |4   |
| |информации, бит/сигнал   |   |      |      |     |     |    |
| |число информационных     |   |>300  |4     |     |80   |4   |
| |сигналов в час           |   |      |      |     |     |    |
|2|Напряжение слуха:        |   |ПДУ   |2     |     |90   |2   |
| |уровень шума, дб         |   |      |      |     |     |    |
| |соотношение сигнал-шума ,|   |70    |2     |     |85   |2   |
| |%                        |   |      |      |     |     |    |
| |энтропия слуховой        |   |24    |3     |     |85   |3   |
| |информации, бит/сигнал   |   |      |      |     |     |    |
|3|Напряжение внимания:     |   |90    |4     |     |95   |4   |
| |длительность             |   |      |      |     |     |    |
| |сосредоточенного         |   |      |      |     |     |    |
| |наблюдения, % времени    |   |      |      |     |     |    |
| |смены                    |   |      |      |     |     |    |
| |число важных объектов    |   |>25   |4     |     |85   |4   |
| |наблюдения               |   |      |      |     |     |    |
| |число движения пальцев в |   |1080  |3     |     |95   |3   |
| |час                      |   |      |      |     |     |    |
|4|Напряжение памяти:       |   |3-5   |6     |     |87   |6   |
| |необходимость помнить об |   |      |      |     |     |    |
| |элементах работы свыше   |   |      |      |     |     |    |
| |2-х часов (кол-во эл.)   |   |      |      |     |     |    |
| |поиск рассогласований, в |   |50    |3     |     |60   |1.8 |
| |% от числа регулируемых  |   |      |      |     |     |    |
| |параметров               |   |      |      |     |     |    |
|5|Нервно-эмоциональное     |   |      |4     |     |65   |2.5 |
| |напряжение. Экспертная   |   |      |      |     |     |    |
| |оценка.                  |   |      |      |     |     |    |
|6|Интеллектуальное         |   |      |4     |     |70   |4   |
| |напряжение. Экспертная   |   |      |      |     |     |    |
| |оценка.                  |   |      |      |     |     |    |
|7|Физическая нагрузка:     |   |232   |2     |     |30   |0.6 |
| |энергозатраты, Вт        |   |      |      |     |     |    |
| |внешняя механическая     |   |37    |2     |     |40   |0.8 |
| |работа, Вт               |   |      |      |     |     |    |
|8|Статическая нагрузка в   |   |36000 |2     |     |90   |2   |
| |течение смены, кгс.сек   |   |      |      |     |     |    |
| |на обе руки              |   |86000 |2     |     |90   |2   |
| |на весь корпус           |   |123000|2     |     |90   |2   |
|9|Рабочее место, рабочая   |   |      |1     |     |97   |1   |
| |поза, перемещение в      |   |      |      |     |     |    |
| |пространстве. Экспертная |   |      |      |     |     |    |
| |оценка.                  |   |      |      |     |     |    |
|1|Сменность                |   |Одна  |1     |     |     |1   |
|0|                         |   |      |      |     |     |    |
|1|Продолжительность работы |   |8     |2     |     |100  |2   |
|1|в течение суток, час     |   |      |      |     |     |    |
|1|Монотонность:            |   |5-3   |4     |     |95   |4   |
|2|число приемов в операции |   |      |      |     |     |    |
| |                         |   |Абсолю|В     |Мин. |В    |    |
| |                         |   |тная  |баллах|     |долях|    |
| |                         |   |      |      |     |смены|    |
| |                         |   |Абсолю|В     |Мин. |В    |    |
| |                         |   |тная  |баллах|     |долях|    |
| |                         |   |      |      |     |смены|    |
| |длительность             |   |5-9   |5     |     |80   |5   |
| |повторяющихся операций, с|   |      |      |     |     |    |
|1|Режим труда и отдыха     |   |Без   |2     |     |10   |0.2 |
|3|                         |   |гимнас|      |     |     |    |
| |                         |   |тики и|      |     |     |    |
| |                         |   |музыки|      |     |     |    |
| |                         |   |      |      |     |     |    |
|Б. Санитарно-гигиенические условия труда.                        |
|1|Температура воздуха на   |   |21-22 |2     |     |97   |2   |
|4|рабочем месте:           |   |      |      |     |     |    |
| |теплый период, С         |   |      |      |     |     |    |
| |холодный период, С       |   |17-19 |2     |     |97   |2   |
|1|Вредные химические в-ва, |   |ПДК   |2     |     |97   |2   |
|5|кратность превышения ПДК |   |      |      |     |     |    |
|1|Промышленная пыль,       |   |ПДК   |2     |     |97   |2   |
|6|кратность превышения ПДК |   |      |      |     |     |    |
| |                         |   |      |      |     |     |    |
|В. Оценка условий труда.                                         |
|1|Число факторов,          |29 |      |      |     |     |    |
|7|формирующих тяжесть      |   |      |      |     |     |    |
| |труда, n                 |   |      |      |     |     |    |
|1|Сумма балов, [pic]i[pic] |73.|      |      |     |     |    |
|8|                         |9  |      |      |     |     |    |
|1|Усредненный бал kср      |2.5|      |      |     |     |    |
|9|                         |48 |      |      |     |     |    |
|2|Показатель интегральной  |39.|      |      |     |     |    |
|0|оценки условий труда, kz |81 |      |      |     |     |    |
|2|Категория тяжести труда, |III|      |      |     |     |    |
|1|kт                       |   |      |      |     |     |    |
| |                         |   |      |      |     |     |    |

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

       Для  оптимизации  условий  труда  на  рабочем   месте   рекомендуются
следующие организационные меры:

1.    Вопервых предлагается оборудовать рабочее  место  программиста  только
такими компьютерами, в технической документации  которых  указаны  стандарты
электрической и магнитной излучаемости (такие как MPR-II, TCO’92),  так  как
в противном случае на  программиста  будет  воздействовать  повышенная  доза
излучения, что приведет к быстрому утомлению, снижению  внимания  и  памяти,
ухудшению здоровья. Мониторы  предлагается  выбирать  такие,  которые  имеют
кадровую частоту не менее 75 герц. Это позволяет  ослабить  эффект  мерцания
экрана, от которого в основном и устает  зрение  человека,  наблюдающего  за
экраном долгое время.  Так-же  предлагается  выбирать  мониторы  с  размером
диагонали экрана на менее 17 дюймов, т.к. на экранах меньшего размера  буквы
текста будут мелкими, что приведет к быстрому зрительному переутомлению.
       Следуя  выше  приведенным  рекомендациям  (оборудовав  рабочее  место
качественной  техникой)  удастся  понизить  напряжение  зрения  оператора  и
подверженность облучунию его вредными магнитными и электрическими полями.

2.      Для   снятия   психологической   нагрузки   предлагаются   следующие
мероприятия. В одну комнату рабочего помещения  располагать  2-3-х  человек,
чтобы в ходе работы они могли общаться между собой,  понижая  таким  образом
эмоциональное напряжение (но не более  3-х,  иначе  они  могут  мешать  друг
другу  работать).  Оборудовать  помещение   радиоузлом   или   магнитофоном,
посредством  которых  воспроизводить  спокойную  тихую  музыку,   помогающую
отвлечся, но и не мешающую работе. Рабочий день предлагается назначить с  10
до 18 часов. Перерыв на обед следует сделать с 13 до 14 часов и  желательно,
чтобы место обеда находилось не в рабочем помещении и до него нужно  было-бы
пройтись 5-10 минут. Смена обстановки, прогулка по улице, общение  с  людьми
на посторонние темы позволяют практически  полностью  восстановить  исходное
рабочее состояние, ослабленное  после  первой  половины  рабочего  дня.  При
работе предлагается через каждые полтора часа делать десятиминутные паузы  и
заставлять  людей  (например  под   предлогом   проветривания   или   уборки
помещения) сменить обстановку, пройтись, размяться, пообщаться между  собой.
Такие   микропаузы  помогают  сбросить   усталость,   снять   умственное   и
психологическое  напряжение  и  позволяют   поддерживать   радотоспособность
человека на высоком уровне в течении всего рабочего дня.

      Для  проверки эффективности предложенных мероприятий  составим  заново
карту условий труда, с их учетом.


|№|Показатели условий труда.|ПДУ|Оценка        |Длительност|Балл|          |          |
| |Единицы измерения.       |,  |показателя    |ь          |с   |          |          |
| |                         |ПДК|              |воздействия|учет|          |          |
| |                         |   |              |(экспозиция|ом  |          |          |
| |                         |   |              |)          |эксп|          |          |
| |                         |   |              |           |озиц|          |          |
| |                         |   |              |           |ии  |          |          |
| |                         |   |Абсолю|В     |Мин. |В %  |    |
| |                         |   |тная  |баллах|     |смены|    |
|1|2                        |3  |4     |5     |6    |7    |8   |
|А. Психофизиологические нагрузки.                                |          |          |          |          |          |          |          |
|1|Напряжение зрения:       |   |На    |2     |     |75   |1.5 |
| |освещенность рабочего    |   |уровне|      |     |     |    |
| |места, лк                |   |санита|      |     |     |    |
| |                         |   |рн.   |      |     |     |    |
| |                         |   |норм  |      |     |     |    |
| |размеры объекта, мм      |   |0.3-0.|2     |     |80   |2   |
| |                         |   |15    |      |     |     |    |
| |энтропия зрительной      |   |32    |      |     |70   |3   |
| |информации, бит/сигнал   |   |      |      |     |     |    |
| |число информационных     |   |>300  |3     |     |60   |2.5 |
| |сигналов в час           |   |      |      |     |     |    |
|2|Напряжение слуха:        |   |ПДУ   |2     |     |90   |2   |
| |уровень шума, дб         |   |      |      |     |     |    |
| |соотношение сигнал-шума ,|   |70    |2     |     |85   |2   |
| |%                        |   |      |      |     |     |    |
| |энтропия слуховой        |   |24    |3     |     |85   |3   |
| |информации, бит/сигнал   |   |      |      |     |     |    |
|3|Напряжение внимания:     |   |90    |3     |     |65   |2   |
| |длительность             |   |      |      |     |     |    |
| |сосредоточенного         |   |      |      |     |     |    |
| |наблюдения, % времени    |   |      |      |     |     |    |
| |смены                    |   |      |      |     |     |    |
| |число важных объектов    |   |>25   |3     |     |80   |3   |
| |наблюдения               |   |      |      |     |     |    |
| |число движения пальцев в |   |1080  |3     |     |75   |2.5 |
| |час                      |   |      |      |     |     |    |
|4|Напряжение памяти:       |   |3-5   |4     |     |60   |2.4 |
| |необходимость помнить об |   |      |      |     |     |    |
| |элементах работы свыше   |   |      |      |     |     |    |
| |2-х часов (кол-во эл.)   |   |      |      |     |     |    |
| |поиск рассогласований, в |   |50    |3     |     |60   |1.8 |
| |% от числа регулируемых  |   |      |      |     |     |    |
| |параметров               |   |      |      |     |     |    |
|5|Нервно-эмоциональное     |   |      |3     |     |65   |2   |
| |напряжение. Экспертная   |   |      |      |     |     |    |
| |оценка.                  |   |      |      |     |     |    |
|6|Интеллектуальное         |   |      |3     |     |65   |2   |
| |напряжение. Экспертная   |   |      |      |     |     |    |
| |оценка.                  |   |      |      |     |     |    |
|7|Физическая нагрузка:     |   |232   |2     |     |30   |0.6 |
| |энергозатраты, Вт        |   |      |      |     |     |    |
| |внешняя механическая     |   |37    |2     |     |40   |0.8 |
| |работа, Вт               |   |      |      |     |     |    |
|8|Статическая нагрузка в   |   |36000 |2     |     |70   |1.5 |
| |течение смены, кгс.сек   |   |      |      |     |     |    |
| |на обе руки              |   |86000 |2     |     |90   |2   |
| |на весь корпус           |   |123000|2     |     |90   |2   |
|9|Рабочее место, рабочая   |   |      |1     |     |80   |1   |
| |поза, перемещение в      |   |      |      |     |     |    |
| |пространстве. Экспертная |   |      |      |     |     |    |
| |оценка.                  |   |      |      |     |     |    |
|1|Сменность                |   |Одна  |1     |     |     |1   |
|0|                         |   |      |      |     |     |    |
|1|Продолжительность работы |   |8     |2     |     |100  |2   |
|1|в течение суток, час     |   |      |      |     |     |    |
|1|Монотонность:            |   |5-3   |3     |     |68   |2.5 |
|2|число приемов в операции |   |      |      |     |     |    |
| |                         |   |      |      |     |     |    |
| |                         |   |Абсолю|В     |Мин. |В    |    |
| |                         |   |тная  |баллах|     |долях|    |
| |                         |   |      |      |     |смены|    |
| |                         |   |Абсолю|В     |Мин. |В    |    |
| |                         |   |тная  |баллах|     |долях|    |
| |                         |   |      |      |     |смены|    |
| |длительность             |   |5-9   |3     |     |70   |3   |
| |повторяющихся операций, с|   |      |      |     |     |    |
|1|Режим труда и отдыха     |   |Обосно|1     |     |10   |0.1 |
|3|                         |   |ванный|      |     |     |    |
| |                         |   |с     |      |     |     |    |
| |                         |   |музыко|      |     |     |    |
| |                         |   |й     |      |     |     |    |
| |                         |   |      |      |     |     |    |
|Б. Санитарно-гигиенические условия труда.                        |          |          |          |          |          |          |          |
|1|Температура воздуха на   |   |21-22 |2     |     |97   |2   |
|4|рабочем месте:           |   |      |      |     |     |    |
| |теплый период, С         |   |      |      |     |     |    |
| |холодный период, С       |   |17-19 |2     |     |97   |2   |
|1|Вредные химические в-ва, |   |ПДК   |2     |     |97   |2   |
|5|кратность превышения ПДК |   |      |      |     |     |    |
|1|Промышленная пыль,       |   |ПДК   |2     |     |97   |2   |
|6|кратность превышения ПДК |   |      |      |     |     |    |
| |                         |   |      |      |     |     |    |
|В. Оценка условий труда.                                         |          |          |          |          |          |          |          |
|1|Число факторов,          |29 |      |      |     |     |    |
|7|формирующих тяжесть      |   |      |      |     |     |    |
| |труда, n                 |   |      |      |     |     |    |
|1|Сумма балов, [pic]i[pic] |56.|      |      |     |     |    |
|8|                         |7  |      |      |     |     |    |
|1|Усредненный бал kср      |1,9|      |      |     |     |    |
|9|                         |55 |      |      |     |     |    |
|2|Показатель интегральной  |32,|      |      |     |     |    |
|0|оценки условий труда, kz |40 |      |      |     |     |    |
|2|Категория тяжести труда, |II |      |      |     |     |    |
|1|kт                       |   |      |      |     |     |    |
| |                         |   |      |      |     |     |    |



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



                                 Эргономика.



             Задание: Эргономичность диалогового взаимодействия.



                                  Введение.

       Эргономика  представляет   собой   научную   дисциплину,   комплнксно
изучающую человека в конкретных  условиях  его  деятельности.  Возникшая  на
стыке  общественных,  технических  и   естественных   наук,   она   является
одновременно и  проектной,  и  научной  дисциплиной.  Эргономика,  используя
фундаментальные  знания  наук  о  человеке  адаптирует  их  к  практическому
применению  в  проектировании.  В  последние  годы  активно  разрабатываются
соьственные  методологические  принципы,  методы  ипроцедуры   исследований.
Объектом исследований является система человек-  машина-среда.  Рассматривая
человека, машину  и  среду  в  конкретных  условиях  их  взаимодействие  как
сложное функциональное  целое  с  ведущей  ролью  человека,  специалисты  по
эргономике   разрабатывают   методы   учета   человеческого   фактора    при
проектировании  и  создании   техники,   критерии   оптимизации   систем   и
человеческой деятельности.



                 Эргономичность диалогового взаимодействия.


      Опорным моментом, организующим всю систему  психологических  процессов
и состояний, включенных в  деятельность,  является  цель  деятельности.  Она
определяет характер селекции информации в восприятии,  в  процессах  памяти,
внимания и т.д.
      Из далеко не полностью описанных психологических характеристик и  св-в
человека следует, что психические  процессы  в  каждых  конкретных  условиях
протекают специфическим образом  ,  они  изменчивы  и  вариативны  по  своей
природе, и поэтому их необходимо рассматривать в рамках  системного  подхода
как процессы сложные, динамические и многоуровневые.
      Психологическое изучение  информационного  взаимодействия  человека  с
видеотерминалами  только   начинаемся.   Наряду   с   такими   традиционными
проблемами,  как  изучение  особенностей  восприятия  человеком   информации
возникает и ряд новых проблем: особенности  использования  различных  языков
обмена информацией, способы их построения, организация диалога и т.п.
      Диалог  признается  перспективной  формой  взаимодействия  человека  с
терминалом,  где  взаимодействие  представляет  собой  двухсторонний   обмен
информацией в виде команд, просьб, вопросов- ответов и  сообщений  различных
видов. Обмен сообщениями происходит на языке, который можно  варьировать  от
сложного языка программирования до простого языка команд.
      Языков программирования и их диалектов насчитывается по  крайней  мере
несколько  сотен,  но  только  несколько  десятков  из  них  имеют   широкое
распространение.  У  каждого  языка  есть  свои  грамматика   и   синтаксис,
собственная манера выражения понятий. Практика показывает  что  определенную
вычислительную задачу на одном языке написать гораздо проще, чем на  другом.
Отсюда  и  выбор  языка  программирования  должен  определяться  целями  его
предполагаемоемого применения.
      Языки, используемые на дисплее, часто  применяют  в  кодированном  или
сокращенном варианте, и в отличии от естественного  языка  они  не  обладают
избыточностью.  По  этой  причине  пропуск,  замена,  или  забывание   кодов
приводят к ошибкам в  работе.  Кроме  того  следует  учесть,  что  неопытным
операторам к различным сообщениям необходимы объяснения.  Структура  диалога
является одним из факторов, обуславливающих эффективность  взаимодействия  с
дисплеем. Она должна быть различной, для разных  видов  пользователя.  Одним
из подходов  к  конструированию  диалогового  языка,  при  котором  языковые
средства  удовлетворяют  требования  опытного  и  неопытного  пользователей,
считается  следующий:  пользователь  должен  иметь  возможность  для  выбора
предела любого соотношения от ЭВМ, т.е. возможность получать  дополнительные
сообщения, когда ему это необходимо. Чем проще язык диалога, чем меньше  его
приходиться изучать новичку,  чем  удобнее  его  применять,  тем  шире  круг
пользователей.
      Другим фактором, определяющим эффективность  взаимодействия,  является
время срабатывания  системы,  т.е.  время  ответа  на  запросы  или  команды
пользователя. По мнению Р.  Миллера  время  ожидания  в  режиме  диалога  не
должно  превышать  2с.  Но  эта  рекомендация  не   универсальна,   т.к.   в
зависимости от разных систем и функций необходимое время ответа  может  быть
разным. При чтении информации  с  экрана  с  “перелистыванием”  время  смены
страниц должно быть не более одной секунды, чтобы не нарушать  непрерывность
мысленного  процесса.  Для  переключения  внимания  с  клавиатуры  на  экран
необходимо около 1.5 с, поэтому 2-х секундная задержка ответа  при  вводе  с
клавиатуры нормальна.

      Эффективность диалога зависит и от  соответствующих  устройств  ввода-
вывода  информации.  Разработка  таких  устройств  должна  основываться   на
результатах  экспериментальных  исследований  не  только  аппаратных,  но  и
программных  средств,  ибо  именно  совокупность  программных  и  аппаратных
средств  является   функционально   завершенными   средствами   деятельности
пользователя.
        На   основе   экспериментальных   данных    выдвигаются    следующие
психологические требования и рекомендации к дисплею.
       Психологические  требования  предъявляются  к  знаковой   информации,
выводимой на  дисплей,  и  направлены  на  оптимизацию  ее  представления  с
позиций оптимизации кодирования, значимости и смысловой нагрузки  сообщения,
обеспечения максимальной скорости переработки  информации  при  максимальной
надежности ее понимания, оптимизация структурного представления текстовых  и
графических сообщений,  правильной  организации  диалога  с  учетом  свойств
восприятия, памяти и мышления человека.

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

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

      Чтобы не перегружать  оперативную  память  человека-оператора  следует
исключить:
     .   одновременный  учет   трех-четырех   различных   значений   текущих
       параметров при операциях обслуживания;
     .  сопоставление в уме более трех логических условий;
     .  вычисления или перевод в уме  с  той  или  иной  величины  в  другие
       единицы или системы отсчета;
     .  дополнительное перекодирование предъявляемой информации.

                       Требования предъвляемые к сообщению.
    .   Сообщение  должно  содержать  лишь  те  элементы,   которые   играют
      существенную роль в выполнении задач, поставленных перед оператором.
    .   В  сообщении  необходимо  выделять  каким-либо   способом   (цветом,
      размером)  те  элементы,  которые  наиболее  важны  для   контроля   и
      управления системой.
    .   Каждая  часть  сообщения,  соответствующая  автономно   управляемому
      объекту,  должна  иметь  четкую,  легко  воспринимающуюся   структуру,
      отличную  от  других   и   отражающую   особенности   этого   объекта.
      Структурированные данные в виде  групп  обеспечивают  более  точное  и
      быстрое их обнаружение и опознание.
     .  При кодировании сообщений следует использовать простые  и  привычные
       ассоциации, сложившиеся между знаками и обозначаемыми объектами.
     .     Каждый   из   признаков   сообщения    должен    находиться    во
       взаимооднозначном   соответствии   с   кодируемыми   характеристиками
       объекта.

      Для каждого  типа  задач  требуется  адекватная  система  знаков.  При
большой  нагрузке  на  оперативную  память   эффективнее   буквенно-цифровое
кодирование.  Цветом  лучше  кодировать  местоположение  стимула.  Мелькание
служит для привлечения  внимания  оператора  к  определенным  параметрам,  у
которых изменилось состояние, или которые  требуют  выполнения  определенных
действий. Обычно используют не более двух частот вспышек на  одном  дисплее.
Выделение отдельных областей  на  графиках  можно  закодировать  штриховкой,
полутонами,  цветом.  Отдельные  графические  объекты  могут  быть  выделены
толщиной линий.

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

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

График  —  графическое  изображение  функциональных   зависимостей.   Способ
отображения функциональной зависимости ломаной линией лучше  по  скорости  и
точности передачи информации по сравнению с графиками в виде вертикальных  и
горизонтальных столбцов. Когда необходимо  сравнить  несколько  функций,  то
целесообразнее прибегнуть к многолинейному графику, т.е.  на  одном  графике
отражать несколько функциональных зависимостей  (но  не  более  4-х)  ,  чем
использовать несколько однолинейных графиков.
      На многолинейном графике  необходимо  ввести  различительные  признаки
линий для безошибочного их восприятия. Различием линий  по  толщине  и  тону
пользуются для акцентирования одной кривой из семейства  однородных  кривых.
Чаще всего применяется различное  начертание  линий.  Линии  на  графике,  с
нанесенными  на  них  крестиками,  кружками,  квадратами,  и  треугольниками
различить легче, чем линии  с  внутренней  структурой  или  составленные  из
однородных элементов (штрихов, точек и т.д.).
      Точность определения требуемых величин  повышается  при  нанесении  на
график координатной  сетки.  Линии,  образующие  координатную  сетку  должны
отличаться от линий графика толщиной, цветом или типом.

Таблицы — как способ представления информации на дисплее используются в  тех
случаях, когда имеется достаточное пространство и не требуется  интерполяции
данных. Хотя скорость передачи информации графиками выше, чем таблицами,  но
когда важна точность, эффективнее использовать таблицы.
       Скорость  и  точность  считывния  табличных  данных  зависят  от   их
пространственной  организации.  Столбцы  цифровой  информации  целесообразно
разделять между собой вертикальными линиями, причем толщина линий не  должна
превышать  толщину  штрихов  цифр.   Дополнительное   кодирование   (цветом,
размером, яркостью) повышает эффективность счета и сравнения величин.
      Если сложная инструкция описательного вида (слова, фразы)  переводится
в  форму  таблицы,  то   она   должна   изображаться   согласно   логической
последовательности  действий  и   исключать   необходимость   в   добавочных
арифметических действиях.

Диалог  —  непосредственный  и  оперативный  обмен  сообщениями  -   требует
развитых средств коммуникации.  Выбор  вида  диалога  должен  обосновываться
характером и типом решаемых задач и квалификацией пользователя.
      Процедура диалога должна предусматривать удобство  приема  информации,
содержать минимальное число шагов и  этапов,  минимизировать  погрешности  и
отказы, обеспечивать  легкое  вхождение  пользователя  во  все  существенные
этапы   диалога,   включать   автоматическую   переработку   большей   части
информации.  Для  успешного  диалога  необходимо  знать  используемый  язык.
Сообщения и ответы  должны  иметь  четкую  и  однозначную  форму,  чтобы  не
вызывать разночтений.
       Временная  функция  взаимодействия  должна  соответствовать   времени
срабатывания всей системы в целом, выбранной форме и организации  диалога  и
согласовываться   с   временными   характеристиками   обработки   информации
человеком.
      Организация диалогового  режима  должна  быть  гибкой  и  обеспечивать
многократный доступ к отдельным частям программы,  а  также  систему  подачи
сообщений  об  ошибках.  Организация  данных  на   экране   дисплея   должна
предусматривать   возможность   зонирования   экрана,   изменение   масштаба
изображения,  поворот  и  сдвиг  изображения,  изменение  положения   начала
координат и т.п.
      Работу человека в диалоговом  режиме  необходимо  организовывать  так,
чтобы  сохранить  его  активность  при  управлении  ходом   решения   задач,
предоставлять ему определенную степень свободы при  выборе  того  или  иного
способа выполнения задания,  формы  представления  данных,  автоматизировать
рутинные  компоненты  деятельности,  т.е.   сделать   работу   человека   по
возможности многосторонней и творческой.



             Эргономичность интерфейса разработанной программы.

      Учитывая  важность эргономичной  организации  диалога  пользователя  с
дисплеем интерфейс предлагаемой программы разрабатывался с учетом всех  выше
описанных требований  и  рекомендаций.  Несмотря  на  то,  что  обращение  с
программой не требует от пользователя большого опыта  и  больших  умственных
усилий  ее  внешний  вид  и  организация  диалога  сделана  для  обеспечения
наибольшего удобства и комфорта.
      Так, пункты меню предлагаются пользователю в виде  объемных  кнопок  и
при выборе одного  из  них  на  экране  происходит  нажатие  соответствующей
кнопки. Это вызывает  ассоциации  работы  с  обычным  кнопочным  прибором  и
поэтому  не  отнимает  времени  пользователя  на  то,  чтобы  разбираться  в
организации меню.
       Несмотря  на  технические  трудности  (язык,  на   котором   написана
программа  не  предусматривает  русского  алфавита)  весь   ход   выполнения
программы  сопровождается  сообщениями  и  пояснениями  на  русском   языке,
выраженными  в  краткой  и  понятной  форме.  Из  программы  исключены   все
сокращения (в названиях пунктов меню и  сообщениях),  которые  могут  ввести
пользователя в заблуждение, приложены  все  старания  для  придания  диалогу
предельно понятной и краткой формы.
      В программе действует “защита” от неопытного пользователя, т.е.  когда
пользователю предлагается  ввести  какую-либо  информацию  или  ответить  на
вопрос, то это организовано так, что ввод данных в неверной форме просто  не
возможен. Например при запросе  ввода  даты  не  работают  никакие  клавиши,
кроме цифровых, и при вводе числа  месяца  не  воспринимаются  числа  больше
двенадцати.
      При подборе цветовой палитры учитывалось, что  пункты  меню  и  строки
сообщений должны не только ярко выделяться на фоне рабочего поля,  но  и  не
перегружать зрение пользователя чрезмерной контрастностью.

Ниже предлагается один из видов рабочего поля предлагаемой программы.

  [pic]



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

                            Гражданская оборона.



  Задание:  Разработка  программного   продукта   для   автоматизированного
  рабочего места оператора Гражданской Обороны.



       Основной  системой  предупреждения  и  защиты   населения,   зданий,
  сооружений и т.п. в чрезвычайных ситуациях  мирного  и  военного  времени
  является Гражданская Оборона.

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



                     Поражающие факторы ядерного взрыва.

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

  . ударная волна
  . световое излучение
  . проникающая радиация
  . радиоактивное заражение местности
  . электромагнитный импульс


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

       Ударная   волна   представляет   собой   область   сильного   сжатия
  воздуха, распространяющуюся с большой скоростью во все стороны от  центра
  взрыва.  Скорость  распространения  ее  зависит   от   давления   воздуха
  во фронте ударной  волны ; вблизи  центра  взрыва  она  в  несколько  раз
  превышает скорость звука, но с увеличением  расстояния  от  места  взрыва
  резко падает.  За  первые  2 сек ударная волна проходит около 1000 м,  за
  5 сек-2000 м, за  8 сек  -  около  3000  м.   Это   служит   обоснованием
  норматива  N5 ЗОМП “Действия при вспышке ядерного взрыва”:  отлично  -  2
  сек, хорошо - 3 сек, удовлетврительно-4 сек.

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

       Ударная   волна   способна   наносить   поражения   и   в   закрытых
  помещениях, проникая   туда   через   щели   и   отверстия  .  Поражения,
  наносимые ударной волной , подразделяются  на  легкие , средние,  тяжелые
  и   крайне   тяжелые.    Легкие   поражения   характеризуются   временным
  повреждением  органов  слуха, общей  легкой контузией, ушибами и вывихами
  конечностей. Тяжелые поражения  характеризуются сильной контузией   всего
  организма; при этом могут наблюдаться  повреждения  головного   мозга   и
  органов  брюшной полости, сильное кровотечение из носа  и  ушей,  тяжелые
  переломы и вывихи конечностей. Степень поражения ударной  волной  зависит
  прежде всего от мощности и вида  ядерного взрыва.  При  воздушном  взрыве
  мощностью 20 кТ легкие травмы у людей возможны на расстояниях до 2,5  км,
  средние-до 2 км ,  тяжелые-до 1,5 км от эпицентра взрыва.

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



            Расчет параметров поражающих факторов ударной волны.

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

      Здесь рассматривается, разработанный  нами  программный  продукт  для
  персональной ЭВМ, который позволяет оператору АРМ  по  ГО,  автоматически
  определять избыточное давление во фронте ударной волны и скорость  напора
  воздуха по заложенным в него :

  . расстоянию  от центра взрыва R , м

  . тротиловому эквиваленту по ударной волне q , кг



      Разработанная нами программа производит расчет  избыточного  давления
  во фронте у. в. по формуле:

                                 [pic] , кПА

  Далее рассчитывается скорость напора воздуха по формуле:

                                 [pic] , кПа

    где Р0  -атмосферное  давление  (которое  берется  как  при  нормальных
    условиях т.е. Р0 =101.3 кПа.



      По завершении расчетов программа  выдает  результаты  в  удобной  для
  восприятия, табличной форме.

                          Пример работы программы.

      Для проверки нашей программы заложим в нее следующие исходные данные:



|№ |Расстояние от центра            |Тротиловый эквивалент по        |
|  |взрыва , м                      |ударной волне , кг              |
|1 |3500                            |150000000                       |
|2 |4000                            |200000000                       |
|3 |4500                            |300000000                       |
|4 |3000                            |400000000                       |
|5 |3500                            |500000000                       |



  Обработав эти данные, программа за доли секунды выдала нам таблицу:

|№ |Избыточное давление во фронте   |Скорость напора воздуха , кПа   |
|  |ударной волны , кПА             |                                |
|1 |30,18165                        |3,080464                        |
|2 |28,39597                        |2,733341                        |
|3 |29,20385                        |2,88792                         |
|2 |70,81588                        |16,07509                        |
|3 |60,87209                        |12,03099                        |



       На  данном  примере  видно  с  какой  точностью  ЭВМ  позволяет  нам
  рассчитать параметры Рф и Рск, поэтому  необходимость  применения  ЭВМ  в
  Гражданской Обороне не может вызывать сомнения, т.к  здесь,  очень  важны
  оперативность и точность расчетов для  принятия  штабами  ГО  решений  по
  защите населения и различных сооружений от избыточного давления во фронте
  ударной волны.



                       Список используемой литературы.



  1.»Человек и дисплей». Г.М. Романов, Н.В. Туркина, Л.С. Колпащиков

  2.»Язык CA-CLIPPER 5.2» А.Н. Канатников, С.Б. Ткачев

 3. Методические издания МИРЭА по Экономике.

 4. Методические издания МИРЭА по Охране Труда.

 5. Методические издания МИРЭА по Гражданской обороне.





смотреть на рефераты похожие на "Разработка программного обеспечения"