DataWall :
- correzioni in Nest per angoli di rotazione su Z- - corretta GetFaceHvRefDim in WallLib per restituire origine riferimento come centro del box della faccia - corretta FreeContour per avere centro faccia come box della stessa e baffi esatti per verifica interferenza.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
-- ProcessFreeContour.lua by Egaltech s.r.l. 2022/04/03
|
||||
-- ProcessFreeContour.lua by Egaltech s.r.l. 2022/04/04
|
||||
-- Gestione calcolo profilo libero per Pareti
|
||||
-- 2021/11/15 Penna e chiodature sono sempre riportate sulla faccia sopra anche se nel progetto sono sotto.
|
||||
-- 2021/12/10 In taglio con lama aggiunta gestione SCC per testa Gearbox.
|
||||
@@ -358,9 +358,9 @@ local function GetFacesData( Proc, bOpposite, bCalclForBlade, dToolDiam, dToolMa
|
||||
end
|
||||
end
|
||||
-- recupero centro e normale della faccia
|
||||
local ptCen, vtN = EgtSurfTmFacetCenter( nNewProc, nFac, GDB_ID.ROOT)
|
||||
local vtN = EgtSurfTmFacetNormVersor( nNewProc, nFac, GDB_ID.ROOT)
|
||||
-- recupero le dimensioni della faccia
|
||||
local _, dLen, dWidth = WL.GetFaceHvRefDim( nNewProc, nFac)
|
||||
local frHV, dLen, dWidth = WL.GetFaceHvRefDim( nNewProc, nFac)
|
||||
-- recupero l'angolo con la faccia precedente
|
||||
local bAdj, ptLocP1, ptLocP2, dAng = EgtSurfTmFacetsContact( nNewProc, nPrecFac, nFac, GDB_ID.ROOT)
|
||||
local dPrevAng = EgtIf( bAdj, dAng, 0)
|
||||
@@ -374,7 +374,7 @@ local function GetFacesData( Proc, bOpposite, bCalclForBlade, dToolDiam, dToolMa
|
||||
-- calcolo l'angolo di inclinazione (dalla verticale)
|
||||
local dSideAng = asin( vtN:getZ())
|
||||
-- salvo i dati
|
||||
vFace[i] = { Fac = nFac, Cen = ptCen, Norm = vtN, Len = dLen, Width = dWidth, PrevAng = dPrevAng, PlPrevAng = dPlanePrevAng, SideAng = dSideAng}
|
||||
vFace[i] = { Fac = nFac, Cen = frHV:getOrigin(), Norm = vtN, Len = dLen, Width = dWidth, PrevAng = dPrevAng, PlPrevAng = dPlanePrevAng, SideAng = dSideAng}
|
||||
if bAdj then
|
||||
if ptLocP1:getZ() < ptLocP2:getZ() then
|
||||
vFace[i].PPrev = ptLocP1
|
||||
@@ -435,8 +435,8 @@ local function GetFacesData( Proc, bOpposite, bCalclForBlade, dToolDiam, dToolMa
|
||||
local vtDir = Vector3d( vtOrt) ; vtDir:rotate( Z_AX(), -90)
|
||||
local vtUp = Vector3d( vtDir) ; vtUp:rotate( vFace[i].Norm, -90)
|
||||
local ptIni = vFace[i].Cen + vFace[i].Width / 2 * vtUp + ( vFace[i].Len / 2 + WHISK_OFFS) * vtDir + WHISK_OFFS * vtOrt
|
||||
local ptDir = ptIni + ( vFace[i].Whisk - WHISK_OFFS) * vtDir
|
||||
local ptCross = ptDir + ( dToolThick - WHISK_OFFS) * vtOrt
|
||||
local ptDir = ptIni + ( vFace[i].Whisk - 2 * WHISK_OFFS) * vtDir
|
||||
local ptCross = ptDir + ( dToolThick - 2 * WHISK_OFFS) * vtOrt
|
||||
local WhId = EgtSurfFrRectangle3P( nAddGrpId, ptIni, ptCross, ptDir, GDB_RT.GLOB)
|
||||
local b3Wh = EgtGetBBoxGlob( WhId or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||
-- verifico se interferisce con gli altri pezzi
|
||||
@@ -463,8 +463,8 @@ local function GetFacesData( Proc, bOpposite, bCalclForBlade, dToolDiam, dToolMa
|
||||
local vtDir = Vector3d( vtOrt) ; vtDir:rotate( Z_AX(), 90)
|
||||
local vtUp = Vector3d( vtDir) ; vtUp:rotate( vFace[i].Norm, 90)
|
||||
local ptIni = vFace[i].Cen + vFace[i].Width / 2 * vtUp + ( vFace[i].Len / 2 + WHISK_OFFS) * vtDir + WHISK_OFFS * vtOrt
|
||||
local ptDir = ptIni + ( vFace[i].Whisk - WHISK_OFFS) * vtDir
|
||||
local ptCross = ptDir + ( dToolThick - WHISK_OFFS) * vtOrt
|
||||
local ptDir = ptIni + ( vFace[i].Whisk - 2 * WHISK_OFFS) * vtDir
|
||||
local ptCross = ptDir + ( dToolThick - 2 * WHISK_OFFS) * vtOrt
|
||||
local WhId = EgtSurfFrRectangle3P( nAddGrpId, ptIni, ptCross, ptDir, GDB_RT.GLOB)
|
||||
local b3Wh = EgtGetBBoxGlob( WhId or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||
-- verifico se interferisce con gli altri pezzi
|
||||
|
||||
Reference in New Issue
Block a user