3dPrinting :

- nuova versione compatibile con Icarus.
This commit is contained in:
DarioS
2022-09-14 09:01:32 +02:00
parent c1ece8995c
commit d0928b9842
4 changed files with 28 additions and 7 deletions
+1
View File
@@ -250,6 +250,7 @@ KEY_TCUR = "TCur"
KEY_FCUR = "FCur"
KEY_LENGTH = "Length"
KEY_SLICEID = "SliceId"
KEY_MASS = "PrintMass"
---------------------------------------------------------------------
return AddManData
+11 -2
View File
@@ -1,4 +1,4 @@
-- CalcMachParam.lua by Egaltech s.r.l. 2022/08/07
-- CalcMachParam.lua by Egaltech s.r.l. 2022/09/14
-- Calcolo dei parametri di stampa
-- Intestazioni
@@ -34,6 +34,8 @@ end
local sMachIni = EgtGetCurrMachineDir() .. '\\' .. EgtGetCurrMachineName() .. '.ini'
local dSMin = tonumber( EgtGetStringFromIni( SEC_3DPRINTING, KEY_SPEED_MIN, 0, sMachIni))
local dSMax = tonumber( EgtGetStringFromIni( SEC_3DPRINTING, KEY_SPEED_MAX, 50000, sMachIni))
-- massa materiale utilizzato
local dPrintMass = 0
-- massimo indice di layer calcolato
local nMaxIndex = 0
-- ciclo sui pezzi
@@ -133,10 +135,15 @@ while nPartId do
dLayerFeed = ( MATERIAL.C1 * pow( ( dSpeed / ( 1 + MATERIAL.K)), MATERIAL.C2)) * 1000 / ( ( dStrand - dSliceStep) * dSliceStep + pi * pow( dSliceStep / 2, 2))
dLayerTime = dTotLayerLength / dLayerFeed * 60
end
-- calcolo massa dello strato
local dLayerMass = dTotLayerLength * dSliceStep * dStrand * MATERIAL.Density * 1e-6
if dLayerMass and dLayerMass > 0 then
dPrintMass = dPrintMass + dLayerMass
end
-- scrivo info feed e speed in group toolpath
nCrvId = EgtGetFirstNameInGroup( nLayerId, CONTOUR_GRP .. '*')
while nCrvId do
local nToolPathId = EgtGetFirstNameInGroup( nCrvId, TOOLPATH_GRP)
local nToolPathId = EgtGetFirstNameInGroup( nCrvId, TOOLPATH_GRP) or GDB_ID.NULL
EgtSetInfo( nToolPathId, KEY_FEED, dLayerFeed)
EgtSetInfo( nToolPathId, KEY_SPEED, dSpeed)
nCrvId = EgtGetNextName( nCrvId, CONTOUR_GRP .. '*')
@@ -160,3 +167,5 @@ while nPartId do
nPartId = EgtGetNextPart( nPartId)
::continue::
end
-- imposto massa totale
EgtSetInfo( nResultLayerId, KEY_MASS, dPrintMass)
+1 -1
View File
@@ -24,7 +24,7 @@ local function GetLayerParamsForPathCalc()
LayerParams.dOffs = EgtGetInfo( s_nPartId, KEY_OFFSET_SLICE, 'd')
LayerParams.nFloorNbr = EgtGetInfo( s_nPartId, KEY_FLOOR_NBR, 'i')
LayerParams.nFloorType = EgtGetInfo( s_nPartId, KEY_FLOOR_TYPE, 'i')
LayerParams.nCeilNbr = EgtGetInfo( s_nPartId, KEY_CEIL_NBR, 'i')
LayerParams.nCeilNbr = EgtGetInfo( s_nPartId, KEY_CEIL_NBR, 'i') or 0
LayerParams.nCeilType = EgtGetInfo( s_nPartId, KEY_CEIL_TYPE, 'i')
LayerParams.vtSlicing = EgtGetInfo( s_nPartId, KEY_SLICING_DIR, 'v')
LayerParams.bPrintInvert = ( EgtGetInfo( s_nPartId, KEY_PRINT_DIRECTION, 'i') == PRINT_DIRECTION.CW)
+15 -4
View File
@@ -25,7 +25,7 @@ function RunGcodeGenerate.Exec()
-- Recupero il pezzo (per ora primo e unico)
local nPartIndex = 1
local nPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, PART .. nPartIndex)
local nPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, PART .. nPartIndex) or EgtGetFirstNameInGroup( GDB_ID.ROOT, PART)
if not nPartId then
EgtOutBox( 'Error missing part', 'GcodeGenerate')
return
@@ -109,13 +109,24 @@ function RunGcodeGenerate.Exec()
-- Genero il programma CN
local sInfo = 'EgtCAM5 ver.' .. EgtGetExeVersion() .. ' - ' .. sPath
local bGenOk = EgtGenerate( '', sInfo)
if bGenOk then
EgtEstimate('')
end
EgtResetCurrMachGroup()
if bGenOk then
EgtOutBox( 'Generation successful.', 'GcodeGeneration', 'INFO')
if PRINT and PRINT.PROGRAM == 1 then
if bGenOk then
PRINT.ERR = 0
else
PRINT.ERR = 999
end
else
EgtOutBox( 'Generation failed.', 'GcodeGeneration', 'ERROR')
if bGenOk then
EgtOutBox( 'Generation successful.', 'GcodeGeneration', 'INFO')
else
EgtOutBox( 'Generation failed.', 'GcodeGeneration', 'ERROR')
end
end
end