3dPrinting :

- aggiunto parametro 'SingleLeadIn' per fare lead in solo sul primo layer.
This commit is contained in:
SaraP
2026-05-05 11:44:20 +02:00
parent 78f5c05ee5
commit 9b36d4c19d
2 changed files with 9 additions and 4 deletions
+8 -4
View File
@@ -37,6 +37,7 @@ local function GetLayerParamsForToolPathCalc()
LayerParams.nLinkType = EgtGetInfo( s_nPartId, KEY_LINK_TYPE, 'i')
LayerParams.dLinkParam = EgtGetInfo( s_nPartId, KEY_LINK_PARAM, 'd')
LayerParams.nLeadInType = EgtGetInfo( s_nPartId, KEY_LEAD_IN_TYPE, 'i')
LayerParams.bSingleLeadIn = EgtGetInfo( s_nPartId, KEY_SINGLE_LEAD_IN, 'b') or true
LayerParams.dLeadInTangDist = EgtGetInfo( s_nPartId, KEY_LEAD_IN_TANG_DIST, 'd')
LayerParams.dLeadInOrthoDist = EgtGetInfo( s_nPartId, KEY_LEAD_IN_ORTHO_DIST, 'd')
LayerParams.nLeadOutType = EgtGetInfo( s_nPartId, KEY_LEAD_OUT_TYPE, 'i')
@@ -65,7 +66,7 @@ local function GetLayerParamsForToolPathCalc()
-- parametri da file ini del programma
local sIniFile = EgtGetIniFile()
LayerParams.dSpiralVaseInterpLen = EgtGetNumberFromIni( '3dPrinting', KEY_SPIRAL_VASE_INTERP_LEN, 100.0, sIniFile)
return LayerParams
end
@@ -610,7 +611,7 @@ local function AddRetractionOnLastCrv( nCrvId, nTpathGrpId, LayerParams, dCoasti
end
---------------------------------------------------------------------
local function CalcShellsToolPath( vEntIds, nTpathGrpId, LayerParams)
local function CalcShellsToolPath( vEntIds, nTpathGrpId, bFirst, LayerParams)
if not vEntIds or #vEntIds == 0 then return end
@@ -638,7 +639,9 @@ local function CalcShellsToolPath( vEntIds, nTpathGrpId, LayerParams)
-- aggiungo leadin/leadout
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then
AddLeadIn( vIds[1], LayerParams, nTpathGrpId)
if bFirst or not LayerParams.bSingleLeadIn then
AddLeadIn( vIds[1], LayerParams, nTpathGrpId)
end
end
if LayerParams.nLeadOutType ~= LEAD_TYPE.NONE then
EgtTrimCurveEndAtLen( vIds[#vIds], EgtCurveLength( vIds[#vIds]) - LayerParams.dOffsetLP)
@@ -3013,6 +3016,7 @@ function CalcToolPath.Exec( nPartId)
-- recupero i parametri per calcolo dei toolpath
local LayerParams = GetLayerParamsForToolPathCalc()
local nSlicingType = EgtGetInfo( s_nPartId, KEY_SLICING_TYPE, 'i')
local nFirstSolidLay = EgtGetInfo( s_nPartId, KEY_FIRST_SOLID_LAY, 'i')
-- caso spiral vase
if LayerParams.bSpiralVase then
@@ -3073,7 +3077,7 @@ function CalcToolPath.Exec( nPartId)
-- shell
if LayerParams.vPrintOrder[j] == PRINT_ELEMENT.SHELL then
CalcShellsToolPath( vShellIds, nTpathGrpId, LayerParams)
CalcShellsToolPath( vShellIds, nTpathGrpId, nIdx == nFirstSolidLay, LayerParams)
-- extra shell
elseif LayerParams.vPrintOrder[j] == PRINT_ELEMENT.EXTRA_SHELL then