KeepSolidSplitByVolumeInPart

From scripting
Jump to: navigation, search
Sub KeepSolidSplitByVolumeInPart(SplitSolid As Split, ForSmaller0ForBigger1 As Integer, CurPart As Part)
Dim Ori
Ori = SplitSolid.SplittingSide
Dim OppOri
OppOri = Not SplitSolid.SplittingSide

If IsUpdatableInPart(SplitSolid, CurPart) Then
    Dim Pt1Meas
    Set Pt1Meas = theSPAWorkbench.GetMeasurable(CurPart.CreateReferenceFromObject(SplitSolid))
    If HasVolume(SplitSolid, CurPart) Then
        Dim AVol As Double
        AVol = Pt1Meas.Volume
    Else
        SplitSolid.SplittingSide = OppOri
        IsUpdatableInPart SplitSolid, CurPart
        Exit Sub
    End If
    
    SplitSolid.SplittingSide = OppOri
    If IsUpdatableInPart(SplitSolid, CurPart) = False Then
        SplitSolid.SplittingSide = Ori
        Exit Sub
    End If
    Dim Pt2Meas
    Set Pt2Meas = theSPAWorkbench.GetMeasurable(CurPart.CreateReferenceFromObject(SplitSolid))
    If HasVolume(SplitSolid, CurPart) Then
       Dim BVol As Double
       BVol = Pt2Meas.Volume
    Else
        SplitSolid.SplittingSide = Ori
        IsUpdatableInPart SplitSolid, CurPart
        Exit Sub
    End If
    
    If ForSmaller0ForBigger1 = 0 Then
        If AVol < BVol Then
            SplitSolid.SplittingSide = Ori
        End If
    Else
        If AVol > BVol Then
            SplitSolid.SplittingSide = Ori
        End If
    End If
End If
End Sub