Faceți căutări pe acest blog

Program "CHECKER_W&B"











UTILITARUL ‘CHECKER DOC_W&B’
PENTRU CONTROLUL DOCUMENTATIEI &
CALCULUL DE GRAVIMETRIE
IN CATIA V5






          
Utilitarul ‘CHECKER DOC_W&B’ este un postprocessor, pentru fisierele ‘CatProduct’ modelat pentru un proiect al unui produs in CATIA V5, realizat in Fortran sub Windows. Programul realizeaza controlul arborescentei (relatia ansamblu-component) a proiectului, de foarte mare utilitate, in faza de conceptie, dar nu numai. Pentru domenii specifice cum este de exemplu aviatia se poate obtine baza de date gravimetrice.
In CATIA V5, ansamblu este cunoscut ca ‘Assembly’,  iar un componente ca  ‘Part’. Un ‘Part’ poate fi un reper propiu-zis, normalizat, echipament, etc sau chiar ‘Assembly’, daca face parte din lista de componente ale unui alt ansamblu, considerat ca ansambu superior.  Programul are ca intrare doua fisiere unul de tip ‘Arbore’ cu extensie ‘bil’care se contine informatii referitoare la arborescenta iar al doilea de tip ‘Gravim’ cu extensia ‘grv’ si contine informatii referitoare la datele gravimetrice pentru ‘Part’ din fisierul de tip ‘Arbore’.
Utilitarul ‘CHECKER DOC_W&B’ analizeaza si semnalizeaza urmatoarele situatii:
1)  ‘Assembly’-uri  fara componente;
2)  ‘Part’-uri care nu sunt integrate intr-un  ‘Assembly’;
3)  Daca numarul de ‘Part’-uri folosite dintr-un ‘Assembly’ care apare in fisierul de tip  ‘Arbore
     coincide cu numarul de ‘Instance’ ale aceluiasi  ‘Part’-uri , care apare in fisierul de tip ‘GRAVIM’.

Fisierele folosite de programul ‘CHECKER DOC_W&B’ se obtin in CATIA V5 prin:

1)  Comanda ‘Bill of Materiala…‘, din care  rezulta fisierul de tip ‘Arbore’ cu extensia (*.bil). Acest fisier reprezinta explozia(‘Boom’) proiectului modelat in CATIA V5, in care sunt furnizate secvente  pentru fiecare  Assembly  informatii pentru componentele sale  indiferent daca acesta este  ‘Assembly’ sau Part’ :
Type | Part Number| Part Description | Quantity
in care:
Type                           – indica daca componentul este ‘Assembly’ sau ‘Part
Part Number              – codul component
Part Description       – denumire component                      
Quantity                     – numarul de componente utilizate in ansamblu superior


2) comanda  ‘Measure Inertia


Figura 1
 sau icon-ul:
 ambele activeaza caseta de dialog urmatoarea:

Figura 2
ne permite sa selectam informatiile necesare programului,obtinand un fisier de tip ‘Gravim’ cu extentia (*.grv). Acest tip de fisier contine datele gravimetrice urmatoare: 

-          densitate(kg/dm3)
-          centru de masa(mm)  in raport cu sistemul principal de referinta
-          momente de inertie (kg/m2) in raport cu sistemul principal de referinta 

pentru fiecare  ‘Part’ modelat cunoscut prin numele de ‘Instance’. Numarul de ‘Instance’ pentru un ‘Part’  in mod  normal ar trebui sa fie egal  cu valoarea ‘Quantity’ care apare in fisierul de de tip ‘Arbore’ pentru  acelas ‘Part’.
            In cazul in care, pentru un proiect au fost eliminate erorile de mai sus, utilitarul  ‘CHECKER DOC_W&B’ permite creerea bazei de date gravimetrice ale proiectului modelat in CATIA V5. Baza de date contine datele gravimetrice pentru oricare ansamblu(sub-ansamblu)  al proiectului, indiferent de nivelul de subordonare al ansamblului(sub-ansamblului)  in raport cu ansamblul principal.




1.0.FISIERE INPUT
1.1 FisierulArbore’ (name.bil)
Fisierul Arbore’ contine componentele Assemblysi ‘Part’ in relatie ansamblu-component ale fisierului ‘CatProduct’, elaborat in CATIA V5 pentru un proiect. Fisierul ‘Arbore’ se obtine prin comanda ‘Bill of Material…’ care activeaza caseta dialog de la Figura 2, in care prin tastarea buto- nului:
apare caseta de dialog:se va active caseta:

