Issue: HBore Barcodes Do Not Match Part Picture

Issue: HBore Barcodes Do Not Match Part Picture

As of build 15.6.2211, you now may use the simplified procedure found in the Microvellum Help Center article  Processing Station Associates for Reports (Overview)  to resolve this issue in addition to the procedure found in this article.

Issue

Reports display horizontal boring barcodes that are inconsistent or incorrect when compared to the part picture.

Cause

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.

These functions are supported in Microvellum change applies to build 15.6.2211, but if you don't use True Shape Nesting and it is necessary to use an earlier build of 15.6, you may use build 15.6.1414 - 15.6.2211.

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.

Resolution

  1. Update to a version of Microvellum that contains support for the edge transformation code.
  2. Update your reports to utilize that program code. This involves two general steps.
    1. Create four functions in the Code tab of the report, all similar to each other except the name. They should be named “MVHBoreLeftRotated()," “MVHBoreRightRotated(),” “MVHBoreBottomRotated(),” and "MVHBoreTopRotated().’
    2. Correctly reference the appropriate function in each report component where it is necessary to display horizontal boring data accurately. For example, if you need to display the edgeboring barcode in a barcode report component that should be displayed for the left edge of the part, you would use the function “MVHBoreLeftRotated()." If you need to display a barcode for the bottom edge, you will use the function “MVHBoreBottomRotated().” Use the function whose name contains the name of the part side needed.          

Additional Details

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:

  1. Work Order LinkID
  2. Batch LinkID
  3. OptimizationResults Parent Part LinkID
  4. OptimizationResults Child Part LinkID

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)

It is acceptable to call the same function multiple times within a single report component. For example, you may be building a custom barcode string based on whether one of the part edges contains horizontal boring or not. You might call it once to determine if the field contains data, and then again, to build a string based on the data found there.

Tutorial

Before performing the procedure below, you must successfully create and then decide which secondary machining dataset relationship to use. Click  here  for more information about why that needs to be done and how to do it.
  1. I have attached a text file containing the function code that you will need to copy to the Code tab of your report. If the Code tab is not displayed, right-click in the white area immediately to the right of Page 1 and Preview tabs. Click the Code menu items to that it displays a checkmark next to it.

  2. Fig. 1 - Right-click and select Code to activate the code tab



    Fig. 2 - Insert function code in the area between End Sub, and #Region (indicated by dotted arrow)


  3. Import the attached test report in a build between 15.6.1414 & 15.6.2211 and look at expressions behind the horizontal barcode components for examples of how to modify your report components.

  4. Fig. 3 - Report Designer showing barcodes to use as examples in modifying your expressions



    Fig. 4 - Sample barcode expression calling the function MHHBoreTopRotated

I have attached a test report you may use as a sample to help you understand the concepts found in this article.

Function Code Snippet

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


    • Recent Articles

    • Microvellum Foundation Library Release Notes | Build 24.0322

      Additions Added the Master Angled Ends Cabinet. Added a Global prompt, "Hinge Plate Offset From Front" for easier control. Added “Double Division” option to Horizontal Designer Cabinets, 3 Door Cabinets, and other similar products. Added a new ...
    • Toolbox Release Notes | Build 24.1.0318.641

      The following release notes apply to Toolbox build 24.1.0318.641 Shadowline Fix Figure 1: Shadowline shaping issue (left) and fixed (right). There were reports of users experiencing issues with products having incorrectly shaped shadow lines when the ...
    • Toolbox Release Notes | Build 24.1.0312.641

      The following release notes apply to Toolbox build 24.1.0312.641 Processing Station IDs Processing stations will have IDs added to them as an option within the Toolbox UI, to better distinguish between different processing stations. Perfect Graining ...
    • Toolbox Release Notes | Build 24.1.0306.641

      The following release notes apply to Toolbox build 24.1.0306.641 Destroy Offal Fix Figure 1: Destroy Offal arc part issue. There was an issue reported by users utilizing nesting with the “Destroy Offal” setting applied during processing. ...
    • Toolbox Release Notes | Build 24.1.0227.641

      The following release notes apply to Toolbox build 24.1.0227.641 UI Fixes Figure 1: Expansion issue with Function Arguments window. There was a noted issue regarding the Function Arguments window in the Formula Editor: when one expanded or increased ...