EgtBEAMWALL :
- altre correzioni a nesting da BTL (interpretazione vari casi sulla base di esempi).
This commit is contained in:
@@ -455,30 +455,61 @@ Public Class NestingRunningWndVM
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.Z_AX, dFlip)
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||
If bRefBtl Then
|
||||
If AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.Y_AX) Then
|
||||
Dim vtFrVersX As Vector3d = NestPart.frFrame.VersX
|
||||
Dim vtFrVersY As Vector3d = NestPart.frFrame.VersY
|
||||
If Math.Abs( vtFrVersX.z) > EPS_SMALL Or
|
||||
Math.Abs( vtFrVersX.z) > EPS_SMALL Then
|
||||
vtFrVersX = New Vector3d( vtFrVersX.y, vtFrVersX.z, 0)
|
||||
vtFrVersY = New Vector3d( vtFrVersY.y, vtFrVersY.z, 0)
|
||||
End If
|
||||
If AreSameVectorApprox(vtFrVersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 0
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.Y_AX) Then
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 180
|
||||
dPosX = dPosX - b3Duplo.DimX()
|
||||
dPosY = dPosY - b3Duplo.DimY()
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 0
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY - b3Duplo.DimY()
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 180
|
||||
dPosX = dPosX - b3Duplo.DimX()
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, -Vector3d.Y_AX) Then
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.X_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 0
|
||||
dRot = -90
|
||||
dPosX = dPosX - b3Duplo.DimY()
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.X_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 90
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY - b3Duplo.DimX()
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.X_AX) Then
|
||||
dFlip = 180
|
||||
dRot = -90
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.X_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 90
|
||||
dPosX = dPosX - b3Duplo.DimY()
|
||||
dPosY = dPosY - b3Duplo.DimX()
|
||||
Else
|
||||
' errore, la parete deve stare nel piano del grezzo
|
||||
EgtOutLog(String.Format("Errore in BTL nesting, pezzo {0} non giace nel piano XY ({1})", NestPart.nPartDuploId, NestPart.frFrame.VersZ))
|
||||
|
||||
Reference in New Issue
Block a user