Exporting a dimension list to an excel sheet

Exporting a dimension list to an excel sheet

Thomas_DIETSCHYFXTLC
Explorer Explorer
458 Views
3 Replies
Message 1 of 4

Exporting a dimension list to an excel sheet

Thomas_DIETSCHYFXTLC
Explorer
Explorer

Hello,

I have a problem with the rule I wrote, it exports all the dimensions and tolerance and position to an Excel sheet.
The problem is that for the radius dimensions the rule does not export and moreover I have an error and I can't find out where the problem comes from. Can anyone help me?

Thanks

 


AddReference "Microsoft.Office.Interop.Excel.dll"
Imports exe = Microsoft.Office.Interop.Excel


Dim oXLFile As String = "C:\TravailVault\revuplan.xlsx"
Dim oSheet As String = "Feuil1"


Dim oExcel As New Microsoft.Office.Interop.Excel.ApplicationClass
Dim oWB As Microsoft.Office.Interop.Excel.Workbook = oExcel.Workbooks.Add'.Open(oXLFile)
Dim oWS As Microsoft.Office.Interop.Excel.Worksheet = oWB.Worksheets.Item(oSheet)

Dim oCells As Microsoft.Office.Interop.Excel.Range = oWS.Cells

'oCells.item(2,1).value= b.Text.Text.ToString

Dim a As Inventor.DrawingDocument = ThisDrawing.Document
Dim s As Inventor.Sheet = a.ActiveSheet

Dim i As Integer = 1
'Dim E As Integer = Nombre_de_vue

Dim ord
Dim abss

Dim Tol_ang = iProperties.Value("Custom", "Tol_ang")
Dim Tol_line = iProperties.Value("Custom", "Tol_line")
Dim Tol_cham = iProperties.Value("Custom", "Tol_cham")
Dim Tol_cong = iProperties.Value("Custom", "Tol_cong")


oCells.Item(1, 2).value = "Cote"
oCells.Item(1, 3).value = "Tolerance Superieur"
oCells.Item(1, 4).value = "Tolerance inferieur"
oCells.Item(1, 1).value = "Position cote"



 
For Each b As Inventor.DrawingDimension In s.DrawingDimensions
	Dim v As Integer = b.Text.Origin.X

	Dim y As Integer = b.Text.Origin.Y

	If s.Size = 9997 Then 'format de feuille
		If s.Orientation = 10243 Then 'Portrait

			If v<5.75 Then
				ord = "D"
			End If

			If v >5.75 Then
				If x<10.5 Then
					ord = "C"
				End If
			End If

			If v >10.5 Then
				If x<15.25 Then
					ord = "B"
				End If
			End If

			If v >15.25 Then
				ord = "A"
			End If

			If y < 7.925 Then
				abss = "1"
			End If

			If y >7.925 Then
				If x<14.85 Then
					abss = "2"
				End If
			End If


			If y >14.85 Then
				If x<21.775 Then
					abss = "3"
				End If
			End If

			If y >21.775 Then

				abss = "4"
			End If
		End If
		If s.Orientation = 10242 Then 'Paysage

			If v<7.925 Then
				ord = "D"
			End If

			If v >7.925 Then
				If x<14.85 Then
					ord = "C"
				End If
			End If

			If v >14.85 Then
				If x<21.775 Then
					ord = "B"
				End If
			End If

			If v >21.775 Then
				ord = "A"
			End If

			If y < 5.75 Then
				abss = "1"
			End If

			If y >5.75 Then
				If x<10.5 Then
					abss = "2"
				End If
			End If


			If y >10.5 Then
				If x<15.25 Then
					abss = "3"
				End If
			End If

			If y >15.25 Then

				abss = "4"
			End If

		End If


	End If
If b.DimensionType = DimensionTypeEnum.kArcLengthForeshortenedDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	
	End If

