- Correzioni e migliorie su pezzo di esempio
- Gestione avvio script solo quando eseguiti precedenti - Correzioni varie
This commit is contained in:
+14
-13
@@ -1,4 +1,4 @@
|
||||
-- CalcToolPath.lua by Egaltech s.r.l. 2022/03/29
|
||||
-- CalcToolPath.lua by Egaltech s.r.l. 2022/04/13
|
||||
-- Calcolo percorsi di lavoro per Stampa 3d
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -40,7 +40,7 @@ local function AddLeadIn( nCrvId, LayerParams, nGrpId)
|
||||
local vtTang = EgtSV( nCrvId)
|
||||
local vtOrtho = Vector3d( vtTang)
|
||||
local dAng = 90
|
||||
if ( LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.INT_EXT_INF) or
|
||||
if ( LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.INF_INT_EXT) or
|
||||
( not LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.EXT_INT_INF) then
|
||||
dAng = - 90
|
||||
end
|
||||
@@ -65,31 +65,30 @@ end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
local function AddLeadOut( nCrvId, LayerParams, nGrpId)
|
||||
|
||||
|
||||
local ptS = EgtEP( nCrvId)
|
||||
local vtTang = EgtEV( nCrvId)
|
||||
local vtOrtho = Vector3d( vtTang)
|
||||
local dAng = - 90
|
||||
if ( LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.INT_EXT_INF) or
|
||||
if ( LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.INF_INT_EXT) or
|
||||
( not LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.EXT_INT_INF) then
|
||||
dAng = 90
|
||||
end
|
||||
|
||||
|
||||
vtOrtho:rotate( Z_AX(), dAng)
|
||||
local ptE = ptS + LayerParams.LeadOutTangDist * vtTang + LayerParams.LeadOutOrthoDist * vtOrtho
|
||||
|
||||
|
||||
local nLeadOutCrv = GDB_ID.NULL
|
||||
if LayerParams.LeadOutType == LEAD_TYPE.LINEAR then
|
||||
nLeadOutCrv = EgtLine( nGrpId, ptS, ptE)
|
||||
elseif LayerParams.LeadOutType == LEAD_TYPE.ARC then
|
||||
local _, _, dAngIni = SphericalFromVector( vtTang)
|
||||
nLeadOutCrv = EgtArc2PD( nGrpId, ptS, ptE, dAngIni)
|
||||
|
||||
|
||||
end
|
||||
EgtRelocate( nLeadOutCrv, nGrpId, GDB_IN.LAST_SON)
|
||||
EgtSetInfo( nLeadOutCrv, KEY_TYPE, TYPE.LINK)
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -136,14 +135,14 @@ function CalcToolPath.Exec( nPartId)
|
||||
-- copio le curve, le ordino, le oriento e le muovo in Z
|
||||
local nEntId = EgtGetFirstInGroup( nPathGrpId)
|
||||
while nEntId do
|
||||
local nNewEntId = EgtCopyGlob( nEntId, nTpathGrpId, EgtIf( LayerParams.nOrder == PRINT_ORDER.INT_EXT_INF, GDB_IN.FIRST_SON, GDB_IN.LAST_SON))
|
||||
local nNewEntId = EgtCopyGlob( nEntId, nTpathGrpId, EgtIf( LayerParams.nOrder == PRINT_ORDER.INF_INT_EXT, GDB_IN.FIRST_SON, GDB_IN.LAST_SON))
|
||||
EgtMove( nNewEntId, Vector3d( 0, 0, LayerParams.dLayHeight), GDB_RT.GLOB)
|
||||
if LayerParams.bInvert then
|
||||
EgtInvertCurve( nNewEntId)
|
||||
end
|
||||
nEntId = EgtGetNext( nEntId)
|
||||
end
|
||||
|
||||
|
||||
-- aggiungo gli opportuni raccordi
|
||||
local nPrevId = EgtGetFirstInGroup( nTpathGrpId)
|
||||
local nCurrId = EgtGetNext( nPrevId or GDB_ID.NULL)
|
||||
@@ -153,10 +152,12 @@ function CalcToolPath.Exec( nPartId)
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - k * LayerParams.LinkDist)
|
||||
k = k + 1
|
||||
EgtChangeClosedCurveStartPoint( nCurrId, EgtEP( nPrevId))
|
||||
|
||||
|
||||
if LayerParams.LinkType == LINK_TYPE.LINEAR then
|
||||
nLinkId = EgtLine( nTpathGrpId, EgtEP( nPrevId), EgtEP( nCurrId))
|
||||
else
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
|
||||
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
|
||||
nLinkId = EgtLine( nTpathGrpId, EgtEP( nPrevId), EgtSP( nCurrId))
|
||||
else
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
|
||||
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
|
||||
local _, _, dAngIni = SphericalFromVector( EgtEV( nPrevId))
|
||||
|
||||
Reference in New Issue
Block a user