3dPrinting :

- ordinamento elementi di stampa
- oridinamento per tipologia di setti.
This commit is contained in:
SaraP
2023-01-10 08:54:09 +01:00
parent 1225625a9a
commit f050f49b66
5 changed files with 64 additions and 58 deletions
+29 -24
View File
@@ -25,7 +25,8 @@ local function GetLayerParamsForToolPathCalc()
LayerParams.dLayHeight = EgtGetInfo( s_nPartId, KEY_SLICE_STEP, 'd')
LayerParams.dOffs = EgtGetInfo( s_nPartId, KEY_OFFSET_SLICE, 'd')
LayerParams.bInvert = ( EgtGetInfo( s_nPartId, KEY_PRINT_DIRECTION, 'i') == PRINT_DIRECTION.CW)
LayerParams.nOrder = EgtGetInfo( s_nPartId, KEY_PRINT_ORDER, 'i')
LayerParams.nOrder = EgtGetInfo( s_nPartId, KEY_STRAND_ORDER, 'i')
LayerParams.vPrintOrder = EgtGetInfo( s_nPartId, KEY_PRINT_ORDER, 'vi') or { 1, 2, 3, 4, 5}
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')
@@ -394,7 +395,7 @@ local function CalcExtraShellToolPath( vEntIds, nTpathGrpId, LayerParams, dCorrZ
if not vEntIds then return end
-- aggiungo le curve nel toolpath
local vIds = AddCurvesToToolPath( vEntIds, nTpathGrpId, PRINT_ORDER.EXT_INT, false, LayerParams.vtSlicing, LayerParams.dLayHeight, dCorrZ)
-- aggiungo gli opportuni raccordi
local sPrevName = EgtGetName( vIds[1])
for i = 2, #vIds do
@@ -1304,29 +1305,33 @@ function CalcToolPath.Exec( nPartId)
EgtEmptyGroup( nTpathGrpId)
end
-- shells
local vShellIds = EgtGetNameInGroup( nPathGrpId, SHELL_CRV .. '*')
local vExtraShellIds = EgtGetNameInGroup( nPathGrpId, EXTRA_SHELL_CRV .. '*')
local vInfillIds = EgtGetNameInGroup( nPathGrpId, INFILL_CRV .. '*')
if LayerParams.nOrder == PRINT_ORDER.EXT_INT then
CalcShellsToolPath( vShellIds, nTpathGrpId, LayerParams, dCorrZ)
CalcExtraShellToolPath( vExtraShellIds, nTpathGrpId, LayerParams, dCorrZ)
CalcInfillToolPath( vInfillIds, nTpathGrpId, LayerParams, dCorrZ)
else
CalcInfillToolPath( vInfillIds, nTpathGrpId, LayerParams, dCorrZ)
CalcExtraShellToolPath( vExtraShellIds, nTpathGrpId, LayerParams, dCorrZ)
CalcShellsToolPath( vShellIds, nTpathGrpId, LayerParams, dCorrZ)
-- realizzo le diverse tipologie in base all'ordine selezionato
for j = 1, #LayerParams.vPrintOrder do
if LayerParams.vPrintOrder[j] == PRINT_ELEMENT.SHELL then
-- shell
local vShellIds = EgtGetNameInGroup( nPathGrpId, SHELL_CRV .. '*')
CalcShellsToolPath( vShellIds, nTpathGrpId, LayerParams, dCorrZ)
elseif LayerParams.vPrintOrder[j] == PRINT_ELEMENT.EXTRA_SHELL then
-- extra shell
local vExtraShellIds = EgtGetNameInGroup( nPathGrpId, EXTRA_SHELL_CRV .. '*')
CalcExtraShellToolPath( vExtraShellIds, nTpathGrpId, LayerParams, dCorrZ)
elseif LayerParams.vPrintOrder[j] == PRINT_ELEMENT.INFILL then
-- infill
local vInfillIds = EgtGetNameInGroup( nPathGrpId, INFILL_CRV .. '*')
CalcInfillToolPath( vInfillIds, nTpathGrpId, LayerParams, dCorrZ)
elseif LayerParams.vPrintOrder[j] == PRINT_ELEMENT.AUX_SOLID then
-- solidi ausiliari
local nAuxSolidsGrp = EgtGetFirstNameInGroup( vLayIds[nIdx], AUX_SOLIDS_GRP)
local nAuxSolidsPathGrp = EgtGetFirstNameInGroup( nCrvGrpId, AUX_SOLIDS_GRP)
CalcAuxSolidsToolPath( nAuxSolidsGrp, nAuxSolidsPathGrp, nTpathGrpId, LayerParams, dCorrZ)
else
-- costolature
local nRibsGrp = EgtGetFirstNameInGroup( nCrvGrpId, RIBS_GRP)
CalcRibsToolPath( nRibsGrp, nTpathGrpId, LayerParams, dCorrZ)
end
end
-- solidi ausiliari
local nAuxSolidsGrp = EgtGetFirstNameInGroup( vLayIds[nIdx], AUX_SOLIDS_GRP)
local nAuxSolidsPathGrp = EgtGetFirstNameInGroup( nCrvGrpId, AUX_SOLIDS_GRP)
CalcAuxSolidsToolPath( nAuxSolidsGrp, nAuxSolidsPathGrp, nTpathGrpId, LayerParams, dCorrZ)
-- costolature
local nRibsGrp = EgtGetFirstNameInGroup( nCrvGrpId, RIBS_GRP)
CalcRibsToolPath( nRibsGrp, nTpathGrpId, LayerParams, dCorrZ)
-- passo al gruppo di contorni successivo
nCrvGrpId = EgtGetNextName( nCrvGrpId, CONTOUR_GRP.."*")