; FreesTool.ItemID for PuntBoring #define cPuntBoorID "PUNT" ; Values of FreesTool.DiepteType #define cDTRUG "R" #define cDTDOOR "D" ToolsForBoring(objBoring) Quit:('$G(objBoring)) "" Quit:(objBoring.BoringType'="ON")&&(objBoring.BoringType'="IN")&&(objBoring.BoringType'="EX") "" New ToolID,D Set D=";" ;Set ToolID=$$tfbUitzonderingen ;Quit:($L(ToolID)) ToolID Set ToolID=$$tfbMatchCncID Quit:($L(ToolID)) ToolID Set ToolID=$$tfbMatchPuntBoring Quit:($L(ToolID)) ToolID Set ToolID=$$tfbMatchAfschuin Quit:($L(ToolID)) ToolID Set ToolID=$$tfbMatchBoorEnFrees Quit:($L(ToolID)) ToolID Quit "" tfbUitzonderingen() Quit "" tfbMatchCncID() New ToolID,Char Quit:(objBoring.CncID="") "" Quit:(objBoring.CncID="!") "!"_$$tfbGetPuntBoorID ; Duid positie aan d.m.v. PuntBoring Set Char=$S($E(objBoring.CncID,1)="!":"!", 1:"") Set ToolID=##class(Res.PI.Definitie).IDViaNaam("FreesTool")_"||"_$TR(objBoring.CncID,"!","") Quit:(##class(Res.PI.FreesTool).%ExistsId(ToolID)) Char_ToolID Quit:(Char="!") "!"_$$tfbGetPuntBoorID ; Duid positie aan d.m.v. PuntBoring Quit "" tfbMatchPuntBoring() Quit:(objBoring.BoorDiameter<0)!(objBoring.BoorDiepte=0) $$tfbGetPuntBoorID Quit:(objBoring.BoorDiameter'>1) $$tfbGetPuntBoorID ; Kleine Diameter = PuntBoring Quit "" tfbGetPuntBoorID() Quit ##class(Res.PI.Definitie).IDViaNaam("FreesTool")_"||"_$$$cPuntBoorID tfbMatchAfschuin() Quit:(objBoring.AfschuinDiameter'>objBoring.BoorDiameter) "" New rs,ToolID,ToolID2,Diam,AD,blnDoorBoring,SplitsAfschuin Set ToolID="" Set ToolID2="" Set SplitsAfschuin=0 Set Diam=objBoring.BoorDiameter Set AD=objBoring.AfschuinDiameter Set blnDoorBoring=(objBoring.BoorDiepte<0) If blnDoorBoring Do . ; Doorboring met afschuining . Set rs=##class(%Library.ResultSet).%New("Res.PI.FreesTool:LijstPerType") . Do rs.Execute($S(objBoring.CncID?1"HULS".E:"H", 1:"S")) . For Quit:'rs.Next() Do Quit:($L(ToolID)) .. If rs.GetDataByName("Diameter")=Diam, rs.GetDataByName("MaxDiameter")=Diam, rs.GetDataByName("Afschuin")=AD, rs.GetDataByName("DiepteType")=$$$cDTDOOR Set ToolID=rs.GetDataByName("ID") . Do rs.%Close() . ; Indien geen rechtstreeks Afschuin-tool bestaat voor Doorboring+Afschuin, dan deze splitsen in Doorboring en tweede freesopdracht Afschuin . Set SplitsAfschuin=(ToolID="") . Set:(SplitsAfschuin) ToolID=$$tfbMatchBoorEnFrees ; zoek standaard Doorboring If ('blnDoorBoring)!(SplitsAfschuin) Do . If objBoring.CncID?1"HULS".E Do .. ; Normale (rug)boring voor huls (diameter=Afschuindiameter) .. Set rs=##class(%Library.ResultSet).%New("Res.PI.FreesTool:LijstPerType") .. Do rs.Execute("B") .. For Quit:'rs.Next() Do Quit:($L(ToolID2)) ... If rs.GetDataByName("Diameter")=AD, rs.GetDataByName("DiepteType")=$$$cDTRUG Set ToolID2=rs.GetDataByName("ID") .. Do rs.%Close() . Else Do .. ; Normale (rug)boring met afschuining ..// !!! NIET MEER ZOEKEN NAAR "TRAPBOOR". Deze wordt alleen gekozen wanneer CncID="S5070R" !!! ..; Set rs=##class(%Library.ResultSet).%New("Res.PI.FreesTool:LijstPerType") ..; Do:('blnDoorBoring) rs.Execute("S") ; Als doorboring met afschuin, dan NIET zoeken naar "TRAPBOOR" ! ..; For Quit:'rs.Next() Do Quit:($L(ToolID2)) ..;. If rs.GetDataByName("Diameter")=Diam, rs.GetDataByName("MaxDiameter")=0, rs.GetDataByName("Afschuin")=AD, rs.GetDataByName("DiepteType")=$$$cDTRUG Set ToolID2=rs.GetDataByName("ID") ..; Do rs.%Close() ..; Quit:($L(ToolID2)) .. Set rs=##class(%Library.ResultSet).%New("Res.PI.FreesTool:LijstPerType") .. Do rs.Execute("S") .. For Quit:'rs.Next() Do Quit:($L(ToolID2)) ... If rs.GetDataByName("Diameter")=0, rs.GetDataByName("MaxDiameter")=0, rs.GetDataByName("Afschuin")=AD, rs.GetDataByName("DiepteType")=$$$cDTRUG Set ToolID2=rs.GetDataByName("ID") .. Do rs.%Close() Set ToolID=ToolID_$S($L(ToolID)&$L(ToolID2):D, 1:"")_ToolID2 Quit:(ToolID="") "!"_$$tfbGetPuntBoorID ; Duid positie aan d.m.v. PuntBoring Quit ToolID tfbMatchBoorEnFrees() New ToolID Set ToolID=$$tfbMatchBoor Quit:($L(ToolID)) ToolID Set ToolID=$$tfbMatchFrees Quit:(ToolID="") "!"_$$tfbGetPuntBoorID ; Duid positie aan d.m.v. PuntBoring Quit ToolID tfbMatchBoor() New rs,ToolID,DiType Set ToolID="" Set DiType=$S(objBoring.BoorDiepte<0:$$$cDTDOOR, 1:$$$cDTRUG) Set rs=##class(%Library.ResultSet).%New("Res.PI.FreesTool:LijstPerType") Do rs.Execute("B") For Quit:'rs.Next() Do Quit:($L(ToolID)) . If rs.GetDataByName("Diameter")=objBoring.BoorDiameter, rs.GetDataByName("DiepteType")=DiType Set ToolID=rs.GetDataByName("ID") Do rs.%Close() Quit ToolID tfbMatchFrees() New rs,ToolID,Diam,DiType Set ToolID="" Set Diam=objBoring.BoorDiameter Set DiType=$S(objBoring.BoorDiepte<0:$$$cDTDOOR, 1:$$$cDTRUG) Set rs=##class(%Library.ResultSet).%New("Res.PI.FreesTool:LijstPerType") Do rs.Execute("F") For Quit:'rs.Next() Do Quit:($L(ToolID)) . If rs.GetDataByName("Diameter")'>Diam, rs.GetDataByName("MaxDiameter")>Diam, rs.GetDataByName("DiepteType")=DiType Set ToolID=rs.GetDataByName("ID") Do rs.%Close() Quit ToolID