iLogic parameter is causing rule to loop infinitely.

iLogic parameter is causing rule to loop infinitely.

alikhan.ganayev
Enthusiast Enthusiast
304 Views
0 Replies
Message 1 of 1

iLogic parameter is causing rule to loop infinitely.

alikhan.ganayev
Enthusiast
Enthusiast
Whenever the RolDiameter parameter is set to 60 and the rule is ran, it just loops endlessly and I don't know why. I can see it in the amount of parts in the right bottom corner, it just keeps loading more and more without stopping until I'm forced to shut inventor down. I think 10B1-28_2xT13_S119.ipt is giving me issues but I can't prove it yet. I've been breaking my head over this. Inventor 2019, Windows 10. Any ideas on how to identify what causes me to loop or just any suggestion?

 

InventorVb.UpdateWhenDone = True

Dim doc As AssemblyDocument = ThisDoc.Document
MyProject.Init(doc)

' # Paths

' ## Ketting
Dim pathMotorketting119 = _
	MyProject.KooponderdelenPath & _
	"\VERMEIRE" & _
	"\Vermeire - 10B1-36_3xT15_S119_H89.ipt"
Dim pathKettinglus119 = _
	MyProject.KooponderdelenPath & _
	"\VERMEIRE" & _
	"\Vermeire - 10B1-30_2xT15_S119.ipt"
Dim pathMotorketting119T13 = _
	MyProject.KooponderdelenPath & _
	"\VERMEIRE" & _
	"\Vermeire - 10B1-34_2xT13_1xT15_S119_H83.ipt"
Dim pathKettinglus119T13 = _
	MyProject.KooponderdelenPath & _
	"\VERMEIRE" & _
	"\Vermeire - 10B1-28_2xT13_S119.ipt"
Dim pathMotorketting135 = _
	MyProject.KooponderdelenPath & _
	"\VERMEIRE" & _
	"\Vermeire - 10B1-38_3xT15_S135_H92.ipt"
Dim pathKettinglus135 = _
	MyProject.KooponderdelenPath & _
	"\VERMEIRE" & _
	"\Vermeire - 10B1-32_2xT15_S135.ipt"
Dim pathKettinglus = ""
Dim pathMotorketting = ""
If Steek = 119 Then
	If RolDiameter = 60 Then
		pathKettinglus = pathKettinglus119T13
		pathMotorketting = pathMotorketting119T13
	Else
		pathKettinglus = pathKettinglus119
		pathMotorketting = pathMotorketting119
	End If
Else If Steek = 135 Then
	pathKettinglus = pathKettinglus135
	pathMotorketting = pathMotorketting135
End If

' ## Motor
Dim pathPowerSourceLineWithSwitch1 = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Geared motors" & _
	"\SIEMENS - 2KJ3601-1CE21-4FL1-Z_D21+H02+K01+K07+L02+L11+L75+M10+M55.ipt"
Dim pathPowerSourceInverterWithSwitch1 = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Geared motors" & _
	"\SIEMENS - 2KJ3601-1CE21-4FL1-Z_D21+H02+K01+K07+L02+L11+L75+M10+M55+P91+U01+U43+U71.ipt"
Dim pathPowerSourceInverterAndSwitchSeperate1 = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Geared motors" & _
	"\SIEMENS - 2KJ3601-1CE21-4FL1-Z_D21+H02+K01+K07+L02+L11+L75+M10+M59+P91+U01+U43.ipt"
Dim pathPowerSourceLineWithSwitch2 = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Geared motors" & _
	"\SIEMENS - 2KJ3601-1CE21-4FL1-Z_D11+H02+K01+K07+L02+L11+L75+M10+M65.ipt"
Dim pathPowerSourceInverterWithSwitch2 = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Geared motors" & _
	"\SIEMENS - 2KJ3601-1CE21-4FL1-Z_D11+H02+K01+K07+L02+L11+L75+M10+M65+P91+U01+U43+U71.ipt"
Dim pathPowerSourceInverterAndSwitchSeperate2 = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Geared motors" & _
	"\SIEMENS - 2KJ3601-1CE21-4FL1-Z_D11+H02+K01+K07+L02+L11+L75+M10+M61+P91+U01+U43.ipt"

Dim pathWerkschakelaar = _
	MyProject.StandaardStukkenPTPath & _
	"\99991000 - PR - Montageplaat werkschakelaar.ipt"
Dim pathSwitch = _
	MyProject.KooponderdelenPath & _
	"\SIEMENS\Switching Devices" & _
	"\SIEMENS - 3LD2064-1GP51.iam"

' ## Rollen
Dim pathRol89 = _
	MyProject.KooponderdelenPath & _
	"\INTERROLL" & _
	"\Interroll - CR3950_D89_20_M12_2x10B1T15.iam"
Dim pathRol80 = _
	MyProject.KooponderdelenPath & _
	"\INTERROLL" & _
	"\Interroll - CR3950_D80_20_M12_2x10B1T15.iam"
Dim pathRol60 = _
	MyProject.KooponderdelenPath & _
	"\INTERROLL" & _
	"\Interroll - CR3500_HEAVY_D60_17_M12_2x10B1T13.iam"

Dim pathRol As String = ""
If RolDiameter = 89 Then
	pathRol = pathRol89
Else If RolDiameter = 60 Then
	pathRol = pathRol60
Else
	pathRol = pathRol80
End If

' ## Kettingwiel motor
Dim pathKettingwielT15 = _
	MyProject.StandaardStukkenPTPath & _
	"\99991000 - PR - Kettingwiel motor.ipt"
Dim pathKettingwielT13 = _
	MyProject.StandaardStukkenPTPath & _
	"\99991000 - PR - Kettingwiel motor T13.iam"
Dim pathKettingwiel As String = ""
If RolDiameter = 60 Then
	pathKettingwiel = pathKettingwielT13
Else
	pathKettingwiel = pathKettingwielT15
End If

' # Stukken

' ## Ketting
Component.ReplaceIfDifferent("Motorketting",
	pathMotorketting, True)
Component.ReplaceIfDifferent("Kettinglus",
	pathKettinglus, True)

' ## Kettingwiel motor
Component.ReplaceIfDifferent("Kettingwiel",
	pathKettingwiel, False)

' ## Motor
If MotorRichting = 1 Then
	Select Case PowerSource
	Case PowerSourceLineWithSwitch
		Component.ReplaceIfDifferent("Aandrijfmotor", pathPowerSourceLineWithSwitch1, True_)
	Case PowerSourceInverterWithSwitch
		Component.ReplaceIfDifferent("Aandrijfmotor", pathPowerSourceInverterWithSwitch1, True_)
	Case PowerSourceInverterAndSwitchSeperate
		Component.ReplaceIfDifferent("Aandrijfmotor", pathPowerSourceInverterAndSwitchSeperate1, True_)
	End Select
Else If MotorRichting = -1 Then
	Select Case PowerSource
	Case PowerSourceLineWithSwitch
		Component.ReplaceIfDifferent("Aandrijfmotor", pathPowerSourceLineWithSwitch2, True_)
	Case PowerSourceInverterWithSwitch
		Component.ReplaceIfDifferent("Aandrijfmotor", pathPowerSourceInverterWithSwitch2, True_)
	Case PowerSourceInverterAndSwitchSeperate
		Component.ReplaceIfDifferent("Aandrijfmotor", pathPowerSourceInverterAndSwitchSeperate2, True_)
	End Select
End If
Constraints.AddMate("MateAandrijfmotor1", "Aandrijfmotor", "Face1",
                    "Spanplaat motor", "Face1",
                    e1InferredType := InferredTypeEnum.kInferredLine,
                    e2InferredType := InferredTypeEnum.kInferredLine,
                    solutionType := MateConstraintSolutionTypeEnum.kUndirectedSolutionType)
Constraints.AddAngle("AngleAandrijfmotor1", "Aandrijfmotor", "XY Plane", "",
                     "XY Plane", 0.00 deg,
                     AngleConstraintSolutionTypeEnum.kReferenceVectorSolution,
                     "", "XY Plane")
Constraints.AddMate("MateAandrijfmotor2", "Aandrijfmotor", "Face0",
                    "Spanplaat motor", "Face0")

' ### Schakelaar
ThisAssembly.BeginManage("Switch")
If AddSwitch Then
	Dim Montageplaat_werksch = Components.Add("Montageplaat werkschakelaar",
                                              pathWerkschakelaar)
	Montageplaat_werksch.Occurrence.SetDesignViewRepresentation("Colored", True)
    
    Dim SIEMENS_3LD2064_1GP5 = Components.Add("Switch",
                                              pathSwitch)
	SIEMENS_3LD2064_1GP5.Occurrence.SetDesignViewRepresentation("Colored", True)
    
    Constraints.AddInsert("InsertSwitch1",
                          {"Switch", "1"}, "Edge0",
                          "Montageplaat werkschakelaar", "Edge1",
                          axesOpposed := True)
    Constraints.AddInsert("InsertSwitch2", "Montageplaat werkschakelaar",
                          "Edge0",
                          {"Zijwang Aandrijving", "Zijwang aandrijving"},
                          "Edge4", axesOpposed := True)
    Constraints.AddMate("MateSwitch2",
                        {"Zijwang Aandrijving", "Zijwang aandrijving"},
                        "Face10", "Montageplaat werkschakelaar",
                        "Face0",
                        e1InferredType := InferredTypeEnum.kInferredLine,
                        e2InferredType := InferredTypeEnum.kInferredLine,
                        solutionType := MateConstraintSolutionTypeEnum.kUndirectedSolutionType)
    Constraints.AddMate("MateSwitch3", "Switch",
                        "YZ Plane", "Montageplaat werkschakelaar",
                        "XZ Plane")
End If
ThisAssembly.EndManage("Switch")

' ## Draadnet
Dim lengteGewenst = Math.Floor(Lengte / 100) * 100
Dim lengteNu = iAssembly.CurrentRowValue("Draadnet", "Length")

If lengteGewenst <> lengteNu Then
	i = iPart.FindRow("Draadnet", "Hoogte", "=", 60, "Breedte", "=", 100, "Length", "=", lengteGewenst)
End If

' ## Rollen
Component.ReplaceIfDifferent("Rol", pathRol, True)
Try
	Constraints.Delete("InsertRol")
	Constraints.AddInsert("InsertRol", {"Rol", "ShaftSideA"}, "Edge0",
                      {"Zijwang Aandrijving", "Zijwang aandrijving"},
                      "Rol1", axesOpposed := True,
                      lockRotation := True)
Catch e As Exception
End Try
Dim currentLength = iAssembly.CurrentRowValue("Rol", "Lengte")
Dim requestedLength = Breedte + 60
If currentLength <> requestedLength Then
	iAssembly.FindRow("Rol", "Lengte", "=", requestedLength)
End If

Parameter("UpdateColors") = True
0 Likes
305 Views
0 Replies
Replies (0)