-- 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