in care butonul:
prin care este activa urmatoarea caseta de dialog:


 in care utilizatorul vor selecta informatiile necesare fisierului 'name.bil'in ordinea dorita.

In CATIA V5  un fisier obtinut prin comanda ‘Bill of Material…’ poate fi salvat numai cu extensia ‘txt’, iar in programul ‘CHECKER DOC_W&B’ este folosit cu extensia (*.bil), motiv pentru care fisierul, va fi salvat cu numele ‘name.bil’  (name fiind indicat de utilizator), care ulterior prin comanda ‘rename’ devine ‘name.bil’ . Fisierul contine pentru fiecare ‘Assembly’ o secventa in care apare la inceput codul urmat de datele pentru componentele sale
Un fisier de tip ‘Arbore’, furnizat de CATIA V5, folosit in utilitarului  ‘CHECKER DOC_W&B’ este prezentat in continuare:









Figura 1
Fisierul ‘name.bil’ este creat pe ‘arborescenta’ asa numita ‘verticala’ dar in program va fi necesara organizarea arborescentei pe ‘orizontala’. Pentru a intelege notiunile de arborescenta verticala’ si ‘orizontala’ in figura 2 sunt prezentate cele doua tipuri de arborescenta  ale ansamblului principal “A1” .
Figura 2. Arborescenta
            Definirea tipului de arborescenta ‘verticala’ si ‘orizontala’ se prezinta in figura 2. in care arborescenta ‘orizontala’ este prezentata direct, in timp ce ordinea este data de nivelul de subor-donare fata de ansamblul ansamblu principal care are nivelul 0. Intr-o arborescenta ‘verticala’, dupa ansamblul principal care are nivelul 0, dupa care urmeaz  ‘Assembly’ si ‘Part’ care sunt de nivelul 1,  urmeaza cele de nivel 2 si asa pana la cele care sunt pe ultimul nivel.

1.2.Fisierul de tipGravim’ (name.grv)

Fisierul Gravim’ furnizeaza datele  gravimetrice   pentru orice ‘Part’ din fisierul ‘Arbore’, prin ‘Instance’. Datele gravimetrice sunt urmatoarele:
Component                 - reprezinta codul  Part’;
Densitatea()   - densitatea materialului din care se realizeaza reperul;
Masa()                   - masa Part’;
                  - centrul de greutate Part’, in sistemul de referinta principal; 
 - momentele sistemului  Part’ de inertie in raport cu sistemul principal de
                                       axe.
            In cazul in care un ‘Part’ este folosit de putin de 2 ori in ‘Assembly’, corespunzator valori data de ‘Quantity’,  in fisierul ‘Gravim’ ar trebui sa contina pentru acest ‘Part’ un numar identic de ‘Instance’.
            Dupa cum sa aminit mai inainte fisierul ‘Gravim’ se obtine in CATIA V5 prin caseta de dialog ‘Measure Inertia’ sau icon-ul  alaturat, prezentate mai jos:

oricare din ele activeaza caseta dialog de mai jos din partea stanga, in care prin butonul indicat de
sageata:








care va active caseta de dialog din dreapta pentru selectarea datelor gravimetrice in concordanta
cu programul ‘CHECKER DOC_W&B’ . Salvarea se poate face actionand butonul:
ca fisier EXCEL sau TEXT. In program fisierul este folosit cu extensia (*.grv) motiv pentru care salvarea se  face cu numele ‘name.grv’ cu extensia ‘txt’, deci ‘name.grv.txt’ si prin comanda ‘rename’ devine ‘name.

            Un fisierul Gravim’are urmatoare forma:
Un Part in fisierul ‘name.bil’ de tip ‘Arbore’’ daca are un codul  in fisierul ‘name.grv’ de tip ‘Gravim’ are in mod normal codurile    in care ‘n’ reprezina numarul de ‘Instance’ ale sale, de fapt numarul ‘Part’de aparitii in modelul ansamblului din care face parte, dupa cum s-a mai aminit ar trebui sa fie egal cu valoare data de ‘Quantity’ ale aceluiasi ‘Part’ din  fisierul ‘name.bil’ de tip ‘Arbore’, cum se prezinta mai jos:
                                                Fisier ‘name.grv




















