diff --git a/LuaLibs/FeatureLib.lua b/LuaLibs/FeatureLib.lua index 684e759..141e6be 100644 --- a/LuaLibs/FeatureLib.lua +++ b/LuaLibs/FeatureLib.lua @@ -311,7 +311,6 @@ function FeatureLib.MachiningNeedsSplitting( dMachiningLengthOnX, Part, Optional end ------------------------------------------------------------------------------------------------------------- function FeatureLib.GetFeatureSplittingPoints( Proc, Part, OptionalParameters) - -- TODO overlap non serve a nulla?? in STR0002 รจ gestito dal chiamante local vFeatureSplittingPoints = {} local bFeatureStartsOnEdgeLeft = false local bFeatureStartsOnEdgeRight = false @@ -371,9 +370,9 @@ function FeatureLib.GetFeatureSplittingPoints( Proc, Part, OptionalParameters) ptSplitXRight = Point3d( dSplitXRight, 0, 0) end - -- aggiungo eventuale punto estemo sinistro - if bFeatureStartsOnEdgeLeft then - table.insert( vFeatureSplittingPoints, ptSplitXLeft) + -- aggiungo eventuale punto estremo destro + if bFeatureStartsOnEdgeRight then + table.insert( vFeatureSplittingPoints, ptSplitXRight) end -- aggiungo punti centrali della feature @@ -382,15 +381,15 @@ function FeatureLib.GetFeatureSplittingPoints( Proc, Part, OptionalParameters) local dSplitPartsLen = dFeatureCentralLength / nSplitParts for i = 1, ( nSplitParts - 1) do local ptOn - local dCurrentPointX = dSplitXLeft + i * dSplitPartsLen + local dCurrentPointX = dSplitXRight - i * dSplitPartsLen ptOn = Point3d( dCurrentPointX, 0, 0) table.insert( vFeatureSplittingPoints, ptOn) end end - -- aggiungo eventuale punto estremo destro - if bFeatureStartsOnEdgeRight then - table.insert( vFeatureSplittingPoints, ptSplitXRight) + -- aggiungo eventuale punto estemo sinistro + if bFeatureStartsOnEdgeLeft then + table.insert( vFeatureSplittingPoints, ptSplitXLeft) end return vFeatureSplittingPoints diff --git a/Strategies/Standard/STR0002/STR0002.lua b/Strategies/Standard/STR0002/STR0002.lua index 1f5389e..c8a54c0 100644 --- a/Strategies/Standard/STR0002/STR0002.lua +++ b/Strategies/Standard/STR0002/STR0002.lua @@ -359,7 +359,7 @@ local function GetSplitSurfaces( Proc, Part) nOriginalTmIdTunnel = Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.id end - -- recupero punti di spezzatura - da sinistra a destra + -- recupero punti di spezzatura - da destra a sinistra local vFeatureSplittingPoints = FeatureLib.GetFeatureSplittingPoints( Proc, Part) if #vFeatureSplittingPoints == 0 then @@ -372,29 +372,29 @@ local function GetSplitSurfaces( Proc, Part) local nAddId = EgtCopyGlob( Proc.id, nAddGrpId) or GDB_ID.NULL local nAddIdTunnel = EgtCopyGlob( nOriginalTmIdTunnel, nAddGrpId) or GDB_ID.NULL if i == 1 then - -- prima superficie, va tagliata solo a destra - local ptSplit = vFeatureSplittingPoints[i] + Vector3d( BeamData.MILL_OVERLAP / 2, 0, 0) - EgtCutSurfTmPlane( nAddId, ptSplit, X_AX(), true, GDB_RT.GLOB) - EgtCutSurfTmPlane( nAddIdTunnel, ptSplit, X_AX(), true, GDB_RT.GLOB) + -- prima superficie, va tagliata solo a sinistra + local ptSplit = vFeatureSplittingPoints[i] + Vector3d( -BeamData.MILL_OVERLAP / 2, 0, 0) + EgtCutSurfTmPlane( nAddId, ptSplit, -X_AX(), true, GDB_RT.GLOB) + EgtCutSurfTmPlane( nAddIdTunnel, ptSplit, -X_AX(), true, GDB_RT.GLOB) else -- taglio della superficie corrente - lato sinistro - local ptSplit = vFeatureSplittingPoints[i - 1] + Vector3d( -BeamData.MILL_OVERLAP / 2, 0, 0) + local ptSplit = vFeatureSplittingPoints[i] + Vector3d( -BeamData.MILL_OVERLAP / 2, 0, 0) EgtCutSurfTmPlane( nAddId, ptSplit, -X_AX(), true, GDB_RT.GLOB) EgtCutSurfTmPlane( nAddIdTunnel, ptSplit, -X_AX(), true, GDB_RT.GLOB) -- taglio della superficie corrente - lato destro - ptSplit = vFeatureSplittingPoints[i] + Vector3d( BeamData.MILL_OVERLAP / 2, 0, 0) + ptSplit = vFeatureSplittingPoints[i - 1] + Vector3d( BeamData.MILL_OVERLAP / 2, 0, 0) EgtCutSurfTmPlane( nAddId, ptSplit, X_AX(), true, GDB_RT.GLOB) EgtCutSurfTmPlane( nAddIdTunnel, ptSplit, X_AX(), true, GDB_RT.GLOB) end table.insert( vAddId, nAddId) table.insert( vAddIdTunnel, nAddIdTunnel) end - -- taglio ultima superficie, va tagliata solo a sinistra + -- taglio ultima superficie, va tagliata solo a destra local nAddId = EgtCopyGlob( Proc.id, nAddGrpId) or GDB_ID.NULL local nAddIdTunnel = EgtCopyGlob( nOriginalTmIdTunnel, nAddGrpId) or GDB_ID.NULL - local ptSplit = vFeatureSplittingPoints[#vFeatureSplittingPoints] + Vector3d( -BeamData.MILL_OVERLAP / 2, 0, 0) - EgtCutSurfTmPlane( nAddId, ptSplit, -X_AX(), true, GDB_RT.GLOB) - EgtCutSurfTmPlane( nAddIdTunnel, ptSplit, -X_AX(), true, GDB_RT.GLOB) + local ptSplit = vFeatureSplittingPoints[#vFeatureSplittingPoints] + Vector3d( BeamData.MILL_OVERLAP / 2, 0, 0) + EgtCutSurfTmPlane( nAddId, ptSplit, X_AX(), true, GDB_RT.GLOB) + EgtCutSurfTmPlane( nAddIdTunnel, ptSplit, X_AX(), true, GDB_RT.GLOB) table.insert( vAddId, nAddId) table.insert( vAddIdTunnel, nAddIdTunnel) end