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:
Edit the Nest or Saw processing
station
Click on the “Associates” tab
Add the following types:
Edge_Bore for HBore processing stations
- 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)}