Upload
domagoj-toplicanec
View
226
Download
1
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