XMLVectorWrite(DevObj,Plaats,Kant,Opties,%this) New BType,strVML,OriginX,OriginY,intSize,intRotate,strColor,TekCode,BedPlaats,DMLine,MirrorX,XtraOpt Set OriginX=%this.Positie.GetNext("").X Set OriginY=%this.Positie.GetNext("").Y Set intSize=$S(%this.Diameter<0:3, 1:%this.Diameter) Set MirrorL=((Kant="BO")||(Kant="EX")) ; !!! Spiegelen van alle figuren (assymetrisch) volgens de lengte-as v/h profiel en door de oorsprong !!! Set BedPlaats=$S($G(Opties)["R=I":"PO", 1:"PB") Set intRotate=$CASE(BedPlaats, "PB":90, "PO":270, "PL":0, "PR":180, :0) Set strColor=$S(%this.StatusFreesTool="P":"red", 1:"black") Set DMLine=($G(Opties)["DM=L") #define FrezingData %this.CNCProg_" X="_OriginX_" Y="_OriginY_" D="_%this.Diameter #define FToolOms $S(%this.FreesTool:$TR(%this.FreesTool.Omschrijving," ",""),1:"") Set XtraOpt="" Set:(MirrorL) XtraOpt=XtraOpt_"MirrorL=1;" Set:($G(Opties)["LW=S") XtraOpt=XtraOpt_"LW=S;" Set:($G(Opties)["AT=F") XtraOpt("AT")="Title="""_$$$FrezingData_" ("_$$$FToolOms_")""" ; Attribute Title Value ; ;Set:($G(Opties)["AT=F") XtraOpt("AT")="Title="""_%this.CNCProg_" X="_OriginX_" Y="_OriginY_" D="_%this.Diameter_ ; " ("_$S(%this.FreesTool:$TR(%this.FreesTool.Omschrijving," ",""),1:"")_")""" ; Attribute Title Value ; Select VML type for this boring If DMLine Do ; DrawMode = Line : draw single vertical line . Set:(strColor'="red") strColor=$S(%this.Diameter'<10:"blue", 1:"black") . Set strVML="" Else If %this.CNCProg="DOORB" Do ; DOORBORING ("o") . Set strVML=$$Circle^VHSys.Library.VMLLib(OriginX,OriginY, $S(intSize<2:2, 1:intSize), strColor,strColor,.XtraOpt) Else If %this.CNCProg="AFSCHUIN" Do ; AFSCHUIN ("+") . Set strVML=$$CrossHV^VHSys.Library.VMLLib(OriginX,OriginY,10,10,strColor,.XtraOpt) ;$G(OptieLW)) Else If (%this.CNCProg="PUNT")!(%this.Diameter<0) Do ; PUNT BORING ("X") . Set strVML=$$CrossDiag^VHSys.Library.VMLLib(OriginX,OriginY,10,10,strColor,.XtraOpt) ;$G(OptieLW)) Else If %this.CNCProg="RUGB" Do ; STD RUGBORING ("o"&"X") . Set strVML="" . Set:(intSize'>10) strVML=strVML_$$CrossDiag^VHSys.Library.VMLLib(OriginX,OriginY,10,10,strColor,.XtraOpt) ;$G(OptieLW)) . Set strVML=strVML_$$Circle^VHSys.Library.VMLLib(OriginX,OriginY, $S(intSize<2:2, 1:intSize), strColor,strColor,.XtraOpt) Else If %this.CNCProg?1(1"KADFREES",1"KADHET") Do ; Special case: FREES in Kaderscharnier BLUM of HETTICH . Set strVML=$$Oval^VHSys.Library.VMLLib(OriginX,OriginY+5+1, %this.Diameter, 10, strColor,strColor,.XtraOpt) ; %this.Diameter=42 Else If %this.CNCProg?1(1"KADFER") Do ; Special case: FREES in Kaderscharnier FERRARI . Set strVML=$$Oval^VHSys.Library.VMLLib(OriginX,OriginY+4+1, %this.Diameter, 8, strColor,strColor,.XtraOpt) ; %this.Diameter=48 Else If %this.CNCProg="KAD120" Do ; Special case: FREES in Kaderscharnier 120° BLUM . Set strVML=$$VMLShape^VHSys.Library.VMLLib(%this.CNCProg,OriginX,OriginY,intSize,intRotate,strColor,.XtraOpt) Else If %this.CNCProg?1(1"KAD120Z",1"KADHSZ",1"KADBMZ") Do ; Special case: FREES in AventosHS (cfr. Kaderscharnier 120°, interne zijkant) of KAD Blum voor Blumotion . Set strVML=$$Rectangle^VHSys.Library.VMLLib(OriginX,OriginY+4+1, %this.Diameter, 8, strColor,strColor ,1, .XtraOpt) Else If $L(%this.CNCProg)>2 Do ; All other special cases . Set strVML=$$VMLShape^VHSys.Library.VMLLib(%this.CNCProg,OriginX,OriginY,intSize,intRotate,strColor,.XtraOpt) Else Do ; ? BORING ("o") . Set strVML=$$Circle^VHSys.Library.VMLLib(OriginX,OriginY, 4, strColor,strColor,.XtraOpt) ; Add VML boring to DevObj Do WRITE^XMLWRITE(DevObj,strVML_NL) Quit