Fisier ‘name.bil
Assembly
Type
Part Number
Part Description
Quantity
aaaaaaaa
Part
xxxxxxxx
name
n
…………………………………………………………………………………
                                                                                                                        


2.0 Prelucrare fisiere name.bil’ si  ‘name.grv
Figura 3
            In figura de mai sus se prezinta caseta de dialog a programului ‘CHECKER DOC_W&B’, in care sunt informatii referitoare la componentele sale. Acesta caseta va folosi in continuare pentru a se putea intelege cum lucreaza programul  ‘CHECKER DOC_W&B

2.1  Fisier name.bil
Datele din fisierul ‘name.bil’ dupa prelucrare vor fi stocate in arborecenta de tip ‘verticala’ in forma data de CATIA V5 in ComboBox_103. Initial se completeaza fiecare component ‘Assembly ’ si ‘Part’ cu ansamblu superior ,astfel incat fiecare component va avea  urmatoarele date:
Assembly upper | Type | Part/Assembly NumberQuantity
            In continuare  continuare se selecteaza ‘Part/Assembly Number’ care sunt ‘Assmbly’ si valoare ‘Quantity’ este de cel putin 2 fiind stocate in ComboBox_107 impreuna cu pozitia in fisierul ‘name.bil . In ComboBox_108 sortat sunt stocate toate  Part/Assembly Number’ de tip ‘Assmbly’ impreuna cu pozitia in fisierul ‘name.bil’. Deoarece in ComboBox_108 sunt stocate ordonat informatiile vom elimina acele linii care luate doua cate doua nu au codul reperul identic, adica se elimina acele subansamble care nu sunt folosite in cel putin doua subansamble superioare.


2.1.1 Cazul sub_’Assembly’ folosit cel putin de 2 ori intr-un ’Assembly’
            In acest caz situatia se prezinta astfel:
Din figura de mai sus pentru sub-‘Assembly’ (PQRS5320-09836-000)  folosit de 6 ori in cazul ‘Assembly’ (PQRS5320-09836-003)  in fisierul name.bil componentele apar o singura data in timp ce in fisierul ‘name.grv’ apar la rind de 6 ori consectutiv, ceeace conduce la urmatoarea modificare a fisierului ‘name.bil’ :
Ar mai fi posibila comasarea prin calcularea rezultatenlelor gravimetrice ale celor 6 repere PQRS5320-09837-200 si respective celor 12 normalizate MS21072L3 cu ajutorul  unor formulele ce vor fi prezentate ulterior. Acest mod de a rezolva problema unui sub_ansamblu folosit de mai multe ori intr-un ansamblu superior nu este optim deoarece la schimbarea pozitie unui sub_ansamblu din cele 6 ar complica procedurile de corectie a fisierului ‘CatProduct’.
2.1.2 Cazul sub_’Assembly’ folosit in diferite ’Assembly’
          In cazul in care un sub_’Assembly’ este folosit in diferite ’Assembly’ se prezinta in continuare cate doua secvente din fisierele ‘name.bil’ si ‘name.bil’:

din care se oberva folosirea sub_ansamblului PQRS5320-45200-000 in ansamble  PQRS5320-45100-000 si respective PQRS5320-45100-001. In fisierul ‘name.bil’ in cazul primului ansamblu (PQRS5320-45100-000) dupa sub_ ansamblu apar componentele sale in cazul folosirii aceluiasi sub_ ansamblu in cel al ansamblu (PQRS5320-45101-000)  componentele sub_ansamblului PQRS5320-45200-000 nu apar. In fisierul ‘name.grv’ componentele sub_ansamblului apar in mod coresepunzator. Corectarea situatiei se face prin complectarea fisierului ‘name.bil’ care se prezinta in continuare:

.
          Dupa efectuarea modificarilor fisierului ‘name.bil’ impuse de cele doua cazuri particulare de mai sus pentru toate sub_’Assembly’ se face o codificare a acestor situatii, in felul urmator:
1) A - Z cod pentru sub_’Assembly’ folosit de mai multe ori intr-un ’Assembly
    az cod pentru ‘Part’ continute in sub_’Assembly’ folosit de mai multe ori intr-un  ’Assembly’,
in care ordinea este data de:
         A,B,C… pentru  sub_’Assembly’, respectiv a,b,c… pentru ‘Part

