Files
3dprinting/LuaLibs/RunGcodeGenerate.lua
T

68 lines
2.0 KiB
Lua

-- RunGcodeGenerate.lua by Egaltech s.r.l. 2022/04/11
-- Calcoli prima fase per Stampa 3d
-- Tabella per definizione modulo
local RunGcodeGenerate = {}
-- Intestazioni
require( 'EgtBase')
EgtOutLog( ' RunGcodeGenerate started', 1)
-- Costanti generali
_G.package.loaded.AddManData = nil
local AMD = require( 'AddManData')
function RunGcodeGenerate.Exec()
-- Recupero il pezzo (per ora primo e unico)
local nPartIndex = 1
local nPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, PART .. nPartIndex)
if not nPartId then
EgtOutBox( 'Error missing part', 'GcodeGenerate')
return
end
-- Recupero i layer da processare
local vLayIds = EgtGetNameInGroup( nPartId, SLICE_LAYER.."*")
if not vLayIds then
EgtOutBox( 'Error missing slices', 'ToolPathCalc')
return
end
-- Ciclo sui layer
local vEntId = {}
for nIdx = 1, #vLayIds do
-- scorro tutti i gruppi di contorni
local nCrvGrpId = EgtGetFirstNameInGroup( vLayIds[ nIdx], CONTOUR_GRP.."*")
while nCrvGrpId do
-- recupero il gruppo dei percorsi utensile
local nTpathGrpId = EgtGetFirstNameInGroup( nCrvGrpId, TOOLPATH_GRP)
if not nTpathGrpId then
EgtOutBox( 'Error missing toolpaths', 'ToolPathCalc')
return
end
-- recupero le entità nel gruppo
local nEntId = EgtGetFirstInGroup( nTpathGrpId)
while nEntId do
table.insert( vEntId, nEntId)
nEntId = EgtGetNext( nEntId)
end
--passo al gruppo di contorni successivo
nCrvGrpId = EgtGetNextName( nCrvGrpId, CONTOUR_GRP.."*")
end
end
if #vEntId == 0 then
EgtOutBox( 'Error missing entities', 'ToolPathCalc')
return
end
-- Aggiungo la lavorazione
EgtSetCurrMachGroup()
EgtAddMachining( 'Extrusion 1', 'ExtrusionA')
EgtSetMachiningGeometry( vEntId)
EgtApplyMachining()
end
---------------------------------------------------------------------
return RunGcodeGenerate