; AUTHOR : Wim VERMEULEN ; LOCATION : VAN HOECKE N.V. ; LAST MODIFIED : 14/06/2001 ; ; THIS ROUTINE CREATES A KaderDeur OBJECT AS DEFINED BY "SVEDEX" ; IT USES NO DATA, IT BUILDS THE OBJECT STARTING FROM THE GIVEN PARAMETERS, USING THE CODE AS TEMPLATES; VOORBEELD ; Compiled January 16, 2001 20:18:12 Set Dev="c:\HalOrdExample.xml" Kill Jump Do READJUMP^XMLREAD("HADXML","J",.Jump) Set Status=$$VERWERK^XMLREAD(Dev,.Jump,"E") Write Status Quit J01 ;INIT`X`q Kill OrdObj J02 ;CLEAN`X`q Kill OrdObj J03 ;-ORDERLIJN`X`q Merge Test=@Params zw Test J04 ;-PROD_AD_SVDX`D`CREATEPROD^HADXML J05 ;-PROD_KD_SVDX`D`CREATEPROD^HADXML J06 ;-ORDER`X`q Merge Test=@Params zw Test J07 ;+ORDER`X`q Set OrdObj=##CLASS(Flow.Order.Hoofding).%New() J08 ;-KLANT`X`Set Naam=$G(@Params@("NAAM")) CREATEPROD(Level,Tag,TagTyp,TagCache,FullCache,Param) ;TagCache is een onderdeel van FullCache en wordt aangeduid geadresseerd door @TagCache@(...) ;FullCache wordt doorgegeven via .Local ;P geeft de extra tagparamters en wordt doorgegeven via .Local Set KadObj=##class(Prod.GADef.Kaderdeur).%New() If Tag="PROD_KD_SVDX" Do DEUR(KadObj,$G(@Params@("KASTHOOGTE")),@Params@("HOOGTE"),@Params@("BREEDTE"),@Params@("PROFIEL","PROFTYPE"),@Params@("PROFIEL","PROFAFW"),$G(@Params@("VULLING")),$G(@Params@("DRAAIRICHT"),"R"),$G(P("GEMONTEERD"))) If Tag="PROD_LF_SVDX" Do LADE(KadObj,@Params@("HOOGTE"),@Params@("BREEDTE"),@Params@("PROFIEL","PROFTYPE"),@Params@("PROFIEL","PROFAFW"),$G(@Params@("VULLING")),$G(@Params@("PLAATSING"),"I"),$G(P("GEMONTEERD"))) If Tag="PROD_VS_SVDX" Do VOUW(KadObj,$G(@Params@("KASTHOOGTE")),@Params@("HOOGTE"),@Params@("BREEDTE"),@Params@("PROFIEL","PROFTYPE"),@Params@("PROFIEL","PROFAFW"),$G(@Params@("VULLING")),$G(@Params@("PLAATSING"),"R"),$G(@Params@("DEEL"),"S"),$G(P("GEMONTEERD"))) If Tag="PROD_AB_SVDX" Do AFBOORD(KadObj,@Params@("HOOGTE"),@Params@("PROFIEL","PROFTYPE"),@Params@("PROFIEL","PROFAFW")) Quit DEUR(KadObj,KastHoogte,Hoogte,Breedte,ProfType,ProfAfw,Vulling,VullingExtras,DraaiRicht,Gemonteerd,blnStdDeur) Set:$G(KastHoogte)'>0 KastHoogte=Hoogte Set KadObj.Hoogte=Hoogte Set KadObj.Breedte=Breedte Do KadObj.ToepassingSetObjectId(##class(Res.PI.Definitie).IDViaNaam("Toepas")_"||"_"KD") Do KadObj.ProfTypeSetObjectId(##class(Res.PI.Definitie).IDViaNaam("ProfType")_"||"_ProfType) Do KadObj.ProfAfwSetObjectId(##class(Res.PI.Definitie).IDViaNaam("ProfAfw")_"||"_ProfAfw) Do KadObj.OphangPlaatsSetObjectId(##class(Res.PI.Definitie).IDViaNaam("OphangPlaats")_"||"_$S(DraaiRicht="L":"L",1:"R")) If $G(Gemonteerd)="" Set Gemonteerd=$S(KadObj.ProfType.VulCode="A":"L",1:"KV") Set KadObj.Gemonteerd=Gemonteerd Set KadObj.Verpakking=$S(Gemonteerd="KV":"K",1:"L") Do VULLING(KadObj,Vulling,$G(VullingExtras)) Do SCHARSVDX(KadObj,"S","") Do GREEP(KadObj,KastHoogte) Quit LADE(KadObj,Hoogte,Breedte,ProfType,ProfAfw,Vulling,VullingExtras,OphangPlaats,Gemonteerd) Set KadObj.Hoogte=Hoogte Set KadObj.Breedte=Breedte Do KadObj.ToepassingSetObjectId(##class(Res.PI.Definitie).IDViaNaam("Toepas")_"||"_"LF") Do KadObj.ProfTypeSetObjectId(##class(Res.PI.Definitie).IDViaNaam("ProfType")_"||"_ProfType) Do KadObj.ProfAfwSetObjectId(##class(Res.PI.Definitie).IDViaNaam("ProfAfw")_"||"_ProfAfw) Do KadObj.OphangPlaatsSetObjectId(##class(Res.PI.Definitie).IDViaNaam("OphangPlaats")_"||"_$S(OphangPlaats="I":"I",1:"O")) If $G(Gemonteerd)="" Set Gemonteerd=$S(KadObj.ProfType.VulCode="A":"L",1:"KV") Set KadObj.Gemonteerd=Gemonteerd Set KadObj.Verpakking=$S(Gemonteerd="KV":"K",1:"L") Do VULLING(KadObj,Vulling,$G(VullingExtras)) Do FRONT(KadObj) Do GREEP(KadObj,Hoogte) Quit VOUW(KadObj,KastHoogte,Hoogte,Breedte,ProfType,ProfAfw,Vulling,VullingExtras,DraaiRicht,Deel,Gemonteerd) Set:'$G(KastHoogte) KastHoogte=Hoogte Set KadObj.Hoogte=Hoogte Set KadObj.Breedte=Breedte Do KadObj.ToepassingSetObjectId(##class(Res.PI.Definitie).IDViaNaam("Toepas")_"||"_$S(Deel="V":"VDV",1:"VDS")) Do KadObj.ProfTypeSetObjectId(##class(Res.PI.Definitie).IDViaNaam("ProfType")_"||"_ProfType) Do KadObj.ProfAfwSetObjectId(##class(Res.PI.Definitie).IDViaNaam("ProfAfw")_"||"_ProfAfw) Do KadObj.OphangPlaatsSetObjectId(##class(Res.PI.Definitie).IDViaNaam("OphangPlaats")_"||"_$S(DraaiRicht="L":"L",1:"R")) If $G(Gemonteerd)="" Set Gemonteerd=$S(KadObj.ProfType.VulCode="A":"L",1:"KV") Set KadObj.Gemonteerd=Gemonteerd Set KadObj.Verpakking=$S(Gemonteerd="KV":"K",1:"L") Do VULLING(KadObj,Vulling,$G(VullingExtras)) If Deel="V" Do ; Vouwdeel . Do SCHARSVDX(KadObj,"V","V") ; Vouwscharnieren . Do SCHARSVDX(KadObj,"O","V") ; Ophangglijders (boven en onder) Else Do ; Scharnierdeel . Do SCHARSVDX(KadObj,"S","S") ; Standaard scharnieren . Do SCHARSVDX(KadObj,"V","S") ; Vouwscharnieren . Do GREEP(KadObj,KastHoogte) Quit AFBOORD Quit VULLING(KadObj,Vulling,VullingExtras) New I Quit:KadObj.ProfType.VulCode="" ; Geen vulling mogelijk Quit:'$L(Vulling) ; Geen vulling gekozen Do KadObj.Vulling.VullingSetObjectId(##class(Res.PI.Definitie).IDViaNaam("Vulling")_"||"_Vulling) Quit:($G(VullingExtras)="") For I=1:1 Quit:('$L($P(VullingExtras,";",I))) Do . Do KadObj.Vulling.VullingExtra.InsertObjectId(##class(Res.PI.Definitie).IDViaNaam("VullingExtra")_"||"_$P(VullingExtras,";",I)) Quit SCHARSVDX(KadObj,Code,Deel) New BeslagTabel,emSchar Set BeslagTabel=##class(Res.PI.Definitie).IDViaNaam("Beslag") If Code="S" Do ; Voor std deur of scharnierdeel van vouwdeur . Set emSchar=##class(Prod.GADef.emKadBeslag).%New() . Do emSchar.BeslagSetObjectId(BeslagTabel_"||"_"FERSSVD") . Do SCHARSVDXPOS(emSchar,5.5) . Do KadObj.Beslag.SetAt(emSchar, "S") . Do emSchar.%Close() If Code="V",(Deel="S")!(Deel="V") Do ; Voor scharnierdeel en vouwdeel van vouwdeur . Set emSchar=##class(Prod.GADef.emKadBeslag).%New() . Do emSchar.BeslagSetObjectId(BeslagTabel_"||"_"TRNVW"_$E(Deel,1)) . Do SCHARSVDXPOS(emSchar,$S(Deel="S":8.8,1:3.5)) . Do KadObj.Beslag.SetAt(emSchar, $S(Deel="S":"VC", 1:"VV")) . Do emSchar.%Close() If Code="O",Deel="V" Do ; Voor Ophangglijders van vouwdeel van vouwdeur . ; Ophangglijder boven . Set emSchar=##class(Prod.GADef.emKadBeslag).%New() . Do emSchar.BeslagSetObjectId(BeslagTabel_"||"_"TRNRB") . Do SCHARPOSLIST(emSchar,79,4.1) . Do KadObj.Beslag.SetAt(emSchar, "VB") . Do emSchar.%Close() . ; Ophangglijder onder . Set emSchar=##class(Prod.GADef.emKadBeslag).%New() . Do emSchar.BeslagSetObjectId(BeslagTabel_"||"_"TRNRD") ; TERNO ROL DUBBEL (SVEDEX) . Do SCHARPOSLIST(emSchar,"o-79",4.1) . Do KadObj.Beslag.SetAt(emSchar, "VO") . Do emSchar.%Close() Quit SCHARSVDXPOS(emSchar,AfBM) New Eerste,Volgende,VZ,Middle,lstPos,Hoogte Set VZ=70/2 ; Hoogte scharnier Set Eerste=79 Set Volgende=672+79 Set Hoogte=+KadObj.Hoogte Quit:(Hoogte<(Eerste*2)) If +$G(blnStdDeur) && (Hoogte=1726) Do . ; Uitzondering: bij deze hoogte slechts 3 scharnieren : 79 - (79+800) - (79+800+768) . Set lstPos=Eerste . Set lstPos=lstPos_";"_(79+800) . Set lstPos=lstPos_";"_(-Eerste) Else Do . ; Standaard posities van de scharnieren . Set lstPos=Eerste . If Hoogte<(Eerste+Volgende+VZ) Do ; deuren tot 870mm .. ; KadObj.Hoogte is te klein voor 4 scharnieren. Slechts 2 schar plaatsen. . Else If Hoogte/2<(Volgende+VZ) Do ; deuren van 870mm tot 1572mm .. ; Twee middelste scharnieren vallen samen .. Set lstPos=lstPos_";"_$S(Hoogte/20) emPos.RelLengtePos=posI . If SameBM Set emPos.AfstandRand=AfBM . Else Set:($G(AfBM)'="") emPos.AfstandRand=$P(AfBM,";",I) . Do emSchar.Positie.SetAt(emPos,I) . Do emPos.%Close() Quit BORING(KadObj,Code,XPos,YPos,Diam,BoringType,XXXPlaatsXXX,BoorDiepte) New emBoor,Key Set emBoor=##class(Prod.GADef.emKadBoring).%New() Set emBoor.XPos=KadObj.AbsPosCalc("X",XPos) Set emBoor.YPos=KadObj.AbsPosCalc("Y",YPos) Set:(XPos'>0) emBoor.RelXPos=XPos Set:(YPos'>0) emBoor.RelYPos=YPos Set emBoor.BoorDiameter=Diam Set emBoor.BoorDiepte=$S(Diam<0:0, 1:BoorDiepte) ; Puntboring (diam<0) ==> BoorDiepte=0 Set emBoor.BoringType=BoringType Do KadObj.ControleBoring(emBoor) Set:($E(emBoor.TxtOpmerking,1,3)'="OK:") emBoor.Opmerking=emBoor.TxtOpmerking ;Set:(emBoor.BoringPlaats?1"P"1A1";VUL") emBoor.BoorGlasDiameter=9 ; Placed in comment by WimV on 06-04-2005 (in opdracht van JohanB) Set Key="X" Do KadObj.Boringen.SetAt(emBoor,$S(Key?.A:Key, 1:"X")_$TR($J(KadObj.Boringen.Count()+1, 2), " ", "0")) Do emBoor.%Close() Quit FRONT(KadObj) ; <<<<< Diameter frontbevestiging Quit:(KadObj.ProfType.VulCode="A") ; Geen boringen voor Afboordingprofielen New X,Y,Diam Set Y=-$S(KadObj.OphangPlaats.ItemID="I":18,1:25) Set X=15 Set Diam=-1 Do BORING(KadObj,"", X,Y, Diam,"ON","",0) Do BORING(KadObj,"", X,Y-64, Diam,"ON","",0) Do BORING(KadObj,"", -X,Y, Diam,"ON","",0) Do BORING(KadObj,"", -X,Y-64, Diam,"ON","",0) Quit GREEP(KadObj,TotHoogte) Quit:(KadObj.ProfType.ItemID="P02") ; Geen greep boren voor smalle afboordingsprofielen New XPos,YPos,Diam If KadObj.Toepassing.ItemID="LF",$L(KadObj.Vulling.Vulling) Do ; LadeFront . Set YPos="c" . Set Diam=7 . If KadObj.Breedte>500 Do ; 2 grepen ipv van 1 .. Do BORING(KadObj,"", 100-16,YPos, Diam,"ON","",-1) .. Do BORING(KadObj,"", 100+16,YPos, Diam,"ON","",-1) .. Do BORING(KadObj,"", -100+16,YPos, Diam,"ON","",-1) .. Do BORING(KadObj,"", -100-16,YPos, Diam,"ON","",-1) . Else Do ; 1 greep .. Do BORING(KadObj,"", "c+16",YPos, Diam,"ON","",-1) .. Do BORING(KadObj,"", "c-16",YPos, Diam,"ON","",-1) .; Else If (KadObj.Toepassing.ItemID="KD")!(KadObj.Toepassing.ItemID="VDS") Do ; Standaard deur of Vouwdeur-scharnierdeel . Set XPos=$S(KadObj.OphangPlaats.ItemID="R":22.5,1:-22.5) . Set Diam=5 . If TotHoogte=KadObj.Hoogte Do .. Do BORING(KadObj,"", XPos,"c-96" , Diam,"ON","",-1) .. Do BORING(KadObj,"", XPos,"c+96" , Diam,"ON","",-1) . Else Do .. Set YPos=TotHoogte/2-96 .. Do BORING(KadObj,"", XPos,YPos , Diam,"ON","",-1) .. Do BORING(KadObj,"", XPos,YPos+192, Diam,"ON","",-1) Quit