Разработка программного обеспечения
Рефераты >> Программирование и компьютеры >> Разработка программного обеспечения

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) // функция, пересчитывающая координаты и


Страница: