Component.Replace, file not found??

Component.Replace, file not found??

Preston_Reed
Advocate Advocate
336 Views
2 Replies
Message 1 of 3

Component.Replace, file not found??

Preston_Reed
Advocate
Advocate

Hello, I am having trouble with component.replace not being able to find a part.  I have no clue whats going on with this one, any help would be appreciated.  I am running a rule that replaces components and it refuses to work for some of these parts.  I copy and paste the the exact file name, i have 4 other sub mains doing similar component replace functions and they work, just not this one.  All of the parts its trying to find all live in our purchased parts drive so i dont know why one would work and not the other.  Ive been using this technique for a while and this is the first one to fail.  LugValve is failing here.  

 

PREED7QR59_0-1663011450485.png

 

Sub main 
	Flange
	Elbow
	Gasket
	LugValve
	CLAValve
	Parameters
End Sub	

Sub Flange
	
	Dim oAsmCompDef As AssemblyComponentDefinition
	oAsmCompDef = ThisDoc.Document.ComponentDefinition

	Dim oOccurrence As ComponentOccurrence

	Dim oDesc As String

	For Each oOccurrence In oAsmCompDef.Occurrences

		oDesc = oOccurrence.Name
		oDesc2 = Left(oDesc, 4)


		If oDesc2 = "5063" Then

			Select Case DSR

				Case = "2.0 in"
					Component.Replace(oDesc, "50633.ipt", True)

				Case = "3.0 in"
					Component.Replace(oDesc, "50635.ipt", True)

				Case = "4.0 in"
					Component.Replace(oDesc, "50637.ipt", True)
					
				Case = "5.0 in"
					Component.Replace(oDesc, "50638.ipt", True)

				Case = "6.0 in"
					Component.Replace(oDesc, "50639.ipt", True)
					
			End Select
		End If
	Next
End Sub

Sub Elbow
	
	Dim oAsmCompDef As AssemblyComponentDefinition
	oAsmCompDef = ThisDoc.Document.ComponentDefinition

	Dim oOccurrence As ComponentOccurrence

	Dim oDesc As String

	For Each oOccurrence In oAsmCompDef.Occurrences

		oDesc = oOccurrence.Name
		oDesc2 = Left(oDesc, 4)


		If oDesc2 = "5006" Then

			Select Case DSR

				Case = "2.0 in"
					Component.Replace(oDesc, "50063.ipt", True)

				Case = "3.0 in"
					Component.Replace(oDesc, "50065.ipt", True)

				Case = "4.0 in"
					Component.Replace(oDesc, "50067.ipt", True)
					
				Case = "5.0 in"
					Component.Replace(oDesc, "50068.ipt", True)

				Case = "6.0 in"
					Component.Replace(oDesc, "50069.ipt", True)
					
			End Select
		End If
	Next
End Sub

Sub Gasket

	Select Case DSR

		Case = "2.0 in"
			Component.IsActive("2.00 X 0.125 CL150:1") = True
			Component.IsActive("3.00 X 0.125 CL150:1") = False
			Component.IsActive("4.00 X 0.125 CL150:1") = False
			Component.IsActive("5.00 X 0.125 CL150:1") = False
			Component.IsActive("6.00 X 0.125 CL150:1") = False

		Case = "3.0 in"
			Component.IsActive("2.00 X 0.125 CL150:1") = False
			Component.IsActive("3.00 X 0.125 CL150:1") = True
			Component.IsActive("4.00 X 0.125 CL150:1") = False
			Component.IsActive("5.00 X 0.125 CL150:1") = False
			Component.IsActive("6.00 X 0.125 CL150:1") = False

		Case = "4.0 in"
			Component.IsActive("2.00 X 0.125 CL150:1") = False
			Component.IsActive("3.00 X 0.125 CL150:1") = False
			Component.IsActive("4.00 X 0.125 CL150:1") = True
			Component.IsActive("5.00 X 0.125 CL150:1") = False
			Component.IsActive("6.00 X 0.125 CL150:1") = False
				
		Case = "5.0 in"
			Component.IsActive("2.00 X 0.125 CL150:1") = False
			Component.IsActive("3.00 X 0.125 CL150:1") = False
			Component.IsActive("4.00 X 0.125 CL150:1") = False
			Component.IsActive("5.00 X 0.125 CL150:1") = True
			Component.IsActive("6.00 X 0.125 CL150:1") = False

		Case = "6.0 in"
			Component.IsActive("2.00 X 0.125 CL150:1") = False
			Component.IsActive("3.00 X 0.125 CL150:1") = False
			Component.IsActive("4.00 X 0.125 CL150:1") = False
			Component.IsActive("5.00 X 0.125 CL150:1") = False
			Component.IsActive("6.00 X 0.125 CL150:1") = True
				
	End Select
	
End Sub

Sub LugValve
	
	Dim oAsmCompDef As AssemblyComponentDefinition
	oAsmCompDef = ThisDoc.Document.ComponentDefinition

	Dim oOccurrence As ComponentOccurrence

	Dim oDesc As String

	For Each oOccurrence In oAsmCompDef.Occurrences

		oDesc = oOccurrence.Name
		oDesc2 = Left(oDesc, 3)


		If oDesc2 = "310" Then

			Select Case DSR

				Case = "2.0 in"
					Component.Replace(oDesc, "310200-BFA12375.ipt", True)

				Case = "3.0 in"
					Component.Replace(oDesc, "310300-BFA12375.ipt", True)

				Case = "4.0 in"
					Component.Replace(oDesc, "310400-BFA12375.ipt", True)
					
				Case = "5.0 in"
					Component.Replace(oDesc, "310500-BFA12375.ipt", True)

				Case = "6.0 in"
					Component.Replace(oDesc, "310600-BFA12375.ipt", True)
					
			End Select
		End If
	Next
End Sub

PREED7QR59_1-1663011901698.png

PREED7QR59_2-1663011953183.png

 

 

0 Likes
Accepted solutions (1)
337 Views
2 Replies
Replies (2)
Message 2 of 3

dalton98
Collaborator
Collaborator

Only thing I can think is changing the 'Replace all' to false, since you go through every component anyways. Also maybe try adding the full file name for those parts since they are not in the project folder.

0 Likes
Message 3 of 3

Preston_Reed
Advocate
Advocate
Accepted solution

Ok so i ended up finding out that for some reason this part is saved in multiple locations in our purchased drive.  Thats what was causing the issue. 

0 Likes