2) AA - AZ cod pentru sub_’Assembly’ folosit in diferite ’Assembly
    AaAz cod pentru ‘Part’ continute in sub_’Assembly’ folosit in diferite ’Assembly’ 
in care deasemenea ordinea este data de:
              AA,AB,AC… pentru  sub_’Assembly’, respectiv Aa,Ab,Ac… pentru ‘Part
          Am amintit mai sus ca in fisierul ‘name.bil’ modelul corespunzator fisierului ‘CatProduct’ are arborescenta pe ‘verticala’ care pentru programul ‘CHECKER DOC_W&B’ este necesara sa fie organizata pe ‘orizontala. Organizarea arborescentei pe ‘orizontala’In acest scop se procedeaza in felul urmator:
- ‘Assembly’ principal(master) se considera a fi de nivel ‘0
- se adauga toate componentele ( ‘Part’ si ‘Assembly’ ) care au  ca ansamblu superior, ansamblul principal, atribuindu-le nivelul ‘1’; dupa fiecare ‘Assembly’ de nivel ‘1’ se adauga toate componentele fie ‘Part’ sau ‘Assembly’  care au ca ansamblu superior ‘Assembly’ de nivel ‘1’ respectiv; si se continua pana la ultimul ‘Part’. Este posibil ca sa ramana un numar ‘Part’-uri ne introduse in arborescenta ‘orizontala’ , care sunt ‘Part’-uri care nu au ansamblu superior, motiv pentru care vor fi considerate ca erori. Un alt tip de erori pot apar ‘Assembly’ care n-au componente. Aceasta eroare se poate semnala in primul caz daca din analiza insiruirii nivelelor  tuturor componentelor ( ‘Part’ si ‘Assembly’ ) sunt cel putin doua nivele identice pentru doua componente consecutive ambele de tip  ‘Assembly’ sau in al doilea caz daca dupa un nivel de ordinal ‘k urmatorul are nivelul  ‘k+2’ . Ca exemplu datele din ‘ComboBox_-103 in forma finala este prezentat mai jos:



2.2. Fisier name.grv
Datele referitoare la fisierul ‘name.grv’ vor fi stocate in ComboBox_104 dupa procesare. Fisierul  ‘name.grv’ dupa cum sa precizat pentru orice ‘Part’ contine urmatoarele informatii:
in care:
 ‘i’ reprezint numarul current al ‘Instance’ pentru ‘Part
  - masa(kg) si centrul de masa(m) 
  momente inertie (kg*m2)
centru de masa si momentele de inertie fiind date fata sistemul principal de referinta.        Pentru fiecare  ‘Part’ cu un un numar ‘n’ de ‘instance’ se aplica urmatoarele formule de calcul:
(1)

pentru compactarea intr-un singur  ‘Part’:
Dupa comasare, numarul ‘n’ de ‘Instance’ se inlocuieste si introdus fiind pozitia in fisierul ‘name.grv’In ComboBox_104 fisierul ‘name.grv’ devine:

                                                                                                           


3. Creerea fisierului de tip ‘BilGrv’
Pana in acest moment avem doua tipuri de fisiere:
1) ‘Arbore’ cu extensia ‘*.bil’ creat in CATIA V5 dintr-un fisier ‘CatProduct’ prin comanda
    ‘Bill Materials…’, care a fost  introdus in ComboBox_103
2) ‘Gravim’ cu extensia ‘*.grv’ creat in CATIA V5 dintr-un fisier ‘CatProduct’ prin comanda ‘Measu-
    re Inertia’ care a fost introdus in ComboBox_104
            In continuare vom introduce noul tip de fisier ‘BilGrv’ care reprezinta fisierul final de iesire care are extensia ‘*.csv’, care  ulterior va fi folosit ca fisier de intrare  in programul scris in Visual Basic sub fisierul EXCEL ‘sablon.xls’.
            Fisierul de tip ‘BilGrv’ este un fisier care are doua tipuri de inregistrari:
a)  caracteristica pentru ‘Part’ folosind inregistrarile din ComboBox_103 si ComboBox_104 cu
     urmatorele informatii:
Assembly            | Type      | Part  Number     | Part Descrption        |Qty|Nvl|Cod|PosBil|
si respective:
Part       | (kg)   | Xcg(m)   | Ycg(m)   | Zcg(m)   | Ixx     | Iyy      | Izz      | Ixy      | Ixz     | Iyz     | Density   |Ins|PosGrv|

b) caracteristica pentru ‘Assembly’ folosind inregistrarile din ComboBox_103 cu informatiile:
Assembly            | Type      | Assembly Number             | Part Descrption        |Qty|Nvl|Cod|PosBil|
                Fisierul de tip BilGrv ‘’ va contine inregistrare de urmatoarea forma:
Assembly|Type|Part Number|Part Descrption|Qty_B|m(kg)|Xcg|Ycg|Zcg|Ixx|Iyy|Izz|Ixy|Ixz|Iyz|Nvl|Cod|PosBil|Ins|PosGrv|Key|Density      (2)
pentru ‘Part’, si
 Assembly | Type | Assembly Number | Part Descrption | Qty_B |  |  |  |  |  |  |  |  |  |  | Nvl| Cod| PosBil |  |  | Key |               (3)
pentru ‘Assembly
In care ‘| este separator campuri
 ‘Nvl – Nivel subordonare in relatia ‘Assembly’- component (‘Part’, ‘Assembly’).  Assembly’ principal
avand Nvl=0
Cod’ – codificare cazuri:
            1) sub_ Assembly’ de cel putin 2 ori intr-un ‘Assembly
             2) sub_ Assembly’ folosit in diferite ‘Assembly’-uri
PosBil’ – pozitie ‘Part’ sau ‘Assembly’ in fisierul ‘name.bil
Ins – numar ‘Instance
PosGrv’ - pozitie ‘Part’ in fisierul ‘name.grv
Key’ – numar de ordine in fisierul de tip ‘BilGrv
Practic pentru a creia fisierul ‘BilGrv’ se urmaza pasi urmatori:
P1: se ia  linie cu linie continutul ComboBox_103
P21: daca  reprezinta un ‘Assembly’,  linia din ComboBox_105 va fi similara cu linia (3) de
        mai sus
P22: daca reprezinta un ‘Part’, se cauta in liniile din ComboBox_104 toate ‘Part’-urile care
        au acelas ‘Part Number’ cel din ComboBox_103 de la pasul P1; daca  sunt in diferite pozitii
        in ComboBox_104 aceste se vor compacta cu formulele(2), iar  ‘Ins’ se va inlocui cu suma
        tuturor  ‘Instance’ din pozitiile respective.
In final caracterul de separare ‘|’ este inlocuit cu ‘,’ ,datele rezultate pentru fisierul de tip ‘BilGrv’ sunt stocate in ComboBox_105
3. Calcul datelor gravimetrice
Pentru calculul datelor gravimetrice se folosesc informatiile din ‘ComboBox_105’. Calculul datelor gravimetrice tinand cont de faptul ca absolute orice ‘Assembly’ este urmat absolute de toate componentele sale indiferent daca sunt ‘Assembly’ sau ‘Part’. In momentul in care datele gravimetrice ale unui ‘Assembly’ au fost calculate, respectivul ‘Assembly’ este tratat de ansamblu superior ca un ‘Part’. In momentul in care au fost calculate datele gravimetrice pentru oricare ‘Assembly’ , linia (2) din ComboBox_105 corespunzatoare va fi inlocuita cu:
Assembly|Type|Part Number|Part Description|Qty_B|m(kg)|Xcg|Ycg|Zcg|Ixx|Iyy|Izz|Ixy|Ixz|Iyz|Nvl|Cod|PosBil|Ins|PosGrv|Key|Density      (3)
            Liniile din ComboBox_105 vor fi extrase secvential una dupa una se  ‘|’ se inlocuieste caracterul ‘,’ dupa care se scrie secvential in fisierul ‘main.csv’, care este un fisier de tip EXCEL.
 5.0 Fisierul EXCEL sablon.exe
            Pentru fisierul EXCEL ‘sablon.xls’ sa scris in VBA procedura ‘Start’, care modifica fisierului ‘main.csv’ prin creerea a trei ‘Sheets’ : ‘MAIN’ , ‘GRAVIM’ si ‘ ASSY’. Fisierul astfel modifica ‘main.csv’ poate fi salvat ca fisier EXCEL ca  ‘main.xls’, sau alt nume dorit de utilizator. In continuare se prezina doua cazuri de modele:
1) caz fisier ‘CatProduct’ corect in sensul ca nu are erori
2) caz fisier ‘CatProduct’ este eronat:
- Assembly fara componente
- Part-uri fara Assembly
- erori arborescenta
- diferenta intre Quantity si numar Instance