Setting initial values based on Overall length works fine, but later when I want set individual Panel width then it's not quite works. Below is my code. I changed names according to my schema. I know that I have changed the width limit only for the number of panels equal to 10, but I only try to test it only for that configuration. How make to run initial rule only after changing parameter "Length" or "Długość_Lw" acording to my name? After that I want change Panels Width (Szerokość_płaszcza_wewn) manually.
Dim app As Inventor.Application = ThisApplication
Dim doc As Document = app.ActiveDocument
inc = 1 ' rounding increment ( .125, .25, .5, etc)
'Clear all panels
For i = 1 To 10
Parameter("Szerokość_płaszcza_wewn_" & i) = 0
Next
'figure how many płaszczy wewnętrznych you need
Ilosc_płaszczy_wewn = Ceil(Round(Długość_Lw / Plaszcz_wewn_standard_szer, 1) / inc) * inc
If Ilosc_płaszczy_wewn > Max_ilosc_plaszczy_wewn Then Ilosc_płaszczy_wewn = Max_ilosc_plaszczy_wewn
TempWidth = Ilosc_płaszczy_wewn * Plaszcz_wewn_standard_szer
'MessageBox.Show("TempWidth = " & TempWidth, "Title")
Parameter("Plaszcz_wewn_dodatk_szer") = Plaszcz_wewn_standard_szer - (TempWidth - Parameter("Długość_Lw"))
'MessageBox.Show("Plaszcz_wewn_dodatk_szer = " & Parameter("Plaszcz_wewn_dodatk_szer"), "Title")
If Parameter("Plaszcz_wewn_dodatk_szer") > Plaszcz_wewn_max_szer Then
'MessageBox.Show("Odd Size", "Title")
For i = 1 To Ilosc_płaszczy_wewn
If Parameter("Plaszcz_wewn_dodatk_szer") > Plaszcz_wewn_max_szer Then 'max out first panels until last panel fits
Parameter("Szerokość_płaszcza_wewn_" & i) = Plaszcz_wewn_max_szer
Parameter("Plaszcz_wewn_dodatk_szer") = Parameter("Plaszcz_wewn_dodatk_szer") - (Plaszcz_wewn_max_szer - Plaszcz_wewn_standard_szer)
Else
If i <> Ilosc_płaszczy_wewn Then 'check for last panel
Parameter("Szerokość_płaszcza_wewn_" & i) = Plaszcz_wewn_standard_szer
Else
Parameter("Szerokość_płaszcza_wewn_" & i) = Parameter("Plaszcz_wewn_dodatk_szer")
End If
End If
Next
Else
'MessageBox.Show("Standard", "Title")
For i = 1 To Ilosc_płaszczy_wewn
If i <> Ilosc_płaszczy_wewn Then 'check for last panel
Parameter("Szerokość_płaszcza_wewn_" & i) = Plaszcz_wewn_standard_szer
Else
Parameter("Szerokość_płaszcza_wewn_" & i) = Parameter("Plaszcz_wewn_dodatk_szer")
End If
Next
End If
Suma_szer_plaszczy_wewn = Parameter("Szerokość_płaszcza_wewn_1") + Parameter("Szerokość_płaszcza_wewn_2") + Parameter("Szerokość_płaszcza_wewn_3") + Parameter("Szerokość_płaszcza_wewn_4") + Parameter("Szerokość_płaszcza_wewn_5") + Parameter("Szerokość_płaszcza_wewn_6") + Parameter("Szerokość_płaszcza_wewn_7") + Parameter("Szerokość_płaszcza_wewn_8") + Parameter("Szerokość_płaszcza_wewn_9") + Parameter("Szerokość_płaszcza_wewn_10")
'MessageBox.Show("Suma szerokości płaszczy wewn. = " & Suma_szer_plaszczy_wewn, "Title")
Dim oLOD As LevelOfDetailRepresentation
Dim oAsmCompDef As ComponentDefinition
oAsmCompDef = doc.ComponentDefinition
Try
oLOD = oAsmCompDef.RepresentationsManager.LevelOfDetailRepresentations.Item("iLogic").Activate(True)
Catch
Dim nLOD As LevelOfDetailRepresentation
nLOD = oAsmCompDef.RepresentationsManager.LevelOfDetailRepresentations.Add("iLogic")
oLOD = nLOD
Finally
oLOD = oAsmCompDef.RepresentationsManager.LevelOfDetailRepresentations.Item("iLogic").Activate(True)
End Try
If Ilosc_płaszczy_wewn = 1 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = False
Płaszcz_wewn_7 = False
Component.IsActive("Płaszcz wewn. VI:1") = False
Płaszcz_wewn_6 = False
Component.IsActive("Płaszcz wewn. V:1") = False
Płaszcz_wewn_5 = False
Component.IsActive("Płaszcz wewn. IV:1") = False
Płaszcz_wewn_4 = False
Component.IsActive("Płaszcz wewn. III:1") = False
Płaszcz_wewn_3 = False
Component.IsActive("Płaszcz wewn. II:1") = False
Płaszcz_wewn_2 = False
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Długość_Lw
ElseIf Ilosc_płaszczy_wewn = 2 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = False
Płaszcz_wewn_7 = False
Component.IsActive("Płaszcz wewn. VI:1") = False
Płaszcz_wewn_6 = False
Component.IsActive("Płaszcz wewn. V:1") = False
Płaszcz_wewn_5 = False
Component.IsActive("Płaszcz wewn. IV:1") = False
Płaszcz_wewn_4 = False
Component.IsActive("Płaszcz wewn. III:1") = False
Płaszcz_wewn_3 = False
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Szerokość_płaszcza_wewn_2 = Długość_Lw - Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
ElseIf Ilosc_płaszczy_wewn = 3 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = False
Płaszcz_wewn_7 = False
Component.IsActive("Płaszcz wewn. VI:1") = False
Płaszcz_wewn_6 = False
Component.IsActive("Płaszcz wewn. V:1") = False
Płaszcz_wewn_5 = False
Component.IsActive("Płaszcz wewn. IV:1") = False
Płaszcz_wewn_4 = False
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Szerokość_płaszcza_wewn_3 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
ElseIf Ilosc_płaszczy_wewn = 4 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = False
Płaszcz_wewn_7 = False
Component.IsActive("Płaszcz wewn. VI:1") = False
Płaszcz_wewn_6 = False
Component.IsActive("Płaszcz wewn. V:1") = False
Płaszcz_wewn_5 = False
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Szerokość_płaszcza_wewn_4 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
ElseIf Ilosc_płaszczy_wewn = 5 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = False
Płaszcz_wewn_7 = False
Component.IsActive("Płaszcz wewn. VI:1") = False
Płaszcz_wewn_6 = False
Component.IsActive("Płaszcz wewn. V:1") = True
Płaszcz_wewn_5 = True
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
Szerokość_płaszcza_wewn_5 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3 - Szerokość_płaszcza_wewn_4
Parameter("Płaszcz wewn. V:1", "Szerokość") = Szerokość_płaszcza_wewn_5
ElseIf Ilosc_płaszczy_wewn = 6 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = False
Płaszcz_wewn_7 = False
Component.IsActive("Płaszcz wewn. VI:1") = True
Płaszcz_wewn_6 = True
Component.IsActive("Płaszcz wewn. V:1") = True
Płaszcz_wewn_5 = True
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
Parameter("Płaszcz wewn. V:1", "Szerokość") = Szerokość_płaszcza_wewn_5
Szerokość_płaszcza_wewn_6 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3 - Szerokość_płaszcza_wewn_4 - Szerokość_płaszcza_wewn_5
Parameter("Płaszcz wewn. VI:1", "Szerokość") = Szerokość_płaszcza_wewn_6
ElseIf Ilosc_płaszczy_wewn = 7 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = False
Płaszcz_wewn_8 = False
Component.IsActive("Płaszcz wewn. VII:1") = True
Płaszcz_wewn_7 = True
Component.IsActive("Płaszcz wewn. VI:1") = True
Płaszcz_wewn_6 = True
Component.IsActive("Płaszcz wewn. V:1") = True
Płaszcz_wewn_5 = True
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
Parameter("Płaszcz wewn. V:1", "Szerokość") = Szerokość_płaszcza_wewn_5
Parameter("Płaszcz wewn. VI:1", "Szerokość") = Szerokość_płaszcza_wewn_6
Szerokość_płaszcza_wewn_7 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3 - Szerokość_płaszcza_wewn_4 - Szerokość_płaszcza_wewn_5 - Szerokość_płaszcza_wewn_6
Parameter("Płaszcz wewn. VII:1", "Szerokość") = Szerokość_płaszcza_wewn_7
ElseIf Ilosc_płaszczy_wewn = 8 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = False
Płaszcz_wewn_9 = False
Component.IsActive("Płaszcz wewn. VIII:1") = True
Płaszcz_wewn_8 = True
Component.IsActive("Płaszcz wewn. VII:1") = True
Płaszcz_wewn_7 = True
Component.IsActive("Płaszcz wewn. VI:1") = True
Płaszcz_wewn_6 = True
Component.IsActive("Płaszcz wewn. V:1") = True
Płaszcz_wewn_5 = True
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
Parameter("Płaszcz wewn. V:1", "Szerokość") = Szerokość_płaszcza_wewn_5
Parameter("Płaszcz wewn. VI:1", "Szerokość") = Szerokość_płaszcza_wewn_6
Parameter("Płaszcz wewn. VII:1", "Szerokość") = Szerokość_płaszcza_wewn_7
Szerokość_płaszcza_wewn_8 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3 - Szerokość_płaszcza_wewn_4 - Szerokość_płaszcza_wewn_5 - Szerokość_płaszcza_wewn_6 - Szerokość_płaszcza_wewn_7
Parameter("Płaszcz wewn. VIII:1", "Szerokość") = Szerokość_płaszcza_wewn_8
ElseIf Ilosc_płaszczy_wewn = 9 Then
Component.IsActive("Płaszcz wewn. X:1") = False
Płaszcz_wewn_10 = False
Component.IsActive("Płaszcz wewn. IX:1") = True
Płaszcz_wewn_9 = True
Component.IsActive("Płaszcz wewn. VIII:1") = True
Płaszcz_wewn_8 = True
Component.IsActive("Płaszcz wewn. VII:1") = True
Płaszcz_wewn_7 = True
Component.IsActive("Płaszcz wewn. VI:1") = True
Płaszcz_wewn_6 = True
Component.IsActive("Płaszcz wewn. V:1") = True
Płaszcz_wewn_5 = True
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
Parameter("Płaszcz wewn. V:1", "Szerokość") = Szerokość_płaszcza_wewn_5
Parameter("Płaszcz wewn. VI:1", "Szerokość") = Szerokość_płaszcza_wewn_6
Parameter("Płaszcz wewn. VII:1", "Szerokość") = Szerokość_płaszcza_wewn_7
Parameter("Płaszcz wewn. VIII:1", "Szerokość") = Szerokość_płaszcza_wewn_8
Szerokość_płaszcza_wewn_9 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3 - Szerokość_płaszcza_wewn_4 - Szerokość_płaszcza_wewn_5 - Szerokość_płaszcza_wewn_6 - Szerokość_płaszcza_wewn_7 - Szerokość_płaszcza_wewn_8
Parameter("Płaszcz wewn. IX:1", "Szerokość") = Szerokość_płaszcza_wewn_9
ElseIf Ilosc_płaszczy_wewn = 10 Then
Component.IsActive("Płaszcz wewn. X:1") = True
Płaszcz_wewn_10 = True
Component.IsActive("Płaszcz wewn. IX:1") = True
Płaszcz_wewn_9 = True
Component.IsActive("Płaszcz wewn. VIII:1") = True
Płaszcz_wewn_8 = True
Component.IsActive("Płaszcz wewn. VII:1") = True
Płaszcz_wewn_7 = True
Component.IsActive("Płaszcz wewn. VI:1") = True
Płaszcz_wewn_6 = True
Component.IsActive("Płaszcz wewn. V:1") = True
Płaszcz_wewn_5 = True
Component.IsActive("Płaszcz wewn. IV:1") = True
Płaszcz_wewn_4 = True
Component.IsActive("Płaszcz wewn. III:1") = True
Płaszcz_wewn_3 = True
Component.IsActive("Płaszcz wewn. II:1") = True
Płaszcz_wewn_2 = True
Component.IsActive("Płaszcz wewn. I:1") = True
Płaszcz_wewn_1 = True
Parameter("Płaszcz wewn. I:1", "Szerokość") = Szerokość_płaszcza_wewn_1
Parameter("Płaszcz wewn. II:1", "Szerokość") = Szerokość_płaszcza_wewn_2
Parameter("Płaszcz wewn. III:1", "Szerokość") = Szerokość_płaszcza_wewn_3
Parameter("Płaszcz wewn. IV:1", "Szerokość") = Szerokość_płaszcza_wewn_4
Parameter("Płaszcz wewn. V:1", "Szerokość") = Szerokość_płaszcza_wewn_5
Parameter("Płaszcz wewn. VI:1", "Szerokość") = Szerokość_płaszcza_wewn_6
Parameter("Płaszcz wewn. VII:1", "Szerokość") = Szerokość_płaszcza_wewn_7
Parameter("Płaszcz wewn. VIII:1", "Szerokość") = Szerokość_płaszcza_wewn_8
Parameter("Płaszcz wewn. IX:1", "Szerokość") = Szerokość_płaszcza_wewn_9
Szerokość_płaszcza_wewn_10 = Długość_Lw - Szerokość_płaszcza_wewn_1 - Szerokość_płaszcza_wewn_2 - Szerokość_płaszcza_wewn_3 - Szerokość_płaszcza_wewn_4 - Szerokość_płaszcza_wewn_5 - Szerokość_płaszcza_wewn_6 - Szerokość_płaszcza_wewn_7 - Szerokość_płaszcza_wewn_8 -Szerokość_płaszcza_wewn_9
If Szerokość_płaszcza_wewn_10 > Plaszcz_wewn_max_szer Then
Szerokość_płaszcza_wewn_10 = Plaszcz_wewn_max_szer
Parameter("Płaszcz wewn. X:1", "Szerokość") = Szerokość_płaszcza_wewn_10
End If
End If