Skip to main content

Configuring Part Transformation Functions (Legacy Support)

T
Written by Tim Sublette

As of build 21.1.0604.641, we have streamlined the way information for labels and reports is processed to improve accuracy and efficiency. Part image rotation, filenames, barcodes, edge boring(Hbore), and edgebanding location data are all now accessed from the OptimizationResults table directly. This means you will no longer need to set up the part transformation functions listed below to accurately display data on Microvellum generated part labels and reports. See Streamlined Label and Report Data Processing for more information.

This article is ONLY applicable to builds 15.6.2404 through 21.10604 and will prove helpful when you need to display accurate rotated edge boring (HBore) data, face 5 or face 6 data, and accurate edgebanding data labels are rotated on an auto-nest labeling system.

Configuring & Using Part Transformation Functions

On builds 15.6.2404 through 21.10604, to configure your reports to correctly display secondary machining data you must add the part transformation functions in each report or label as required. These functions will be required anytime you need to accurately display an edge boring (HBore) filename or barcode for a specific edge to the corresponding edge in the rotated part picture. They are also needed for rotated labels that display edgebanding material on an auto-nest labeling system.

There are twelve Part Transformation Functions used within the software. Add the function code to each report where they are needed, in the Code tab. Also, add references to these functions in the individual report components where you intend to display the edge boring, edgebanding, or face 5/6 data. These functions provide rotation information for the report text components so that they match the part picture.

The function code that must be copied to the report Code tab is contained in the attached text file named “PartTransformationFunctions.txt.”


Part Transformation Functions


Edgebore Rotation


Use these functions to correctly display HBore data on all edges of the part where each edge filename and barcode are different.

  • MVHBoreLeftRotated

  • MVHBoreRightRotated

  • MVHBoreBottomRotated

  • MVHBoreTopRotated

Edgeband Material for Rotated Labels

(auto-nest labeling systems only)

Use these functions to correctly display edgebanding material data on all edges of the part where the label has been rotated so as not to interfere with nearby machining.

  • MVEdgeBandLeftRotated

  • MVEdgeBandRightRotated

  • MVEdgeBandBottomRotated

  • MVEdgeBandTopRotated

Single Parts Station Face 5 & 6 Machining Data


Use these functions to correctly display single part data for face 5 and face 6, or where the edge boring data for all edges of the part is contained in a single filename and barcode.

  • MVFace5Filename

  • MVFace6Filename

  • MVFace5Barcode

  • MVFace6Barcode

Each of these twelve functions contains parameters requiring three arguments. The arguments you must supply to the function in the report components are listed below in the order they must appear following the function name.

  • Work Order LinkID

  • Work Order Batch LinkID

  • Parent or Primary Station LinkID

Configure Processing Station Associates


Determine which processing stations need Associative functions, such as a Nest or Saw. To add this functionality to a processing station, follow the steps below:

  1. Edit the Nest or Saw processing station

  2. Click on the “Associates” tab

  3. Add the following types:

    1. Edge_Bore for HBore processing stations


    2. Single_Part_Maching for P2P processing stations

If not processing to a Nest or Saw (i.e., CutRite), edit the P2P station and add the HBore processing station associate. Rename the processing stations so that the HBore processing station is listed above the P2P processing station.


Fig. 1 – Processing Station Associates Screen

Optimized Results Databand Filters


Add the following to the OptimizationResults report databand filter:

Nest or Saw:


IIF(OptimizationResults.PrintFlags.Contains(Environment.MachineName & Environment.UserName), True, False)

P2P:


OptimizationResults.LinkIDProcessingStation = “ insert P2P processing station linkID here


Code


Add the following to the report Code tab:


Private Function MVHBoreLeftRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeLeft(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvedge_bore)

End Function



Private Function MVHBoreRightRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeRight(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvedge_bore)

End Function


Private Function MVHBoreBottomRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeBottom(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvedge_bore)

End Function


Private Function MVHBoreTopRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.BarcodeTop(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvedge_bore)

End Function


Private Function MVHBoreFace5FileName(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.filenameface5(LinkIDParent, microvellum. mvxProcessingStationAssociationType.mvedge_bore)

End Function


Private Function MVHBoreFace5Barcode(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.barcodeface5(LinkIDParent, microvellum. mvxProcessingStationAssociationType.mvedge_bore)

End Function


Private Function MVFace5FileName(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.filenameface5(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvSingle_Part_Machining)

End Function


Private Function MVFace5Barcode(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.barcodeface5(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvSingle_Part_Machining)

End Function


Private Function MVFace6FileName(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.filenameface6(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvSingle_Part_Machining)

End Function


Private Function MVFace6Barcode(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.barcodeface6(LinkIDParent, microvellum.mvxProcessingStationAssociationType.mvSingle_Part_Machining)

End Function


Private Function MVEdgeBandLeftRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.EdgeBandLeft(LinkIDParent)

End Function


Private Function MVEdgeBandRightRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.EdgeBandRight(LinkIDParent)

End Function


Private Function MVEdgeBandBottomRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.EdgeBandBottom(LinkIDParent)

End Function


Private Function MVEdgeBandTopRotated(LinkIDWO As String, LinkIDBatch As String, LinkIDParent As String ) As String

Microvellum.Production.Optimization.clsOptimizationResultTransformation.Init(LinkIDWO, LinkIDBatch)

Return

Microvellum.Production.Optimization.clsOptimizationResultTransformation.EdgeBandTop(LinkIDParent)

End Function


HBore Formulas


Add the following to the report components displaying edge boring filenames or barcodes:

These formulas are used when the HBore processing station produces a barcode for each side.



{MVHBoreLeftRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVHBoreRightRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVHBoreTopRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVHBoreBottomRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}


HBore Formulas (Single Barcode)


Add the following to the report components displaying edge boring filenames or barcodes:

These formulas are used when the HBore processing station produces a single barcode for all sides.



{MVHBoreFace5FileName(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVHBoreFace5Barcode(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}


P2P Formulas (Single Station)


Add the following to the report components displaying face 5 and face 6 filenames or barcodes:

These formulas are used when the primary processing station is a Nest or Saw.



{MVFace5FileName(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVFace5Barcode(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVFace6FileName(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}

{MVFace6Barcode(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderBatch,OptimizationResults.LinkID)}


Edgebanding Formulas


Add the following to the report components displaying edgebanding materials on labels that may be rotated by an auto-nest labeling system:

These formulas are used when labels are printed by an auto-nest labeler with label rotation capabilities. The IPP toolfile setting Integrated Post Processor Settings > Auto Label Settings > Auto Labeling Type must be set to something other than NONE, and the property “Allow Label Rotation” must be checked ON.



{MVEdgeBandLeftRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderbatch,OptimizationResults.LinkID)}

{MVEdgeBandRightRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderbatch,OptimizationResults.LinkID)}

{MVEdgeBandTopRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderbatch,OptimizationResults.LinkID)}

{MVEdgeBandBottomRotated(OptimizationResults.LinkIDWorkOrder,OptimizationResults.LinkIDWorkOrderbatch,OptimizationResults.LinkID)}


Did this answer your question?