DataWall :
- corretta gestione FreeContour per errore inserito in precedente rilascio - aggiunt gestione prefori (da parametri WD.PREDRILL_MINANGLE e WD.PREDRILL_DIAM).
This commit is contained in:
@@ -12,6 +12,7 @@ local WPD = {}
|
||||
|
||||
-- Include
|
||||
require( 'EgtBase')
|
||||
local WL = require( 'WallLib')
|
||||
|
||||
EgtOutLog( ' WProcessDrill started', 1)
|
||||
|
||||
@@ -421,11 +422,72 @@ function WPD.Make( Proc, nRawId, b3Raw)
|
||||
EgtSetOperationMode( nMchId, false)
|
||||
return false, sWarn
|
||||
else
|
||||
return true, ( sMyWarn or sWarn)
|
||||
sMyWarn = (sMyWarn or sWarn)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if WD.PREDRILL_DIAM > 0 and vtExtr:getZ() < WD.PREDRILL_MINANGLE then
|
||||
-- gruppo ausiliario per preforo
|
||||
local nAddGrpId = WL.GetAddGroup( Proc.PartId)
|
||||
-- calcolo profondita' foro
|
||||
local dLen = ( WD.PREDRILL_DIAM / 2) * sqrt( 1 - vtExtr:getZ() * vtExtr:getZ()) / vtExtr:getZ()
|
||||
-- copio foro originale
|
||||
local nPreHoleId = EgtCopyGlob( AuxId, nAddGrpId)
|
||||
EgtModifyArcRadius( nPreHoleId, WD.PREDRILL_DIAM / 2)
|
||||
EgtModifyCurveThickness( nPreHoleId, -dLen) --dLen = 10
|
||||
|
||||
-- se da invertire
|
||||
if bToInvert then
|
||||
-- lo sposto della lunghezza d'estrusione e ne inverto il versore
|
||||
local dThickness = EgtCurveThickness( AuxId)
|
||||
EgtMove( nPreHoleId, abs( dThickness) * vtExtr, GDB_RT.GLOB)
|
||||
EgtModifyCurveExtrusion( nPreHoleId, vtExtr, GDB_RT.GLOB)
|
||||
end
|
||||
-- recupero lavorazione di pocket
|
||||
local sDrilling = WM.FindDrilling( WD.PREDRILL_DIAM, dLen, nil, true) --dLen = 10
|
||||
|
||||
if not sDrilling then
|
||||
local sErr = 'Error : prehole pocket not found in library'
|
||||
EgtOutLog( sErr)
|
||||
return false, sErr
|
||||
end
|
||||
|
||||
-- inserisco la lavorazione
|
||||
local sName = 'PreDrill_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
|
||||
local nMchId = EgtAddMachining( sName, sDrilling)
|
||||
if not nMchId then
|
||||
local sErr = 'Error adding machining ' .. sName .. '-' .. sDrilling
|
||||
EgtOutLog( sErr)
|
||||
return false, sErr
|
||||
end
|
||||
EgtSetInfo( nMchId, 'Part', Proc.PartId)
|
||||
-- setto la nota per spostarla prima della foratura
|
||||
EgtSetInfo( nMchId, 'MOVE_BEFORE', 1)
|
||||
-- aggiungo geometria
|
||||
EgtSetMachiningGeometry( {{ nPreHoleId, -1}})
|
||||
--EgtSetMachiningParam( MCH_MP.TOOLINVERT, bToInvert)
|
||||
|
||||
-- note utente, dichiarazione nessuna generazione sfridi per Vmill
|
||||
local sUserNotes = 'VMRS=0;'
|
||||
EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)
|
||||
-- eseguo
|
||||
if not EgtApplyMachining( true, false) then
|
||||
local _, sErr = EgtGetLastMachMgrError()
|
||||
EgtSetOperationMode( nMchId, false)
|
||||
return false, sErr
|
||||
else
|
||||
local _, sWarn = EgtGetMachMgrWarning( 0)
|
||||
if EgtIsMachiningEmpty() then
|
||||
EgtSetOperationMode( nMchId, false)
|
||||
return false, sWarn
|
||||
else
|
||||
sMyWarn = (sMyWarn or sWarn)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return true, sMyWarn
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user