МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка программного обеспечения

    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(' IF pnow=parts',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)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,)=0)

    kolv=kolv+1

    IF (len(alltrim(&ns2))+len(vrem)+1)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, конвертируя чертеж

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

    созданную плату.

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.