Frame fix
This commit is contained in:
parent
5391cd3210
commit
3d3801c974
Binary file not shown.
|
|
@ -249,7 +249,7 @@ Public Class Individual
|
||||||
|
|
||||||
Model_3D_Fill.BuildGrid()
|
Model_3D_Fill.BuildGrid()
|
||||||
Else
|
Else
|
||||||
'Model_3D.BuildGrating()
|
Model_3D.BuildGrating()
|
||||||
Drawing.Create_Model_For_Drawing()
|
Drawing.Create_Model_For_Drawing()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
|
||||||
|
|
@ -40,36 +40,79 @@ Public Class Individual_Frame_3D
|
||||||
DT.Columns.Add("OFFSET_W", GetType(Integer))
|
DT.Columns.Add("OFFSET_W", GetType(Integer))
|
||||||
DT.Columns.Add("OFFSET_L", GetType(Integer))
|
DT.Columns.Add("OFFSET_L", GetType(Integer))
|
||||||
Dim DTRow As DataRow
|
Dim DTRow As DataRow
|
||||||
|
|
||||||
|
Dim corners As New Dictionary(Of String, Boolean)
|
||||||
|
|
||||||
For i = 0 To Data.gratingPoints.Rows.Count - 1
|
For i = 0 To Data.gratingPoints.Rows.Count - 1
|
||||||
If Data.gratingPoints.Rows(i)("RECESS OK") Then
|
|
||||||
DTRow = DT.NewRow
|
|
||||||
DTRow("TYPE") = "CORNER"
|
|
||||||
DTRow("CORNER") = Data.gratingPoints.Rows(i)("QUADRANT")
|
|
||||||
DTRow("ROTATION") = (Data.gratingPoints.Rows(i)("QUADRANT") - 1) * 90
|
|
||||||
|
|
||||||
If DTRow("CORNER") = 1 Then
|
Dim i2, i0 As Integer
|
||||||
DTRow("OFFSET_W") = gratingParameters("WIDTH")
|
If i = 0 Then
|
||||||
DTRow("OFFSET_L") = 0
|
i0 = Data.gratingPoints.Rows.Count - 1
|
||||||
ElseIf DTRow("CORNER") = 2 Then
|
Else
|
||||||
DTRow("OFFSET_W") = gratingParameters("WIDTH")
|
i0 = i - 1
|
||||||
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
|
||||||
ElseIf DTRow("CORNER") = 3 Then
|
|
||||||
DTRow("OFFSET_W") = 0
|
|
||||||
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
|
||||||
Else
|
|
||||||
DTRow("OFFSET_W") = 0
|
|
||||||
DTRow("OFFSET_L") = 0
|
|
||||||
End If
|
|
||||||
DT.Rows.Add(DTRow)
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim i2 As Integer
|
|
||||||
If i = Data.gratingPoints.Rows.Count - 1 Then
|
If i = Data.gratingPoints.Rows.Count - 1 Then
|
||||||
i2 = 0
|
i2 = 0
|
||||||
Else
|
Else
|
||||||
i2 = i + 1
|
i2 = i + 1
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If Data.gratingPoints.Rows(i)("RECESS OK") Then
|
||||||
|
Dim firstOK, secondOK As Boolean
|
||||||
|
|
||||||
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i0)("X") Then
|
||||||
|
If Math.Abs(Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i0)("Y")) * 1000 >= 210 Then
|
||||||
|
firstOK = True
|
||||||
|
Else
|
||||||
|
firstOK = False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If Math.Abs(Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i0)("X")) * 1000 >= 210 Then
|
||||||
|
firstOK = True
|
||||||
|
Else
|
||||||
|
firstOK = False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
||||||
|
If Math.Abs(Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i2)("Y")) * 1000 >= 210 Then
|
||||||
|
secondOK = True
|
||||||
|
Else
|
||||||
|
secondOK = False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If Math.Abs(Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 >= 210 Then
|
||||||
|
secondOK = True
|
||||||
|
Else
|
||||||
|
secondOK = False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If firstOK = True AndAlso secondOK = True Then
|
||||||
|
corners.Add(Data.gratingPoints.Rows(i)("NAME"), True)
|
||||||
|
DTRow = DT.NewRow
|
||||||
|
DTRow("TYPE") = "CORNER"
|
||||||
|
DTRow("CORNER") = Data.gratingPoints.Rows(i)("QUADRANT")
|
||||||
|
DTRow("ROTATION") = (Data.gratingPoints.Rows(i)("QUADRANT") - 1) * 90
|
||||||
|
If DTRow("CORNER") = 1 Then
|
||||||
|
DTRow("OFFSET_W") = gratingParameters("WIDTH")
|
||||||
|
DTRow("OFFSET_L") = 0
|
||||||
|
ElseIf DTRow("CORNER") = 2 Then
|
||||||
|
DTRow("OFFSET_W") = gratingParameters("WIDTH")
|
||||||
|
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
||||||
|
ElseIf DTRow("CORNER") = 3 Then
|
||||||
|
DTRow("OFFSET_W") = 0
|
||||||
|
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
||||||
|
Else
|
||||||
|
DTRow("OFFSET_W") = 0
|
||||||
|
DTRow("OFFSET_L") = 0
|
||||||
|
End If
|
||||||
|
DT.Rows.Add(DTRow)
|
||||||
|
Else
|
||||||
|
corners.Add(Data.gratingPoints.Rows(i)("NAME"), False)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
Dim sideFrame As Boolean = False
|
Dim sideFrame As Boolean = False
|
||||||
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
||||||
If Data.gratingPoints.Rows(i)("X") = Data.grossAreaPoints.Rows(0)("X") Or Data.gratingPoints.Rows(i)("X") = Data.grossAreaPoints.Rows(1)("X") Then
|
If Data.gratingPoints.Rows(i)("X") = Data.grossAreaPoints.Rows(0)("X") Or Data.gratingPoints.Rows(i)("X") = Data.grossAreaPoints.Rows(1)("X") Then
|
||||||
|
|
@ -85,58 +128,64 @@ Public Class Individual_Frame_3D
|
||||||
DTRow = DT.NewRow
|
DTRow = DT.NewRow
|
||||||
DTRow("TYPE") = "SIDE"
|
DTRow("TYPE") = "SIDE"
|
||||||
|
|
||||||
|
Dim missingCorner1 As Integer = 0
|
||||||
|
Dim missingCorner2 As Integer = 0
|
||||||
|
|
||||||
Dim numOfP As Integer = 0
|
Dim numOfP As Integer = 0
|
||||||
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" AndAlso Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" AndAlso Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
||||||
numOfP = 2
|
numOfP = 2
|
||||||
ElseIf Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Or Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
|
||||||
numOfP = 1
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
ElseIf Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Or Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
||||||
If Data.gratingPoints.Rows(i)("Y") > Data.gratingPoints.Rows(i2)("Y") Then
|
numOfP = 1
|
||||||
DTRow("SIDE") = 3
|
|
||||||
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i2)("Y")) * 1000 - 20 - numOfP * 200
|
|
||||||
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
|
||||||
DTRow("OFFSET_W") = 210
|
|
||||||
Else
|
|
||||||
DTRow("OFFSET_W") = Data.gratingW / 2 - Math.Abs(Data.gratingPoints.Rows(i2)("Y")) * 1000 + 10
|
|
||||||
End If
|
|
||||||
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
|
||||||
Else
|
|
||||||
DTRow("SIDE") = 1
|
|
||||||
DTRow("LENGTH") = (Data.gratingPoints.Rows(i2)("Y") - Data.gratingPoints.Rows(i)("Y")) * 1000 - 20 - numOfP * 200
|
|
||||||
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
|
||||||
DTRow("OFFSET_W") = DTRow("LENGTH") + 210
|
|
||||||
Else
|
|
||||||
DTRow("OFFSET_W") = DTRow("LENGTH") + Data.gratingW / 2 - Math.Abs(Data.gratingPoints.Rows(i)("Y")) * 1000 + 10
|
|
||||||
End If
|
|
||||||
DTRow("OFFSET_L") = 0
|
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
If Data.gratingPoints.Rows(i)("X") > Data.gratingPoints.Rows(i2)("X") Then
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
||||||
DTRow("SIDE") = 4
|
If Data.gratingPoints.Rows(i)("Y") > Data.gratingPoints.Rows(i2)("Y") Then
|
||||||
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 - 20 - numOfP * 200
|
DTRow("SIDE") = 3
|
||||||
DTRow("OFFSET_W") = 0
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i2)("Y")) * 1000 - 20 - numOfP * 200
|
||||||
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
||||||
DTRow("OFFSET_L") = 210
|
DTRow("OFFSET_W") = 210
|
||||||
|
Else
|
||||||
|
DTRow("OFFSET_W") = Data.gratingW / 2 + Data.gratingPoints.Rows(i2)("Y") * 1000 + 10
|
||||||
|
End If
|
||||||
|
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
||||||
Else
|
Else
|
||||||
DTRow("OFFSET_L") = Data.gratingL / 2 - Math.Abs(Data.gratingPoints.Rows(i2)("X")) * 1000 + 10
|
DTRow("SIDE") = 1
|
||||||
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i2)("Y") - Data.gratingPoints.Rows(i)("Y")) * 1000 - 20 - numOfP * 200
|
||||||
|
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
||||||
|
DTRow("OFFSET_W") = DTRow("LENGTH") + 210
|
||||||
|
Else
|
||||||
|
DTRow("OFFSET_W") = DTRow("LENGTH") + Data.gratingW / 2 + Data.gratingPoints.Rows(i)("Y") * 1000 + 10
|
||||||
|
End If
|
||||||
|
DTRow("OFFSET_L") = 0
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
DTRow("SIDE") = 2
|
If Data.gratingPoints.Rows(i)("X") > Data.gratingPoints.Rows(i2)("X") Then
|
||||||
DTRow("LENGTH") = (Data.gratingPoints.Rows(i2)("X") - Data.gratingPoints.Rows(i)("X")) * 1000 - 20 - numOfP * 200
|
DTRow("SIDE") = 4
|
||||||
DTRow("OFFSET_W") = gratingParameters("WIDTH")
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 - 20 - numOfP * 200
|
||||||
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
DTRow("OFFSET_W") = 0
|
||||||
DTRow("OFFSET_L") = DTRow("LENGTH") + 210
|
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
||||||
|
DTRow("OFFSET_L") = 210
|
||||||
|
Else
|
||||||
|
DTRow("OFFSET_L") = Data.gratingL / 2 + Data.gratingPoints.Rows(i2)("X") * 1000 + 10
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
DTRow("OFFSET_L") = DTRow("LENGTH") + Data.gratingL / 2 - Math.Abs(Data.gratingPoints.Rows(i)("X")) * 1000 + 10
|
DTRow("SIDE") = 2
|
||||||
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i2)("X") - Data.gratingPoints.Rows(i)("X")) * 1000 - 20 - numOfP * 200
|
||||||
|
DTRow("OFFSET_W") = gratingParameters("WIDTH")
|
||||||
|
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
||||||
|
DTRow("OFFSET_L") = DTRow("LENGTH") + 210
|
||||||
|
Else
|
||||||
|
DTRow("OFFSET_L") = DTRow("LENGTH") + Data.gratingL / 2 + Data.gratingPoints.Rows(i)("X") * 1000 + 10
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
DTRow("ROTATION") = 360 - DTRow("SIDE") * 90
|
||||||
DTRow("ROTATION") = 360 - DTRow("SIDE") * 90
|
|
||||||
DT.Rows.Add(DTRow)
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
If DTRow("LENGTH") >= 125 Then
|
||||||
|
DT.Rows.Add(DTRow)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Return DT
|
Return DT
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
Imports XCCLibrary
|
Imports XCCLibrary
|
||||||
|
Imports SldWorks
|
||||||
|
|
||||||
Public Class Model_3D_Fill
|
Public Class Model_3D_Fill
|
||||||
Private Shared designName As String
|
Private Shared designName As String
|
||||||
|
|
@ -54,6 +55,7 @@ Public Class Model_3D_Fill
|
||||||
designName = designTable.rows(0)("designName")
|
designName = designTable.rows(0)("designName")
|
||||||
groupClass.InstantiateGroup(designName, grNr, "START")
|
groupClass.InstantiateGroup(designName, grNr, "START")
|
||||||
|
|
||||||
|
'Check_Interference()
|
||||||
Recess_Indent()
|
Recess_Indent()
|
||||||
Delete_Obsolete()
|
Delete_Obsolete()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
@ -603,4 +605,39 @@ Public Class Model_3D_Fill
|
||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Shared Sub Check_Interference() ' Test Albins mocro för interference
|
||||||
|
|
||||||
|
Dim swApp As SldWorks.SldWorks
|
||||||
|
Dim swModel As SldWorks.ModelDoc2
|
||||||
|
Dim swAssy As SldWorks.AssemblyDoc
|
||||||
|
Dim CompArray(1) As SldWorks.Component2
|
||||||
|
Dim vCompArray As Object
|
||||||
|
Dim vIntCompArray As Object
|
||||||
|
Dim vIntFaceArray As Object
|
||||||
|
|
||||||
|
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
|
||||||
|
swModel = swApp.ActiveDoc
|
||||||
|
swAssy = swModel
|
||||||
|
Dim components = swAssy.GetComponents(True)
|
||||||
|
'For i = 0 To components.count - 1
|
||||||
|
' CompArray(i) = swAssy.GetComponentByName("Part2^Assem1-1")
|
||||||
|
'Next
|
||||||
|
|
||||||
|
vCompArray = components
|
||||||
|
swAssy.ToolsCheckInterference2(components.length, vCompArray, True, vIntCompArray, vIntFaceArray)
|
||||||
|
|
||||||
|
|
||||||
|
Dim Bodies(UBound(vIntFaceArray)) As Object
|
||||||
|
Dim BodyNames(UBound(vIntFaceArray)) As String
|
||||||
|
Dim CompNames(UBound(vIntFaceArray)) As String
|
||||||
|
|
||||||
|
For i = 0 To UBound(vIntFaceArray)
|
||||||
|
|
||||||
|
Bodies(i) = vIntFaceArray(i).GetBody
|
||||||
|
BodyNames(i) = Bodies(i).Name
|
||||||
|
CompNames(i) = vIntCompArray(i).Name2
|
||||||
|
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue