Drawings fixed and measurments rearanged

This commit is contained in:
Anton 2021-02-22 10:32:29 +01:00
parent 35633bceb7
commit 9cd8e995ad
3 changed files with 84 additions and 41 deletions

View File

@ -137,8 +137,8 @@ Public Class GUI
' ---------------------------------- Export to SW ----------------------------------
' --- When export to SW button is pressed ---
Private Sub ExportSWButton_Click(sender As Object, e As EventArgs) Handles ExportSWButton.Click
Model_3D.BuildGrating()
'Drawing.CreateDrawing()
'Model_3D.BuildGrating()
Drawing.CreateDrawing()
End Sub
End Class

View File

@ -251,8 +251,13 @@
If mesName.Split("_")(0) <> "SS1" AndAlso index + 1 < Data.pointsMeasurements(mesName)(0) Then
Data.pointsMeasurements(mesName)(0) = Data.pointsMeasurements(mesName)(0) + 4
Data.pointsMeasurements(mesName)(1) = Data.pointsMeasurements(mesName)(1) + 4
ElseIf mesName.Split("_")(0) = "SS1" AndAlso index + 2 <= Data.pointsMeasurements(mesName)(1) Then
Data.pointsMeasurements(mesName)(1) = Data.pointsMeasurements(mesName)(1) + 4
ElseIf mesName.Split("_")(0) = "SS1" Then
If index + 2 <= Data.pointsMeasurements(mesName)(0) Then
Data.pointsMeasurements(mesName)(0) = Data.pointsMeasurements(mesName)(0) + 4
Data.pointsMeasurements(mesName)(1) = Data.pointsMeasurements(mesName)(1) + 4
ElseIf index + 2 <= Data.pointsMeasurements(mesName)(1) Then
Data.pointsMeasurements(mesName)(1) = Data.pointsMeasurements(mesName)(1) + 4
End If
End If
Next

View File

@ -103,40 +103,47 @@ Public Class Drawing
swSheet.SetTemplateName(GUI.filepath & "\X2021\Weland ritningsmallar\A3 Part.slddrt")
swSheet.ReloadTemplate(True)
Dim myView As View
myView = iDrawing.CreateDrawViewFromModelView3(GUI.filepath & "\Temp\TESTPART1.SLDPRT", "*Front", swSheetWidth / 2, swSheetHeight / 2, 0)
'Dim viewScale = myView.ScaleDecimal()
Dim viewScale As Double
myView.UseSheetScale() = True
Dim viewScale1, viewScale2 As Double
Dim lengthForDrawing As Integer = Data.gratingL
Dim widthForDrawing As Integer = Data.gratingW
If lengthForDrawing < widthForDrawing * 3 Then
'W styr
If widthForDrawing < 100 Then
viewScale = 1
viewScale1 = 1
viewScale2 = 1
ElseIf widthForDrawing < 200 Then
viewScale = 0.5
viewScale1 = 1
viewScale2 = 2
ElseIf widthForDrawing < 500 Then
viewScale = 0.2
viewScale1 = 1
viewScale2 = 5
Else
viewScale = 0.1
viewScale1 = 1
viewScale2 = 10
End If
Else
If lengthForDrawing < 300 Then
viewScale = 1
viewScale1 = 1
viewScale2 = 1
ElseIf lengthForDrawing < 600 Then
viewScale = 0.5
viewScale1 = 1
viewScale2 = 2
ElseIf lengthForDrawing < 1500 Then
viewScale = 0.2
viewScale1 = 1
viewScale2 = 5
ElseIf lengthForDrawing < 3000 Then
viewScale = 0.1
viewScale1 = 1
viewScale2 = 10
Else
viewScale = 0.05
viewScale1 = 1
viewScale2 = 20
End If
End If
myView.ScaleDecimal() = viewScale
swSheet.SetScale(viewScale1, viewScale2, False, False)
Dim swExtensions As SldWorks.ModelDocExtension
swExtensions = iDrawing.Extension
@ -144,21 +151,56 @@ Public Class Drawing
Dim CompName = RootComp.Name
Dim sortedMeasurments As New Dictionary(Of String, Integer())
Dim numOfMes As Integer = Data.pointsMeasurements.Count
sortedMeasurments.Add("Lmes", Data.pointsMeasurements("Lmes"))
Data.pointsMeasurements.Remove("Lmes")
sortedMeasurments.Add("Wmes", Data.pointsMeasurements("Wmes"))
Data.pointsMeasurements.Remove("Wmes")
For i = 2 To numOfMes - 1
Dim mesName As String = Data.pointsMeasurements.Keys(0)
Dim lowestValue As Double = 100000
For j = 0 To Data.pointsMeasurements.Count - 1
Dim measureName As String = Data.pointsMeasurements.Keys(j)
Dim measureDist As Double
If Data.pointsMeasurements(measureName)(2) = 1 OrElse Data.pointsMeasurements(measureName)(2) = 3 Then
Dim x1 As Double = Data.gratingPoints.Rows(Data.pointsMeasurements(measureName)(0) - 1)("X")
Dim x2 As Double = Data.gratingPoints.Rows(Data.pointsMeasurements(measureName)(1) - 1)("X")
measureDist = Math.Abs(x1 - x2)
Else
Dim y1 As Double = Data.gratingPoints.Rows(Data.pointsMeasurements(measureName)(0) - 1)("Y")
Dim y2 As Double = Data.gratingPoints.Rows(Data.pointsMeasurements(measureName)(1) - 1)("Y")
measureDist = Math.Abs(y1 - y2)
End If
If measureDist < lowestValue Then
lowestValue = measureDist
mesName = measureName
End If
Next
sortedMeasurments.Add(mesName, Data.pointsMeasurements(mesName))
Data.pointsMeasurements.Remove(mesName)
Next
Dim OutLine = myView.GetOutline
Dim X_Mid = (OutLine(2) - OutLine(0)) / 2 + OutLine(0)
Dim Y_Mid = (OutLine(3) - OutLine(1)) / 2 + OutLine(1)
Dim scaleDecimal As Double = viewScale1 / viewScale2
For i = 2 To Data.pointsMeasurements.Count - 1
Dim mesName As String = Data.pointsMeasurements.Keys(i)
Add_Dimensions(Data.pointsMeasurements(mesName), CompName, myView, iDrawing, swExtensions, OutLine, viewScale, X_Mid, Y_Mid)
For i = 2 To sortedMeasurments.Count - 1
Dim mesName As String = sortedMeasurments.Keys(i)
Add_Dimensions(sortedMeasurments(mesName), CompName, myView, iDrawing, swExtensions, OutLine, scaleDecimal, X_Mid, Y_Mid)
Next
Add_Dimensions(Data.pointsMeasurements("Lmes"), CompName, myView, iDrawing, swExtensions, OutLine, viewScale, X_Mid, Y_Mid)
Add_Dimensions(Data.pointsMeasurements("Wmes"), CompName, myView, iDrawing, swExtensions, OutLine, viewScale, X_Mid, Y_Mid)
Add_Dimensions(sortedMeasurments("Lmes"), CompName, myView, iDrawing, swExtensions, OutLine, scaleDecimal, X_Mid, Y_Mid)
Add_Dimensions(sortedMeasurments("Wmes"), CompName, myView, iDrawing, swExtensions, OutLine, scaleDecimal, X_Mid, Y_Mid)
Dim myView2 As View
myView2 = iDrawing.CreateDrawViewFromModelView3(GUI.filepath & "\Temp\TESTPART1.SLDPRT", "*Bottom", swSheetWidth / 2, OutLine(3) + sideCounter(0) * 0.01 + 0.03, 0)
myView2.ScaleDecimal() = viewScale
myView2.UseSheetScale() = True
Dim OutLine2 = myView2.GetOutline
@ -186,7 +228,7 @@ Public Class Drawing
End Sub
Private Shared Sub Add_Dimensions(points() As Integer, CompName As String, myView As View, iDrawing As DrawingDoc, swExtensions As SldWorks.ModelDocExtension _
, OutLine() As Double, viewScale As Double, X_Mid As Double, Y_Mid As Double)
, OutLine() As Double, scaleDecimal As Double, X_Mid As Double, Y_Mid As Double)
Dim measurement As IDisplayDimension
Dim point1NameSW As String = "Point" & points(0) & "@Sketch1@" & CompName & "@" & myView.GetName2
@ -199,12 +241,10 @@ Public Class Drawing
Dim mesOffset = 0.01
If points(2) = 1 OrElse points(2) = 3 Then
'Dim point1 As Decimal = Draw_Grating.points(Draw_Grating.pointsOrder(points(0) - 1))(2)
Dim point1 As Integer = Data.gratingPoints.Rows(points(0) - 1)("X")
'Dim point2 As Decimal = Draw_Grating.points(Draw_Grating.pointsOrder(points(1) - 1))(2)
Dim point2 As Integer = Data.gratingPoints.Rows(points(1) - 1)("X")
Dim point1 As Double = Data.gratingPoints.Rows(points(0) - 1)("X")
Dim point2 As Double = Data.gratingPoints.Rows(points(1) - 1)("X")
Dim xPos As Decimal
Dim xPos As Double
If Math.Abs(point1) > Math.Abs(point2) Then
xPos = point2 + (point1 - point2) / 2
Else
@ -212,17 +252,15 @@ Public Class Drawing
End If
If points(2) = 1 Then
measurement = iDrawing.AddHorizontalDimension2(X_Mid + xPos * viewScale, OutLine(3) + 0.005 + mesOffset * sideCounter(0), 0)
measurement = iDrawing.AddHorizontalDimension2(X_Mid + xPos * scaleDecimal, OutLine(3) + 0.005 + mesOffset * sideCounter(0), 0)
Else
measurement = iDrawing.AddHorizontalDimension2(X_Mid + xPos * viewScale, OutLine(1) - 0.005 - mesOffset * sideCounter(2), 0)
measurement = iDrawing.AddHorizontalDimension2(X_Mid + xPos * scaleDecimal, OutLine(1) - 0.005 - mesOffset * sideCounter(2), 0)
End If
Else
'Dim point1 As Decimal = Draw_Grating.points(Draw_Grating.pointsOrder(points(0) - 1))(3)
Dim point1 As Integer = Data.gratingPoints.Rows(points(0) - 1)("Y")
'Dim point2 As Decimal = Draw_Grating.points(Draw_Grating.pointsOrder(points(1) - 1))(3)
Dim point2 As Integer = Data.gratingPoints.Rows(points(1) - 1)("Y")
Dim point1 As Double = Data.gratingPoints.Rows(points(0) - 1)("Y")
Dim point2 As Double = Data.gratingPoints.Rows(points(1) - 1)("Y")
Dim yPos As Decimal
Dim yPos As Double
If Math.Abs(point1) > Math.Abs(point2) Then
yPos = point2 + (point1 - point2) / 2
Else
@ -230,9 +268,9 @@ Public Class Drawing
End If
If points(2) = 2 Then
measurement = iDrawing.AddVerticalDimension2(OutLine(2) + 0.005 + mesOffset * sideCounter(1), Y_Mid + yPos * viewScale, 0)
measurement = iDrawing.AddVerticalDimension2(OutLine(2) + 0.005 + mesOffset * sideCounter(1), Y_Mid + yPos * scaleDecimal, 0)
Else
measurement = iDrawing.AddVerticalDimension2(OutLine(0) - 0.005 - mesOffset * sideCounter(3), Y_Mid + yPos * viewScale, 0)
measurement = iDrawing.AddVerticalDimension2(OutLine(0) - 0.005 - mesOffset * sideCounter(3), Y_Mid + yPos * scaleDecimal, 0)
End If
End If
sideCounter(points(2) - 1) = sideCounter(points(2) - 1) + 1