Reports display horizontal boring barcodes that are inconsistent or incorrect when compared to the part picture.
Build 15.6 contains an expanded ability to process with multiple processing stations. One of the reasons for this is that a User may want to direct the parts to one of several CNC machines to equalize the workload of those machines. Alternatively, while printing labels for their nesting CNC, they want to produce edgeboring G-Code on a dedicated HBORE machine and need to display barcodes for the files from that processing station.
While support for that ability continues, we have added a new area of code in the program that supports an improved level of accuracy between the edgeboring barcodes and the part picture produced. We call them edge transformation report functions.
Without getting into a lengthy explanation for the reasons these transformations are necessary, if they are not used, the horizontal boring data may be inaccurate for certain part rotation angles produced when optimizing. The symptom will be a discrepancy between the HBORE barcodes and the edges displaying the edgebore machining on the part picture.
Each time you call the function in the report, you must supply it with four (4) arguments. In the order you must enter them, they are as follows:
Here is a typical report component call to this function. (Keep in mind that the actual <tablename.fieldname> you will use will depend on what you are trying to accomplish with the report or label.)
MVHBoreLeftRotated(OptimizationResults.LinkIDWorkOrder, OptimizationResults.LinkIDWorkOrderBatch, OptimizationResults.LinkID, OptimizationResults.OptResStation2.LinkID)
I have attached a test report you may use as a sample to help you understand the concepts found in this article.
You may copy and paste the code below into the Code tab of your reports, as explained in this article.
Private Function MVHBoreLeftRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String, LinkIDChild As String) As String
Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)
Return Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeLeft(LinkIDParent, LinkIDChild)
End Function
Private Function MVHBoreRightRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String, LinkIDChild As String) As String
Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)
Return Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeRight(LinkIDParent, LinkIDChild)
End Function
Private Function MVHBoreBottomRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String, LinkIDChild As String) As String
Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)
Return Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeBottom(LinkIDParent, LinkIDChild)
End Function
Private Function MVHBoreTopRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String, LinkIDChild As String) As String
Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)
Return Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeTop(LinkIDParent, LinkIDChild)
End Function