If b.DimensionType = DimensionTypeEnum.kAngularDimensionType Then  'Partie cote angulaire




		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = ((b.Tolerance.Upper * 180) / PI) & "°"
			oCells.Item(i, 4).value = ((b.Tolerance.Lower * 180) / PI) & "°"
			oCells.Item(i, 1).value = ord & "-" & abss


		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = Tol_ang '((b.Tolerance.Upper * 180) / PI) & "°"
			oCells.Item(i, 4).value = Tol_ang'((b.Tolerance.Lower * 180) / PI) & "°"
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & ((b.Tolerance.Upper * 180) / PI)
			Dim dl As Double = "-" & ((b.Tolerance.Upper * 180) / PI)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = Tol_ang & "°"'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = Tol_ang & "°"'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper
			oCells.Item(i, 4).value = b.Tolerance.Lower
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
	End If
	'If b.DimensionType = DimensionTypeEnum.
	'End If
	If b.DimensionType = DimensionTypeEnum.kAngularForeshortenedDimensionType Then  'Partie cote angulaire





		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = ((b.Tolerance.Upper * 180) / PI) & "°"
			oCells.Item(i, 4).value = ((b.Tolerance.Lower * 180) / PI) & "°"
			oCells.Item(i, 1).value = ord & "-" & abss


		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = ((b.Tolerance.Upper * 180) / PI) & "°"
			oCells.Item(i, 4).value = ((b.Tolerance.Lower * 180) / PI) & "°"
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & ((b.Tolerance.Upper * 180) / PI) '& "°"
			Dim dl As Double = "-" & ((b.Tolerance.Upper * 180) / PI) '& "°"
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = Tol_ang & "°"'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = Tol_ang & "°"'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper
			oCells.Item(i, 4).value = b.Tolerance.Lower
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
	End If
If b.DimensionType = DimensionTypeEnum.kDiametricDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kAlignedDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kAlignedToCurveDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = d1'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kArcLengthDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	
	If b.DimensionType = DimensionTypeEnum.kArcLengthForeshortenedDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kHorizontalDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kLinearForeshortenedDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kNormalToCurveDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = dl'
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	
	If b.DimensionType = DimensionTypeEnum.kParallelDiametricDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kSymmetricDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	End If
	
	If b.DimensionType = DimensionTypeEnum.kVerticalDimensionType Then
	
		If b.Tolerance.ToleranceType = 31236 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31244 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss


		End If

		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31235 Then
			Dim du As Double = "+" & (b.Tolerance.Upper * 10)
			Dim dl As Double = "-" & (b.Tolerance.Upper * 10)
			'MsgBox("+"&(b.Tolerance.Upper*10).ToString)
			oCells.Item(i, 2).value = b.Text.Text
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10'du '"="+"" &(b.Tolerance.Upper*10)'"p"'"+" & b.Tolerance.Upper*10
			oCells.Item(i, 4).value = dl'"-" &(b.Tolerance.Lower*10)'"q"'"-" &b.Tolerance.Lower*10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31246 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))'Replace(b.Text.Text.ToString,"-","")
			oCells.Item(i, 3).value = b.Tolerance.Upper * 10
			oCells.Item(i, 4).value = b.Tolerance.Lower * 10
			oCells.Item(i, 1).value = ord & "-" & abss

		End If
		If b.Tolerance.ToleranceType = 31233 Then
			oCells.Item(i, 2).value = (Replace((Replace(b.Text.Text.ToString, "(", "")), ")", ""))
			oCells.Item(i, 3).value = Tol_line
			oCells.Item(i, 4).value = "-" & Tol_line
			oCells.Item(i, 1).value = ord & "-" & abss

		End If

	
	End If
	
	


	









Next


For Each d As Inventor.DrawingNote In s.DrawingNotes
	i = i + 1

	Dim O As Integer = d.Position.X
	Dim P As Integer = d.Position.Y

	If s.Size = 9997 Then 'format de feuille
		If s.Orientation = 10243 Then 'Portrait

			If O<5.75 Then
				ord = "D"
			End If

			If O >5.75 Then
				If O<10.5 Then
					ord = "C"
				End If
			End If

			If O >10.5 Then
				If O<15.25 Then
					ord = "B"
				End If
			End If

			If O >15.25 Then
				ord = "A"
			End If

			If P < 7.925 Then
				abss = "1"
			End If

			If P >7.925 Then
				If x<14.85 Then
					abss = "2"
				End If
			End If


			If P >14.85 Then
				If x<21.775 Then
					abss = "3"
				End If
			End If

			If P >21.775 Then

				abss = "4"
			End If
		End If
		If s.Orientation = 10242 Then 'Paysage

			If O<7.925 Then
				ord = "D"
			End If

			If O >7.925 Then
				If x<14.85 Then
					ord = "C"
				End If
			End If

			If O >14.85 Then
				If x<21.775 Then
					ord = "B"
				End If
			End If

			If O >21.775 Then
				ord = "A"
			End If

			If P < 5.75 Then
				abss = "1"
			End If

			If P >5.75 Then
				If x<10.5 Then
					abss = "2"
				End If
			End If


			If P >10.5 Then
				If x<15.25 Then
					abss = "3"
				End If
			End If

			If P >15.25 Then

				abss = "4"
			End If

		End If

	End If
	If d.Type = 117488384 Then

		oCells.Item(i, 2).value = d.Text
		oCells.Item(i, 1).value = ord & "-" & abss

	End If
	Next
	



