3dPrinting :
- aggiunto numero massimo di slice per setti.
This commit is contained in:
@@ -86,6 +86,8 @@ KEY_WIPE_LEN = 'WipeLen'
|
||||
KEY_WIPE_DIR = 'WipeDir'
|
||||
KEY_WIPE_FEEDPU = 'WipeFeedPu'
|
||||
KEY_TOOL_DIAM = 'ToolDiam'
|
||||
KEY_MAX_H = 'SlicingHeight'
|
||||
KEY_MAX_SLICES_NBR = 'MaxSlicesNumber'
|
||||
KEY_MAX_STRANDH_FACTOR = 'MaxStrandHFactor'
|
||||
KEY_MIN_STRANDH_FACTOR = 'MinStrandHFactor'
|
||||
KEY_JOIN_SHELLS = 'JoinShells'
|
||||
@@ -150,6 +152,7 @@ KEY_RIBS_MERGE_WITH_SHELLS = 'RibsMergeWithShell'
|
||||
KEY_INVERT_RIBS_MERGED_SHELL_LINK = 'InvertRibsMergedShellMainLink'
|
||||
KEY_RIBS_LEAD_FILLET = 'RibsLeadFillet'
|
||||
KEY_RIBS_LINK_FILLET = 'RibsLinkFillet'
|
||||
KEY_RIBS_MAX_SLICES_NBR = 'RibsMaxSlicesNumber'
|
||||
|
||||
-- Regioni con diverso numero di passate
|
||||
KEY_SHELL_NBR_DIFF = 'ShellNbrDifference'
|
||||
@@ -193,8 +196,6 @@ KEY_LINEAR_APPROX = 'LinearApprox'
|
||||
KEY_LINEAR_TOL = 'LinearTol'
|
||||
|
||||
-- Altre chiavi
|
||||
KEY_MAX_H = 'SlicingHeight'
|
||||
KEY_MAX_SLICES_NBR = 'MaxSlicesNumber'
|
||||
KEY_SLICE_NBR = 'SliceNbr'
|
||||
KEY_SLICE_DIR = 'SliceDir'
|
||||
KEY_SLICE_POS = 'SlicePos'
|
||||
|
||||
+21
-5
@@ -315,6 +315,7 @@ local function GetRibParams( nId)
|
||||
ReadParam( nId, KEY_RIBS_MERGE_WITH_SHELLS, 'b', false, RibParam)
|
||||
ReadParam( nId, KEY_RIBS_LEAD_FILLET, 'd', 0, RibParam)
|
||||
ReadParam( nId, KEY_RIBS_LINK_FILLET, 'd', 0, RibParam)
|
||||
ReadParam( nId, KEY_RIBS_MAX_SLICES_NBR, 'i', 0, RibParam)
|
||||
|
||||
return RibParam
|
||||
end
|
||||
@@ -419,14 +420,29 @@ local function SlicingExtraObjects( nLay, vSlicingDir, vSlicingVal, nSlicingType
|
||||
local vLayIds = EgtGetNameInGroup( s_nPartId, SLICE_LAYER .. '*')
|
||||
|
||||
for i = 1, #vSliceIds do
|
||||
-- ricavo i parametri per lo slicing
|
||||
local vCurrSlicingDir = {}
|
||||
local vCurrSlicingVal = {}
|
||||
if nType == TYPE.RIB and tabParams[i][KEY_RIBS_MAX_SLICES_NBR] > 0 and tabParams[i][KEY_RIBS_MAX_SLICES_NBR] < #vSlicingVal then
|
||||
for j = 1, min( tabParams[i][KEY_RIBS_MAX_SLICES_NBR], #vSlicingDir) do
|
||||
vCurrSlicingDir[j] = vSlicingDir[j]
|
||||
end
|
||||
for j = 1, tabParams[i][KEY_RIBS_MAX_SLICES_NBR] do
|
||||
vCurrSlicingVal[j] = vSlicingVal[j]
|
||||
end
|
||||
else
|
||||
vCurrSlicingDir = vSlicingDir
|
||||
vCurrSlicingVal = vSlicingVal
|
||||
end
|
||||
|
||||
-- effettuo lo slicing in layer separati ( analogamente a quanto avviene con il solido)
|
||||
local nResId
|
||||
if nSlicingType ~= SLICING_TYPE.MULTIPLANAR and nSlicingType ~= SLICING_TYPE.MULTIPLANAR_DEG45 and nSlicingType ~= SLICING_TYPE.MULTIPLANAR_HOR then
|
||||
nResId = EgtParPlanesSurfTmInters( ORIG(), vSlicingDir[1], vSlicingVal, vSliceIds[i], s_nPartId, GDB_RT.GLOB, TOLER)
|
||||
nResId = EgtParPlanesSurfTmInters( ORIG(), vCurrSlicingDir[1], vCurrSlicingVal, vSliceIds[i], s_nPartId, GDB_RT.GLOB, TOLER)
|
||||
else
|
||||
for j = 1, #vSlicingVal do
|
||||
local vtN = vSlicingDir[j]
|
||||
local ptOn = vSlicingVal[j]
|
||||
for j = 1, #vCurrSlicingVal do
|
||||
local vtN = vCurrSlicingDir[j]
|
||||
local ptOn = vCurrSlicingVal[j]
|
||||
if j == 1 then
|
||||
ptOn = ptOn + DELTAZ * vtN
|
||||
end
|
||||
@@ -442,7 +458,7 @@ local function SlicingExtraObjects( nLay, vSlicingDir, vSlicingVal, nSlicingType
|
||||
-- recupero i risultati e li sposto nei layers opportuni
|
||||
local j = 1
|
||||
while nResId do
|
||||
local vtSlicing = vSlicingDir[j] or vSlicingDir[1]
|
||||
local vtSlicing = vCurrSlicingDir[j] or vCurrSlicingDir[1]
|
||||
|
||||
-- recupero il gruppo nel layer dove salvare lo slicing degli oggetti o lo creo se non esiste
|
||||
local nGrp = EgtGetFirstNameInGroup( vLayIds[j], sNameGrp)
|
||||
|
||||
Reference in New Issue
Block a user