3dPrinting :

- slicing multiplanare orizzontale
- sistemata distanza su spina per slicing multiplanare 45°.
This commit is contained in:
SaraP
2026-04-15 09:34:33 +02:00
parent 5b4c136531
commit 1ca6efa10a
6 changed files with 29 additions and 21 deletions
+4 -3
View File
@@ -284,6 +284,7 @@ local function CalcSolidGuides( nCrvId, dStrand, nSolidGrp)
if bZigZagInfill then
nId, nParts = EgtSplitCurveAtCorners( nCopyId, 80)
else
local nType = EgtGetInfo( nCrvId, KEY_TYPE, 'i')
local dLen = EgtCurveLength( nCrvId)
if dLen > LEN_REF and nType ~= TYPE.LINK and nType ~= TYPE.COASTING then
nParts = EgtClamp( floor( dLen / LEN_REF), 1, 10)
@@ -309,7 +310,7 @@ local function CalcSolidGuides( nCrvId, dStrand, nSolidGrp)
local vtCurrS = EgtUV( nGuideId, dU, 1, GDB_ID.ROOT)
local vtCurrE = EgtUV( nGuideId, dU + 1, -1, GDB_ID.ROOT)
local vtNext = EgtUV( nGuideId, dU + 1, 1, GDB_ID.ROOT)
if vtPrev * vtCurrS < GEO.EPS_SMALL or vtCurrE * vtNext < GEO.EPS_SMALL then
if vtPrev * vtCurrS < GEO.EPS_SMALL and vtCurrE * vtNext < GEO.EPS_SMALL then
local nNewId = EgtSplitCurveAtParam( nGuideId, dU + 0.5)
table.insert( vGuideIds, nNewId)
break
@@ -829,7 +830,7 @@ function RunCalcSolids.Exec()
local LayerParams = GetLayerParamsForSolidCalc( nPartId)
-- se slicing multiplanare considero come altezza standard quella massima ammessa
if nSlicingType == SLICING_TYPE.MULTIPLANAR or nSlicingType == SLICING_TYPE.MULTIPLANAR_DEG45 then
if nSlicingType == SLICING_TYPE.MULTIPLANAR or nSlicingType == SLICING_TYPE.MULTIPLANAR_DEG45 or nSlicingType == SLICING_TYPE.MULTIPLANAR_HOR then
local sMachIni = EgtGetCurrMachineDir() .. '\\' .. EgtGetCurrMachineName() .. '.ini'
local dMaxFactor = EgtGetNumberFromIni( '3dPrinting', KEY_MAX_STRANDH_FACTOR, 2, sMachIni)
s_dMultiPlanarH = min( dMaxFactor, 5) * LayerParams.dLayHeight
@@ -864,7 +865,7 @@ function RunCalcSolids.Exec()
if #vIds > 0 then
-- slicing multiplanare
if nSlicingType == SLICING_TYPE.MULTIPLANAR or nSlicingType == SLICING_TYPE.MULTIPLANAR_DEG45 then
if nSlicingType == SLICING_TYPE.MULTIPLANAR or nSlicingType == SLICING_TYPE.MULTIPLANAR_DEG45 or nSlicingType == SLICING_TYPE.MULTIPLANAR_HOR then
LayerParams.vtSlicing = EgtGetInfo( vLayIds[nIdx], KEY_SLICE_DIR, 'v')
if LayerParams.bSpiralVase then