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()
|
||||
Else
|
||||
'Model_3D.BuildGrating()
|
||||
Model_3D.BuildGrating()
|
||||
Drawing.Create_Model_For_Drawing()
|
||||
End If
|
||||
End Sub
|
||||
|
|
|
|||
|
|
@ -40,36 +40,79 @@ Public Class Individual_Frame_3D
|
|||
DT.Columns.Add("OFFSET_W", GetType(Integer))
|
||||
DT.Columns.Add("OFFSET_L", GetType(Integer))
|
||||
Dim DTRow As DataRow
|
||||
|
||||
Dim corners As New Dictionary(Of String, Boolean)
|
||||
|
||||
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
|
||||
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)
|
||||
Dim i2, i0 As Integer
|
||||
If i = 0 Then
|
||||
i0 = Data.gratingPoints.Rows.Count - 1
|
||||
Else
|
||||
i0 = i - 1
|
||||
End If
|
||||
|
||||
Dim i2 As Integer
|
||||
If i = Data.gratingPoints.Rows.Count - 1 Then
|
||||
i2 = 0
|
||||
Else
|
||||
i2 = i + 1
|
||||
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
|
||||
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
|
||||
|
|
@ -85,58 +128,64 @@ Public Class Individual_Frame_3D
|
|||
DTRow = DT.NewRow
|
||||
DTRow("TYPE") = "SIDE"
|
||||
|
||||
Dim missingCorner1 As Integer = 0
|
||||
Dim missingCorner2 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
|
||||
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)("NAME").substring(0, 1) = "P" AndAlso Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
||||
numOfP = 2
|
||||
|
||||
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
||||
If Data.gratingPoints.Rows(i)("Y") > Data.gratingPoints.Rows(i2)("Y") Then
|
||||
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
|
||||
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
|
||||
Else
|
||||
If Data.gratingPoints.Rows(i)("X") > Data.gratingPoints.Rows(i2)("X") Then
|
||||
DTRow("SIDE") = 4
|
||||
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 - 20 - numOfP * 200
|
||||
DTRow("OFFSET_W") = 0
|
||||
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
||||
DTRow("OFFSET_L") = 210
|
||||
|
||||
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
||||
If Data.gratingPoints.Rows(i)("Y") > Data.gratingPoints.Rows(i2)("Y") Then
|
||||
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 + Data.gratingPoints.Rows(i2)("Y") * 1000 + 10
|
||||
End If
|
||||
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
||||
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
|
||||
Else
|
||||
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
|
||||
If Data.gratingPoints.Rows(i)("X") > Data.gratingPoints.Rows(i2)("X") Then
|
||||
DTRow("SIDE") = 4
|
||||
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 - 20 - numOfP * 200
|
||||
DTRow("OFFSET_W") = 0
|
||||
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
|
||||
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
|
||||
DTRow("ROTATION") = 360 - DTRow("SIDE") * 90
|
||||
DT.Rows.Add(DTRow)
|
||||
End If
|
||||
DTRow("ROTATION") = 360 - DTRow("SIDE") * 90
|
||||
|
||||
If DTRow("LENGTH") >= 125 Then
|
||||
DT.Rows.Add(DTRow)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
Return DT
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
Imports XCCLibrary
|
||||
Imports SldWorks
|
||||
|
||||
Public Class Model_3D_Fill
|
||||
Private Shared designName As String
|
||||
|
|
@ -54,6 +55,7 @@ Public Class Model_3D_Fill
|
|||
designName = designTable.rows(0)("designName")
|
||||
groupClass.InstantiateGroup(designName, grNr, "START")
|
||||
|
||||
'Check_Interference()
|
||||
Recess_Indent()
|
||||
Delete_Obsolete()
|
||||
End Sub
|
||||
|
|
@ -603,4 +605,39 @@ Public Class Model_3D_Fill
|
|||
Return True
|
||||
End If
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue