Upravljanje atributima CATIA V5

Embed Size (px)

DESCRIPTION

Upravljanje atributima u CATIA V5

Citation preview

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad

    Upravljanje atributima

    Studenti: Matija Roi , Domagoj Toplianec

    Kljune rijei: Parametrizacija, CATIA, Macro, Atributi, Inicijalizacijska datoteka, Korisniko suelje ...

    Zadatak: Upravljanje atributa kreiranje atributa iz inicijalizacijske datoteke te mogunost promijene vrijednosti putem korisnikog suelja u CATIA-i. Saetak Potrebno je bilo napraviti korisniko suelje u programskom paketu CATIA za upravljanje atributima aktivnog dijela (parta) ili sklopa (producta). Takoer je bilo potrebno omoguiti kreiranje i ispunjavanje atributa iz inicijalizacijske ili tekstualne datoteke u obliku jednostavnog predloka kako bi olakao postupak ispunjavanja atributa novih dijelova ili sklopova. Kako bi smo ispunili zadatak, osmisli smo korisniko suelje (slika 1) koje omoguava ispunjavanje zadanih atributa, kreiranje iz datoteke, te mogunost promjene i brisanje atributa i vrijednosti atributa.

    1 Opis rjeenja

    Korisniko suelje (slika 1) se sastoji od tri stranice. Na prvoj stranici su polja zadanih atributa kao to su Part number, Revision, Definition, Nomenclature, Source te Description. Na prvoj stranici se jo nalazi i gumb s kojim se potvruju ispunjena polja i time su dodani zadani atributi dijelu ili sklopu. Osim tog gumba, nalazi se si gumb za odabir predloka za atribute. Na drugoj stranici se nalazi lista za prikazivanje svih dodatnih atributa i njihovih vrijednosti te polje i gumb za unos novog dodatnog atributa. Na treoj stranici se nalazi ponovo lista za prikazivanje svih dodatnih atributa te mogunost odabira odreenog atributa i njegove vrijednosti kako bi se atribut ili vrijednost mogla preimenovati ili atribut izbrisati.

    Slika 1 - Korisniko suelje

    1

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad 2 Dijagram toka

    2

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad 3 Princip rada

    Za poetak je potrebno imati otvoreni aktivni dio (part) ili sklop (product) te uitati macro library NIIzadatak.catvba tako to se pod Tools odabere Macro, te potom Macros kao to je opisano slikom (slika 2). Nakon toga se pritiskom na Macro libraries... i Add existing library... odabere datoteka s nazivom NIIzadatak.catvba. To se mora uiniti samo jednom. Kada se to uradilo onda se odabere macro pod nazivom Pokretanje_UserForma te klikne na Run za pokretanje aplikacije.

    Slika 2 - Uitavanje i pokretanje macroa

    3

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Nakon to se pokrenuo macro, pojavi se korisniko suelje. Aplikacija odmah pri pokretanju oitava i ispisuje na suelju postojee zadane atribute i ako ima onda i dodatne atribute dijela ili sklopa.

    Slika 3 - Ispis postojei zadanih atributa

    Slika 4 - Ispis postojeih dodatnih atributa

    Slika 5 - Provjera tonosti ispisa

    4

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Programski kod za ispisivanje atributa prilikom pokretanja macroa:

    Nakon to su se ispisali postojei atributi, korisnik ima mogunost pritiskom na gumb Odaberi predloak odabrati postojei predloak (slika 6) ako se radi o novom dijelu ili sklopu da ga moe bre ispunit s zadanim ili dodatnim atributima.

    Slika 6 Predloak

    Private Sub UserForm_Activate() 'Kada se pokrene aplikacija, da uita trenutne atribute ComboBox1.AddItem "Made" ComboBox1.AddItem "Bought" ComboBox1.AddItem "Unknown" Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties TextBox1.Value = ActProd.PartNumber TextBox2.Value = ActProd.Revision TextBox3.Value = ActProd.Definition TextBox4.Value = ActProd.Nomenclature If ActProd.Source = catProductMade Then ComboBox1.Text = ("Made") ElseIf ActProd.Source = catProductBought Then ComboBox1.Text = ("Bought") ElseIf ActProd.Source = catProductUnknown Then ComboBox1.Text = ("Unknown") End If TextBox6.Value = ActProd.DescriptionRef End Sub

    5

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Nakon to se pritisne gumb, pojavit e se prozor za odabir predloka i nakon to se odabere eljeni, aplikacija e pitati ele li se izbrisati postojei dodatni atributi (slika 8). To je bitno ako se sluajno odabere krivi predloak, a u njemu ima mnogo dodatnih atributa, da ih se ne mora brisat jednog po jednog prije ponovnog odabira predloka. To naravno nije bitno ako se radi o novom dijelu ili sklopu jer oni kao takvi niti nemaju dodatne atribute, te nije bitno odabere li se da ili ne.

    Slika 7 - Odabir predloka

    Slika 8 - Brisanje postojeih dodatnih atributa

    Kada se odgovori na pitanje o brisanju dodatnih atributa, aplikacija e popuniti polja zadanih atributa na prvoj stranici korisnikog suelja te se oni moraju potvrditi s gumbom Ispuni zadane atribute. S obzirom da smo pretpostavili da su dodatni atributi uestaliji i kao takvi u predlocima su vaniji, oni se dodaju automatski iz predloka bez potrebe za potvrivanjem iz korisnikog suelja.

    6

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad

    Slika 9 - Uitani atributi iz predloka

    Programski kod za uitavanje atributa iz predloka pritiskom na gumb Odaberi predloak:

    Private Sub CommandButton8_Click() 'Gumb za odabir predloka On Error GoTo ErrorHandler Dim strFilePath As String Dim objFile As File Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties strFilePath = CATIA.FileSelectionBox("Odaberite predloak", "*.ini", 0) If strFilePath = "" Then Exit Sub Const ForReading = 1 Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile(strFilePath, ForReading)

    7

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad

    intAnswer = _ MsgBox("elite li izbrisati postojee dodatne atribute?", _ vbYesNo, "Brisanje dodatnih atributa") If intAnswer = vbYes Then prodNum = AllProps.Count Dim i As Integer For i = 0 To prodNum ErrorHandler: Resume Next Dim aParam As Parameter Set aParam = AllProps.Item(i) AllProps.Remove (i) Next Else End If Do Until objTextFile.AtEndOfStream strNextLine = objTextFile.ReadLine intLineFinder = InStr(strNextLine, "Part Number") If intLineFinder 0 Then TextBox1.Value = Replace(strNextLine, "Part Number:", "") End If intLineFinder = InStr(strNextLine, "Revision") If intLineFinder 0 Then TextBox2.Value = Replace(strNextLine, "Revision:", "") End If intLineFinder = InStr(strNextLine, "Definition") If intLineFinder 0 Then TextBox3.Value = Replace(strNextLine, "Definition:", "") End If intLineFinder = InStr(strNextLine, "Nomenclature") If intLineFinder 0 Then TextBox4.Value = Replace(strNextLine, "Nomenclature:", "") End If intLineFinder = InStr(strNextLine, "Source") If intLineFinder 0 Then ComboBox1.Text = Replace(strNextLine, "Source (Made,Bought ili Unknown):", "") End If intLineFinder = InStr(strNextLine, "Description") If intLineFinder 0 Then TextBox6.Value = Replace(strNextLine, "Description:", "") End If If Left(strNextLine, 7) = "Atribut" Then Dim A As String A = Replace(strNextLine, "Atribut:", "") Dim strParam1 As StrParam Set strParam1 = AllProps.CreateString(A, "") strParam1.Rename A End If If Left(strNextLine, 19) = "Vrijednost Atributa" Then Dim B As String B = Replace(strNextLine, "Vrijednost Atributa:", "") strParam1.ValuateFromString (B) End If Loop Set ActProd = ActProd.ReferenceProduct End Sub

    8

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Ako se radi o novom dijelu ili sklopu polja zadanih atributa u korisnikom suelju se mogu ili runo popunit ili odabirom predloka te se moraju potvrdit odabirom gumba Ispuni zadane atribute.

    Slika 10 - Ispuni zadane atribute

    Programski kod za gumb Ispuni zadane atribute:

    Private Sub CommandButton1_Click() 'Gumb za ispunjavanje atributa podacima iz polja Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties ActProd.PartNumber = TextBox1.Value ActProd.Revision = TextBox2.Value ActProd.Definition = TextBox3.Value ActProd.Nomenclature = TextBox4.Value If ComboBox1.Text = ("Made") Then ActProd.Source = catProductMade ElseIf ComboBox1.Text = ("Bought") Then ActProd.Source = catProductBought ElseIf ComboBox1.Text = ("Unknown") Then ActProd.Source = catProductUnknown End If ActProd.DescriptionRef = TextBox6.Value Set ActProd = ActProd.ReferenceProduct End Sub

    9

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Na drugoj stranici korisnikog suelja je mogunost dodavanja dodatnih atributa. Prvo se u prazno polje upie naziv novog dodatnog atributa te se pritiskom na gumb Dodaj i ispuni nove atribute pojavi prozor za upis vrijednosti dodavanog atributa, te se pritiskom na Ok kreira novi atribut i njegova vrijednost te se on pokae kao dodan na listu dodatnih atributa na istoj stranici suelja.

    Slika 11 - Dodavanje novog dodatnog atributa

    Programski kod za gumb Dodaj i ispuni nove atribute:

    Private Sub CommandButton3_Click() 'Gumb za dodavanje atributa i njegove vrijednosti Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties Dim strParam1 As StrParam Set strParam1 = AllProps.CreateString(TextBox7.Value, "") X = InputBox("Unesi vrijednost novog atributa", "Dodavanje novog atributa", "Vrijednost novog atributa") strParam1.ValuateFromString (X) strParam1.Rename TextBox7.Value Set ActProd = ActProd.ReferenceProduct

    10

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Na treoj stranici korisnikog suelja su mogunosti za promjenu naziva i vrijednosti, te brisanja odabranih postojeih dodatnih atributa. Ako korisnik eli promijeniti naziv odreenog atributa mora ga odabrati u izborniku Odaberi naziv atributa te kliknuti gumb Promjeni naziv odabranog atributa (slika 12). Nakon toga e se pojaviti prozor s poljem za unos novog naziva odabranog atributa, te kada se unese i stisne Ok, preimenovani atribut e se pojaviti na popisu atributa preimenovan.

    Slika 12 - Promjena naziva dodatnog atributa

    ListBox1.Clear ListBox2.Clear ListBox3.Clear ListBox4.Clear ComboBox4.Clear ComboBox5.Clear prodNum = AllProps.Count Dim i As Integer For i = 1 To prodNum Dim aParam As Parameter Set aParam = AllProps.Item(i) ListBox1.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") ListBox2.AddItem aParam.ValueAsString ComboBox4.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") ListBox4.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") ListBox3.AddItem aParam.ValueAsString ComboBox5.AddItem aParam.ValueAsString Next Set ActProd = ActProd.ReferenceProduct End Sub

    11

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Programski kod za gumb Promjeni naziv odabranog atributa:

    Private Sub CommandButton6_Click() 'Gumb za promjenu naziva dodanog atributa Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties prodNum = AllProps.Count Dim i As Integer For i = 1 To prodNum Dim aParam As Parameter Set aParam = AllProps.Item(i) If ComboBox4.Text = Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") Then Z = InputBox("Unesi novi naziv odabranog atributa", "Mjenjanje dodatnog atributa", ComboBox4.Text) aParam.Rename (Z) End If Next Set ActProd = ActProd.ReferenceProduct ListBox1.Clear ListBox2.Clear ListBox3.Clear ListBox4.Clear ComboBox4.Clear ComboBox5.Clear Dim j As Integer For j = 1 To prodNum Dim aParam1 As Parameter Set aParam1 = AllProps.Item(j) ListBox1.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox2.AddItem aParam1.ValueAsString ComboBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox3.AddItem aParam1.ValueAsString ComboBox5.AddItem aParam1.ValueAsString Next Set ActProd = ActProd.ReferenceProduct End Sub

    12

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Postupak promjene vrijednosti odabranog atributa i brisanje odabranog atributa se odvija na isti nain samo to se kod promjene vrijednosti atributa odabere vrijednost iz izbornika Odaberi vrijednost atributa te se stisne gumb Promjeni vrijednost odabranog atributa (slika 13).

    Slika 13 - Promjena vrijednosti odabranog atributa

    Programski kod za gumb Promjeni vrijednost odabranog atributa:

    Private Sub CommandButton7_Click() 'Gumb za promjenu vrijednosti dodanog atributa Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties prodNum = AllProps.Count Dim i As Integer For i = 1 To prodNum Dim aParam As Parameter Set aParam = AllProps.Item(i) If ComboBox5.Text = aParam.ValueAsString Then

    13

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Kod brisanja atributa se takoer odabere atribut koji se eli izbrisati iz izbornika Odaberi naziv atributa te se stisne gumb Izbrii odabrani atribut (slika 14).

    Slika 14 - Brisanje odabranog atributa

    T = InputBox("Unesi novu vrijednost odabranog atributa", "Mjenjanje dodatnog atributa", ComboBox5.Text) aParam.ValuateFromString (T) End If Next Set ActProd = ActProd.ReferenceProduct ListBox1.Clear ListBox2.Clear ListBox3.Clear ListBox4.Clear ComboBox4.Clear ComboBox5.Clear Dim j As Integer For j = 1 To prodNum Dim aParam1 As Parameter Set aParam1 = AllProps.Item(j) ListBox1.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox2.AddItem aParam1.ValueAsString ComboBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox3.AddItem aParam1.ValueAsString ComboBox5.AddItem aParam1.ValueAsString Next Set ActProd = ActProd.ReferenceProduct End Sub

    14

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Programski kod za gumb Izbrii odabrani atribut:

    Private Sub CommandButton9_Click() 'Gumb za brisanje atributa On Error GoTo ErrorHandler Dim ADoc As Document Set ADoc = CATIA.ActiveDocument Dim ActProd As Product If (InStr(ADoc.Name, "CATProduct") 0) Then Dim ProdDoc As ProductDocument Set ProdDoc = CATIA.ActiveDocument Set ActProd = ProdDoc.Product ElseIf (InStr(ADoc.Name, "CATPart") 0) Then Dim PartDoc As PartDocument Set PartDoc = CATIA.ActiveDocument Set ActProd = PartDoc.Product End If Dim allprods As Products Set allprods = ActProd.Products Dim AllProps As Parameters Set AllProps = ActProd.UserRefProperties prodNum = AllProps.Count Dim i As Integer For i = 1 To prodNum Dim aParam As Parameter Set aParam = AllProps.Item(i) ErrorHandler: Resume Next If ComboBox4.Text = Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") Then AllProps.Remove (ComboBox4.Text) End If Next Set ActProd = ActProd.ReferenceProduct ListBox1.Clear ListBox2.Clear ListBox3.Clear ListBox4.Clear ComboBox4.Clear ComboBox5.Clear prodNum2 = AllProps.Count Dim j As Integer For j = 1 To prodNum2 Dim aParam1 As Parameter Set aParam1 = AllProps.Item(j) ListBox1.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox2.AddItem aParam1.ValueAsString ComboBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "") ListBox3.AddItem aParam1.ValueAsString ComboBox5.AddItem aParam1.ValueAsString Next Set ActProd = ActProd.ReferenceProduct End Sub

    15

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Na slici 15 se vidi da je aplikacija odradila prikazani posao.

    Slika 15 - Provjera rada aplikacije

    16

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad 4 Ukupni programski kod Private Sub UserForm_Activate() 'Kada se pokrene aplikacija, da uita trenutne atribute

    ComboBox1.AddItem "Made"

    ComboBox1.AddItem "Bought"

    ComboBox1.AddItem "Unknown"

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    TextBox1.Value = ActProd.PartNumber

    TextBox2.Value = ActProd.Revision

    TextBox3.Value = ActProd.Definition

    TextBox4.Value = ActProd.Nomenclature

    If ActProd.Source = catProductMade Then

    ComboBox1.Text = ("Made")

    ElseIf ActProd.Source = catProductBought Then

    ComboBox1.Text = ("Bought")

    ElseIf ActProd.Source = catProductUnknown Then

    ComboBox1.Text = ("Unknown")

    End If

    TextBox6.Value = ActProd.DescriptionRef

    End Sub

    Private Sub CommandButton8_Click() 'Gumb za odabir predloka

    On Error GoTo ErrorHandler

    Dim strFilePath As String

    Dim objFile As File

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    17

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    strFilePath = CATIA.FileSelectionBox("Odaberite predloak", "*.ini", 0)

    If strFilePath = "" Then Exit Sub

    Const ForReading = 1

    Const ForWriting = 2

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objTextFile = objFSO.OpenTextFile(strFilePath, ForReading)

    intAnswer = _

    MsgBox("elite li izbrisati postojee dodatne atribute?", _

    vbYesNo, "Brisanje dodatnih atributa")

    If intAnswer = vbYes Then

    prodNum = AllProps.Count

    Dim i As Integer

    For i = 0 To prodNum

    ErrorHandler:

    Resume Next

    Dim aParam As Parameter

    Set aParam = AllProps.Item(i)

    AllProps.Remove (i)

    AllProps.Remove (i + 1)

    AllProps.Remove (i - 1)

    AllProps.Remove (i + 2)

    AllProps.Remove (i - 2)

    AllProps.Remove (i + 3)

    AllProps.Remove (i - 3)

    AllProps.Remove (i + 4)

    AllProps.Remove (i - 4)

    Next

    Else

    End If

    Do Until objTextFile.AtEndOfStream

    strNextLine = objTextFile.ReadLine

    intLineFinder = InStr(strNextLine, "Part Number")

    If intLineFinder 0 Then

    TextBox1.Value = Replace(strNextLine, "Part Number:", "")

    End If

    intLineFinder = InStr(strNextLine, "Revision")

    If intLineFinder 0 Then

    TextBox2.Value = Replace(strNextLine, "Revision:", "")

    18

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad End If

    intLineFinder = InStr(strNextLine, "Definition")

    If intLineFinder 0 Then

    TextBox3.Value = Replace(strNextLine, "Definition:", "")

    End If

    intLineFinder = InStr(strNextLine, "Nomenclature")

    If intLineFinder 0 Then

    TextBox4.Value = Replace(strNextLine, "Nomenclature:", "")

    End If

    intLineFinder = InStr(strNextLine, "Source")

    If intLineFinder 0 Then

    ComboBox1.Text = Replace(strNextLine, "Source (Made,Bought ili Unknown):", "")

    End If

    intLineFinder = InStr(strNextLine, "Description")

    If intLineFinder 0 Then

    TextBox6.Value = Replace(strNextLine, "Description:", "")

    End If

    If Left(strNextLine, 7) = "Atribut" Then

    Dim A As String

    A = Replace(strNextLine, "Atribut:", "")

    Dim strParam1 As StrParam

    Set strParam1 = AllProps.CreateString(A, "")

    strParam1.Rename A

    End If

    If Left(strNextLine, 19) = "Vrijednost Atributa" Then

    Dim B As String

    B = Replace(strNextLine, "Vrijednost Atributa:", "")

    strParam1.ValuateFromString (B)

    End If

    Loop

    Set ActProd = ActProd.ReferenceProduct

    End Sub

    Private Sub CommandButton1_Click() 'Gumb za ispunjavanje atributa podacima iz polja

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    19

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    ActProd.PartNumber = TextBox1.Value

    ActProd.Revision = TextBox2.Value

    ActProd.Definition = TextBox3.Value

    ActProd.Nomenclature = TextBox4.Value

    If ComboBox1.Text = ("Made") Then

    ActProd.Source = catProductMade

    ElseIf ComboBox1.Text = ("Bought") Then

    ActProd.Source = catProductBought

    ElseIf ComboBox1.Text = ("Unknown") Then

    ActProd.Source = catProductUnknown

    End If

    ActProd.DescriptionRef = TextBox6.Value

    Set ActProd = ActProd.ReferenceProduct

    End Sub

    Private Sub MultiPage1_Click(ByVal Index As Long) 'Upisivanje atributa u tablice i izbornike na drugoj stranici aplikacije

    ListBox1.Clear

    ListBox2.Clear

    ListBox3.Clear

    ListBox4.Clear

    ComboBox4.Clear

    ComboBox5.Clear

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    prodNum = AllProps.Count

    Dim i As Integer

    For i = 1 To prodNum

    Dim aParam As Parameter

    Set aParam = AllProps.Item(i)

    ListBox1.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox2.AddItem aParam.ValueAsString

    ComboBox4.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "")

    20

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad ListBox4.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox3.AddItem aParam.ValueAsString

    ComboBox5.AddItem aParam.ValueAsString

    Next

    Set ActProd = ActProd.ReferenceProduct

    End Sub

    Private Sub CommandButton3_Click() 'Gumb za dodavanje atributa i njegove vrijednosti

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    Dim strParam1 As StrParam

    Set strParam1 = AllProps.CreateString(TextBox7.Value, "")

    X = InputBox("Unesi vrijednost novog atributa", "Dodavanje novog atributa", "Vrijednost novog atributa")

    strParam1.ValuateFromString (X)

    strParam1.Rename TextBox7.Value

    Set ActProd = ActProd.ReferenceProduct

    ListBox1.Clear

    ListBox2.Clear

    ListBox3.Clear

    ListBox4.Clear

    ComboBox4.Clear

    ComboBox5.Clear

    prodNum = AllProps.Count

    Dim i As Integer

    For i = 1 To prodNum

    Dim aParam As Parameter

    Set aParam = AllProps.Item(i)

    ListBox1.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox2.AddItem aParam.ValueAsString

    ComboBox4.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox4.AddItem Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox3.AddItem aParam.ValueAsString

    ComboBox5.AddItem aParam.ValueAsString

    Next

    21

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Set ActProd = ActProd.ReferenceProduct

    End Sub

    Private Sub CommandButton6_Click() 'Gumb za promjenu naziva dodanog atributa

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    prodNum = AllProps.Count

    Dim i As Integer

    For i = 1 To prodNum

    Dim aParam As Parameter

    Set aParam = AllProps.Item(i)

    If ComboBox4.Text = Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") Then

    Z = InputBox("Unesi novi naziv odabranog atributa", "Mjenjanje dodatnog atributa", ComboBox4.Text)

    aParam.Rename (Z)

    End If

    Next

    Set ActProd = ActProd.ReferenceProduct

    ListBox1.Clear

    ListBox2.Clear

    ListBox3.Clear

    ListBox4.Clear

    ComboBox4.Clear

    ComboBox5.Clear

    Dim j As Integer

    For j = 1 To prodNum

    Dim aParam1 As Parameter

    Set aParam1 = AllProps.Item(j)

    ListBox1.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox2.AddItem aParam1.ValueAsString

    ComboBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox3.AddItem aParam1.ValueAsString

    ComboBox5.AddItem aParam1.ValueAsString

    22

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Next

    Set ActProd = ActProd.ReferenceProduct

    End Sub

    Private Sub CommandButton7_Click() 'Gumb za promjenu vrijednosti dodanog atributa

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    prodNum = AllProps.Count

    Dim i As Integer

    For i = 1 To prodNum

    Dim aParam As Parameter

    Set aParam = AllProps.Item(i)

    If ComboBox5.Text = aParam.ValueAsString Then

    T = InputBox("Unesi novu vrijednost odabranog atributa", "Mjenjanje dodatnog atributa", ComboBox5.Text)

    aParam.ValuateFromString (T)

    End If

    Next

    Set ActProd = ActProd.ReferenceProduct

    ListBox1.Clear

    ListBox2.Clear

    ListBox3.Clear

    ListBox4.Clear

    ComboBox4.Clear

    ComboBox5.Clear

    Dim j As Integer

    For j = 1 To prodNum

    Dim aParam1 As Parameter

    Set aParam1 = AllProps.Item(j)

    ListBox1.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox2.AddItem aParam1.ValueAsString

    ComboBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox3.AddItem aParam1.ValueAsString

    ComboBox5.AddItem aParam1.ValueAsString

    23

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad Next

    Set ActProd = ActProd.ReferenceProduct

    End Sub

    Private Sub CommandButton9_Click() 'Gumb za brisanje atributa

    On Error GoTo ErrorHandler

    Dim ADoc As Document

    Set ADoc = CATIA.ActiveDocument

    Dim ActProd As Product

    If (InStr(ADoc.Name, "CATProduct") 0) Then

    Dim ProdDoc As ProductDocument

    Set ProdDoc = CATIA.ActiveDocument

    Set ActProd = ProdDoc.Product

    ElseIf (InStr(ADoc.Name, "CATPart") 0) Then

    Dim PartDoc As PartDocument

    Set PartDoc = CATIA.ActiveDocument

    Set ActProd = PartDoc.Product

    End If

    Dim allprods As Products

    Set allprods = ActProd.Products

    Dim AllProps As Parameters

    Set AllProps = ActProd.UserRefProperties

    prodNum = AllProps.Count

    Dim i As Integer

    For i = 1 To prodNum

    Dim aParam As Parameter

    Set aParam = AllProps.Item(i)

    ErrorHandler:

    Resume Next

    If ComboBox4.Text = Replace(aParam.Name, ActProd.PartNumber + "\Properties\", "") Then

    AllProps.Remove (ComboBox4.Text)

    End If

    Next

    Set ActProd = ActProd.ReferenceProduct

    ListBox1.Clear

    ListBox2.Clear

    ListBox3.Clear

    ListBox4.Clear

    ComboBox4.Clear

    ComboBox5.Clear

    prodNum2 = AllProps.Count

    Dim j As Integer

    For j = 1 To prodNum2

    Dim aParam1 As Parameter

    Set aParam1 = AllProps.Item(j)

    ListBox1.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox2.AddItem aParam1.ValueAsString

    ComboBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    24

  • Fakultet strojarstva i brodogradnje, Kolegij: Napredna inenjerska informatika, Seminarski rad ListBox4.AddItem Replace(aParam1.Name, ActProd.PartNumber + "\Properties\", "")

    ListBox3.AddItem aParam1.ValueAsString

    ComboBox5.AddItem aParam1.ValueAsString

    Next

    Set ActProd = ActProd.ReferenceProduct

    End Sub

    'Kraj aplikacije

    25

    Upravljanje atributimaStudenti: Matija Roi , Domagoj ToplianecKljune rijei: Parametrizacija, CATIA, Macro, Atributi, Inicijalizacijska datoteka, Korisniko suelje ...Zadatak: Upravljanje atributa kreiranje atributa iz inicijalizacijske datoteke te mogunost promijene vrijednosti putem korisnikog suelja u CATIA-i.1 Opis rjeenja2 Dijagram toka3 Princip rada4 Ukupni programski kod