oWB.SaveAs("C:\TravailVault\" & a.DisplayName & ".xlsx")

oWB.Close
0 Likes
Accepted solutions (1)
459 Views
3 Replies
Replies (3)
Message 2 of 4

WCrihfield
Mentor
Mentor

Hi @Thomas_DIETSCHYFXTLC.  Wow. 😲 That is a really long rule.  In the future, when you want to share a really long code, you can simply attach it to your forum post as a text file, instead of copying and pasting it into a code block within the forum post.  It's easier on the eyes that way.

 

Anyways, one thing I saw in a few different places throughout your code was where you were storing the value of something like a DrawingDimension.Text.Origin.X value or Position.X value to an Integer type variable.  Those Point2D.X properties return a Double type value, not an Integer, so you should change the Type of those variables to Double, instead of Integer.  I see in some places where you are even checking the returned value against a value with decimal places in it.  Integer's are whole numbers, and do not include a decimal place or any data to the right of where the decimal would be, so when you store Double type data to an Integer type variable, the value may be getting rounded off to a whole number.

Wesley Crihfield

EESignature

(Not an Autodesk Employee)

0 Likes
Message 3 of 4

Thomas_DIETSCHYFXTLC
Explorer
Explorer

Hi,

Ok but I have this error:

 

System.MissingMemberException: Le membre public 'DimensionType' du type 'RadiusGeneralDimension' est introuvable.
à Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
à Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
à ThisRule.Main()
à Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
à iLogic.RuleEvalContainer.ExecRuleEval(String execRule)

 

And I can't figure out where it comes from.

 

Thanks

0 Likes
Message 4 of 4

Michael.Navara
Advisor
Advisor
Accepted solution

Exception in your code was thrown because property "DimensionType" is not implemented by all dimension types.

Try to change your code to check type directly using TryCast . This approach makes your code more readable and you can work with strongly-typed variable inside the methods (intellisense works much better)  

Sub Main()

    Dim sheet As Sheet = ThisDrawing.ActiveSheet.Sheet

    For Each drawingDimension As DrawingDimension In sheet.DrawingDimensions

        TryProcessAngularGeneralDimension(TryCast(drawingDimension, AngularGeneralDimension))
        TryProcessDiameterGeneralDimension(TryCast(drawingDimension, DiameterGeneralDimension))
        TryProcessLinearGeneralDimension(TryCast(drawingDimension, LinearGeneralDimension))
        TryProcessRadiusGeneralDimension(TryCast(drawingDimension, RadiusGeneralDimension))

    Next
End Sub

Private Sub TryProcessAngularGeneralDimension(dimension As AngularGeneralDimension)
    If dimension Is Nothing Then Return
    'TODO: Do something useful with AngularGeneralDimension
End Sub

Private Sub TryProcessDiameterGeneralDimension(dimension As DiameterGeneralDimension)
    If dimension Is Nothing Then Return
    'TODO: Do something useful with DiameterGeneralDimension
End Sub

Private Sub TryProcessLinearGeneralDimension(dimension As LinearGeneralDimension)
    If dimension Is Nothing Then Return
    'TODO: Do something useful with LinearGeneralDimension
End Sub

Private Sub TryProcessRadiusGeneralDimension(dimension As RadiusGeneralDimension)
    If dimension Is Nothing Then Return
    'TODO: Do something useful with RadiusGeneralDimension
End Sub

 

0 Likes