- in BeamExec correzione a CalcMinUnloadableRaw
-in FaceData aggiunta IsFaceRhomboid per verificare se una faccia è un parallelogramma - in BLADETOWASTE refactoring - in BLADETOWASTE aggiunta gestione tagli da due lati, al momento solo caso con suddivisione orizzontale - in FACEBYBLADE si permette OppositeToolDirection ottimizzata anche per parallelogrammi (prima era solo per rettangoli) - in FACEBYBLADE correzione a tagli ridotti e ghigliottina in caso in cui non si lavori l'intera elevazione del lato
This commit is contained in:
@@ -219,6 +219,32 @@ function FaceData.IsFaceRectangular( Proc, idFace)
|
||||
return bIsRectangular
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function FaceData.IsFaceRhomboid( Proc, idFace)
|
||||
local nAddGrpId = BeamLib.GetAddGroup( Proc.idPart)
|
||||
local nContourId, nContourCnt = EgtExtractSurfTmFacetLoops( Proc.id, idFace, nAddGrpId)
|
||||
if nContourCnt > 1 then
|
||||
error( 'IsFaceRectangular : too many loops')
|
||||
end
|
||||
|
||||
local bIsTrapezoid = EgtCurveIsATrapezoid( nContourId)
|
||||
local bIsRhomboid = false
|
||||
-- un parallelogramma è un trapezoide con i lati paralleli a due a due
|
||||
if bIsTrapezoid
|
||||
and AreOppositeVectorApprox( Proc.Faces[idFace + 1].Edges[1].vtN, Proc.Faces[idFace + 1].Edges[3].vtN)
|
||||
and AreOppositeVectorApprox( Proc.Faces[idFace + 1].Edges[2].vtN, Proc.Faces[idFace + 1].Edges[4].vtN) then
|
||||
|
||||
bIsRhomboid = true
|
||||
end
|
||||
|
||||
-- elimino curve create
|
||||
for i = 1, nContourCnt do
|
||||
EgtErase( nContourId + i - 1)
|
||||
end
|
||||
|
||||
return bIsRhomboid
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function CompareEdgesBottomFace( EdgeA, EdgeB)
|
||||
-- prima i lati con facce adiacenti
|
||||
|
||||
Reference in New Issue
Block a user