PackNet.Cube User Manual [MANUAL-00001]
PackNet.Cube User Manual [MANUAL-00001]
Table of Contents
1. Calling PackNet.Cube Directly ............................................................................................. 3
2. Right Size Bin Pack (RSBP) ................................................................................................... 4
2.1. Creating a Box List ................................................................................................... 4
3. Standard Bin Pack (SBP) ...................................................................................................... 5
4. Limitations and Variables ..................................................................................................... 6
5. Property Definitions ........................................................................................................... 7
5.1. items ...................................................................................................................... 7
5.2. selectionOptions ..................................................................................................... 7
5.3. limit ........................................................................................................................ 8
5.4. containerOptions (RSBP) .......................................................................................... 8
5.5. Box List (SBP) .......................................................................................................... 9
5.6. Other Response Properties ....................................................................................... 9
5.7. Modifiers ................................................................................................................ 9
5.8. Nesting and Containing ............................................................................................ 9
6. RSBP Example .................................................................................................................. 13
6.1. RSBP Example Request .......................................................................................... 13
6.2. RSBP Example Response ........................................................................................ 15
7. SBP Example .................................................................................................................... 23
7.1. SBP Example Request ............................................................................................ 23
7.2. SBP Example Response .......................................................................................... 24
8. Revision History ............................................................................................................... 27
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 2
PACKNET.CUBE USER MANUAL
Bearer Token
With the username and password, a user will need to call the IdentityAPI using an API platform (Postman
or similar) to retrieve a Bearer token. If the user does not have a username or password setup, they will
need to work with their Packsize point of contact to have one created. The baseURL will be whichever
environment the user is assigned to.
The response will return an access_token which contains the Bearer token.
{
"access_token": "yourAccessToken",
"token_type": "bearer",
"expires_in": 86400,
"refresh_token": null
}
API Key
When a user is not using a Bearer token, they will need an API key to call PackNet.Cube. If the user does
not have a key, they will need to work with Packsize to get one. When using an API key, the routes are
slightly different:
RSBP: {baseUrl}/api/v1/tenants/{tenantId}/RightSizeBinPack
SBP: {baseUrl}/api/v1/tenants/{tenantId}/StandardBinPack
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 3
PACKNET.CUBE USER MANUAL
This endpoint works by creating all possible boxes using the min/max dimensions and incrementBy
values in containerOptions, packs them in various directions, then returns a list of boxes ordered by
selectionOptions.orderBy as defined in the request. See selectionOptions [7].
The smaller the list of boxes, the faster the response. Be intentional with dimensions and increment by
whole numbers.
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 4
PACKNET.CUBE USER MANUAL
This endpoint uses a predefined list of box sizes. PackNet.Cube takes the items to pack and returns a list
of boxes ordered by selectionOptions.orderBy as defined in the request. See selectionOptions [7].
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 5
PACKNET.CUBE USER MANUAL
Being intentional with requests of the PackNet.Cube is critical. Every increment of a cube variable has an
exponential impact on the computation and will increase the time it takes to return an optimal solution.
• Items - Cube evaluates six permutations of how each item can be cubed. Each additional item not
only increases the permutations by the six sides of the second item, but 6 to the power of the
number of items to be cubed. For example, 62=36 versions of two items being packed together, or
6x where x = the number of items to be cubed.
63 = 36 permutations
64 = 1,296 permutations
65 = 7,776 permutations
69 = 10,077,696 permutations
• Min - Start with the dimensions of the single largest item to be packed, as there will never be a
100% packed box solution smaller than that.
Other considerations when setting minimum dimensions include machine limitations, label size and
placement, size and quality of the corrugated, conveyance, and shipping method.
• Max - If a box will be produced on a Packsize machine, start with the maximum container
producible. Other factors to consider include corrugated material quality and carton design.
• Increment - The increment is the measurable increase between the minimum and maximum
dimensions. Remember, the box list is dynamic. Setting the maximum dimensions, minimum
dimensions, and the increment to increase are just the largest box, smallest box, and every box
in between. The first box in the list is the minimum dimensions. If the increment is 1, the box
list will increment by 1 along each of the 3 dimensions until it reaches the established maximum
dimensions.
• Machine - Each machine has physical limitations to the size of the box that it can create. Consider
the limitations of the specific system being used, accounting for things like:
• Label size
• Label placement
• Conveyance width
• Conveyance speed
• Shipping requirements
• Weight limits
• Carton design
• Corrugate width
• Corrugate quality
Understand and use these machine limitations and variables to inform dimensions.
Every single permutation that is accounted for in the dynamic box list takes a time to compute. One call
is a matter of milliseconds, but billions of milliseconds can add up to hours of computation time.
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 6
PACKNET.CUBE USER MANUAL
5. Property Definitions
5.1. items
The items property is an array of item objects with the following required properties:
5.2. selectionOptions
The selectionOptions property is used to guide the decisions that PackNet.Cube makes while searching
for optimal solutions. It dictates to PackNet.Cube how to determine which solutions are more suitable or
less suitable.
• orderBy: Tells PackNet.Cube how to sort the final set of solutions that are returned to the user, with
the first solution being most suitable. This property is a string, and accepts the following values (case
is important). NOTE: this property is not supported by the SBP endpoint.
• “none” – Return the solutions in whatever order they are found. Use this when not wanting to
make any assumptions about the solutions returned. PackNet.Cube always searches from the
smallest carton size to the largest, incrementing along each of the three dimensions one at a
time. Select this option when the step-size is large and the expected solution size is small.
• “percent-filled” – Results will be sorted based on the percentage filled, in descending order.
This ordering may result in selecting cartons that are awkwardly long (train-style) or awkwardly
wide and flat (pizza box).
• “distance” – Results will be sorted by cartons with the shortest distance to cartons with
the longest. Distance for an individual carton is calculated by the square root of its (length2
+ width2 + height2). Containers with a shorter distance will be more compact (cubic) than
containers with a longer distance. This correlates directly to using less corrugate overall.
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 7
PACKNET.CUBE USER MANUAL
• “volume” – Results are sorted by carton volume, from least to greatest. Sorting by volume yields
similar results to sorting by percent filled.
• “surfaceArea” – Results are sorted by surface area, from least to greatest. Sorting by surface
area yields results that are similar to sorting by distance. Surface area is the strongest indicator
of the amount of corrugate used; however, it does not account for the amount required for the
actual carton design that you select (e.g., RSC style patterns use the least amount of corrugate
overall compared to FOL style patterns and others).
• cutoffTime: An integer value in milliseconds. If the request takes longer than this amount of time,
all further processing for the job will be cancelled and PackNet.Cube will return whatever results
it managed to compute within that time. A value of 0 indicates no cutoff time, and PackNet.Cube
will take as long as it needs to search all possible carton sizes for the job. Use this property to set a
cutoff time for jobs that take a long time to pack.
• shrinkwrap: By default, RSBP will shrinkwrap. It can be disabled by passing 'false'. Shrinkwrap uses
the containers list created based on the containerOptions values and then trims any empty space
between the packed items and the container's wall to form a snug fit. This allows for a slightly larger
incrementBy value while still returning a box with less waste (saves processing time).
5.3. limit
This property tells PackNet.Cube how many solutions to return. Use any number less than 1 to indicate
no limit.
This property is optional. If it is missing, or if its value is ≤0, then PackNet.Cube will return all results.
NOTE
The result set for some requests can be extremely large (tens of megabytes). The
recommended size is between 50 and 200. Requests for 2-5 items will only have about 20
unique suitable solutions. All other solutions will be variations of the initial set of optimal
solutions, but with incrementally larger and larger carton sizes.
The set of optimal suitable solutions can vary greatly based on:
• Longest dimension of each item, or the ratio between the two longest dimensions.
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 8
PACKNET.CUBE USER MANUAL
• maximumWeight: The maximum weight the container can hold (packed items).
5.7. Modifiers
Shrinkwrap
By Default, RSBP will shrinkwrap the items into a snug box. This allows users to use an incrementBy
value of 1 or 2 and still getting a good solution, but much faster than using 0.1.
SelectionOptions.OrderBy
• "percent-filled"
• "distance"
• "volume"
• "surface-area"
canContain - denotes whether an item has space in which another, smaller item can be placed inside of
the cavity. An example of this would be placing a hammer inside of a bucket.
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 9
PACKNET.CUBE USER MANUAL
This example includes eight buckets and four random, same-sized items that cannot nest, stack, or
contain. Based on the NestMaxDimension3, the stack size is limited to two buckets per stack. With
four additional items, the four bucket stacks can each contain one item as long as it fits the "contain"
dimensions of the bucket.
{
"dimension1": 6,
"dimension2": 6,
"dimension3": 10,
"id": 1,
"quantity": 8,
"sku": "Bucket",
"canNest":true,
"NestGrowthDimension1":0,
"NestGrowthDimension2":0,
"NestGrowthDimension3":1,
"NestMaxDimension1":0,
"NestMaxDimension2":0,
"NestMaxDimension3":11,
"canContain": true,
"containDimension1":4,
"containDimension2":4,
"containDimension3":8
},
{
"dimension1": 3,
"dimension2": 3,
"dimension3": 7,
"id": 1,
"quantity": 4,
"sku": "RandomTool"
}
Result
"dimension1": 11.0,
"dimension2": 12.0,
"dimension3": 12.0,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 10
PACKNET.CUBE USER MANUAL
In this example, five buckets having a growth of 1 unit/inch on the height dimension
(NestMaxDimension3) of 11.
{
"dimension1": 6,
"dimension2": 6,
"dimension3": 10,
"id": 1,
"quantity": 5,
"sku": "Real01",
"canNest":true,
"NestGrowthDimension1":0,
"NestGrowthDimension2":0,
"NestGrowthDimension3":1,
"NestMaxDimension1":0,
"NestMaxDimension2":0,
"NestMaxDimension3":11
}
Result
"dimension1": 18.0,
"dimension2": 11.0,
"dimension3": 6.0,
Sent to RSBP:
{
"dimension1": 6,
"dimension2": 6,
"dimension3": 10,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 11
PACKNET.CUBE USER MANUAL
"id": 1,
"quantity": 3,
"sku": "Real01",
"canNest":true,
"NestGrowthDimension1":0,
"NestGrowthDimension2":0,
"NestGrowthDimension3":1,
"NestMaxDimension1":0,
"NestMaxDimension2":0,
"NestMaxDimension3":11
}
Result:
"dimension1": 12.0,
"dimension2": 11.0,
"dimension3": 6.0,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 12
PACKNET.CUBE USER MANUAL
6. RSBP Example
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 13
PACKNET.CUBE USER MANUAL
},
{
"dimension1": 17.0,
"dimension2": 7.7,
"dimension3": 2.3,
"id": 1,
"quantity": 1,
"sku": "Real02"
},
{
"dimension1": 16.9,
"dimension2": 7.7,
"dimension3": 2.2,
"id": 1,
"quantity": 1,
"sku": "Real04"
}
],
"limit": 2,
"maximumPotentialContainers": 500,
"selectionOptions": {
"cutoffTime": 1200000, //20min
"orderBy": "percent-filled"
}
}{
"items": [
{
"id": 0,
"dimension1": 0,
"dimension2": 0,
"dimension3": 0,
"quantity": 0,
"volume": 0,
"canNest": true,
"nestGrowthDimension1": 0,
"nestGrowthDimension2": 0,
"nestGrowthDimension3": 0,
"nestMaxDimension1": 0,
"nestMaxDimension2": 0,
"nestMaxDimension3": 0,
"canContain": true,
"containDimension1": 0,
"containDimension2": 0,
"containDimension3": 0,
"sku": "string",
"weight": 0
}
],
"selectionOptions": {
"orderBy": "string",
"cutoffTime": 0,
"shrinkwrap": true
},
"limit": 0,
},
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 14
PACKNET.CUBE USER MANUAL
"containerOptions": {
"minimumDimension1": 0,
"maximumDimension1": 0,
"incrementDimension1By": 0,
"minimumDimension2": 0,
"maximumDimension2": 0,
"incrementDimension2By": 0,
"minimumDimension3": 0,
"maximumDimension3": 0,
"incrementDimension3By": 0,
"maximumWeight": 0
}
}
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 15
PACKNET.CUBE USER MANUAL
"isPacked": true,
"dimension1": 13.9,
"dimension2": 4.7,
"dimension3": 1.9,
"coordinateX": 0.0,
"coordinateY": 0.0,
"coordinateZ": 7.7,
"quantity": 1,
"packedDimensionX": 13.9,
"packedDimensionY": 4.7,
"packedDimensionZ": 1.9,
"volume": 124.127,
"canNest": false,
"nestGrowthDimension1": 0.0,
"nestGrowthDimension2": 0.0,
"nestGrowthDimension3": 0.0,
"nestMaxDimension1": 0.0,
"nestMaxDimension2": 0.0,
"nestMaxDimension3": 0.0,
"canContain": false,
"containDimension1": 0.0,
"containDimension2": 0.0,
"containDimension3": 0.0,
"sku": "Real01",
"voidContents": null,
"nestedQuantity": 0,
"weight": 0.0
},
{
"id": 1,
"isPacked": true,
"dimension1": 17.0,
"dimension2": 7.7,
"dimension3": 2.3,
"coordinateX": 0.0,
"coordinateY": 2.2,
"coordinateZ": 0.0,
"quantity": 1,
"packedDimensionX": 17.0,
"packedDimensionY": 2.3,
"packedDimensionZ": 7.7,
"volume": 301.070,
"canNest": false,
"nestGrowthDimension1": 0.0,
"nestGrowthDimension2": 0.0,
"nestGrowthDimension3": 0.0,
"nestMaxDimension1": 0.0,
"nestMaxDimension2": 0.0,
"nestMaxDimension3": 0.0,
"canContain": false,
"containDimension1": 0.0,
"containDimension2": 0.0,
"containDimension3": 0.0,
"sku": "Real02",
"voidContents": null,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 16
PACKNET.CUBE USER MANUAL
"nestedQuantity": 0,
"weight": 0.0
}
],
"packTimeInMilliseconds": 0,
"percentContainerVolumePacked": 83.70,
"percentItemVolumePacked": 100.0,
"unpackedItems": []
},
"container": {
"id": 2238,
"dimension1": 17.0,
"dimension2": 10.0,
"dimension3": 5.0,
"volume": 850.000,
"ratio": 1.7,
"surfaceArea": 610.00,
"distance": 20.3469899493758,
"maximumWeight": 0.0
},
"solutionTimeMs": 23,
"customfields":
{
"customField": "customString",
"customInt": 123,
"customobject": {
"firstName": "...",
"lastName":"...",
"age":1300
},
"customIntArray":[1,2,3,4],
"customListOfObjects":[
{
"firstName": "...",
"lastName":"",
"age":1300
},
{
"firstName": "...",
"lastName":"",
"age":1300
},
{
"firstName": "...",
"lastName":"",
"age":1300
}
]
}
},
{
"containerId": 2239,
"timeoutReached": false,
"orderId":"OrderIdFromCustomer",
"packagingResult": {
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 17
PACKNET.CUBE USER MANUAL
"isCompletePack": true,
"packedItems": [
{
"id": 1,
"isPacked": true,
"dimension1": 16.9,
"dimension2": 7.7,
"dimension3": 2.2,
"coordinateX": 0.0,
"coordinateY": 0.0,
"coordinateZ": 0.0,
"quantity": 1,
"packedDimensionX": 16.9,
"packedDimensionY": 2.2,
"packedDimensionZ": 7.7,
"volume": 286.286,
"canNest": false,
"nestGrowthDimension1": 0.0,
"nestGrowthDimension2": 0.0,
"nestGrowthDimension3": 0.0,
"nestMaxDimension1": 0.0,
"nestMaxDimension2": 0.0,
"nestMaxDimension3": 0.0,
"canContain": false,
"containDimension1": 0.0,
"containDimension2": 0.0,
"containDimension3": 0.0,
"sku": "Real04",
"voidContents": null,
"nestedQuantity": 0,
"weight": 0.0
},
{
"id": 1,
"isPacked": true,
"dimension1": 13.9,
"dimension2": 4.7,
"dimension3": 1.9,
"coordinateX": 0.0,
"coordinateY": 0.0,
"coordinateZ": 7.7,
"quantity": 1,
"packedDimensionX": 13.9,
"packedDimensionY": 4.7,
"packedDimensionZ": 1.9,
"volume": 124.127,
"canNest": false,
"nestGrowthDimension1": 0.0,
"nestGrowthDimension2": 0.0,
"nestGrowthDimension3": 0.0,
"nestMaxDimension1": 0.0,
"nestMaxDimension2": 0.0,
"nestMaxDimension3": 0.0,
"canContain": false,
"containDimension1": 0.0,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 18
PACKNET.CUBE USER MANUAL
"containDimension2": 0.0,
"containDimension3": 0.0,
"sku": "Real01",
"voidContents": null,
"nestedQuantity": 0,
"weight": 0.0
},
{
"id": 1,
"isPacked": true,
"dimension1": 17.0,
"dimension2": 7.7,
"dimension3": 2.3,
"coordinateX": 0.0,
"coordinateY": 2.2,
"coordinateZ": 0.0,
"quantity": 1,
"packedDimensionX": 17.0,
"packedDimensionY": 2.3,
"packedDimensionZ": 7.7,
"volume": 301.070,
"canNest": false,
"nestGrowthDimension1": 0.0,
"nestGrowthDimension2": 0.0,
"nestGrowthDimension3": 0.0,
"nestMaxDimension1": 0.0,
"nestMaxDimension2": 0.0,
"nestMaxDimension3": 0.0,
"canContain": false,
"containDimension1": 0.0,
"containDimension2": 0.0,
"containDimension3": 0.0,
"sku": "Real02",
"voidContents": null,
"nestedQuantity": 0,
"weight": 0.0
}
],
"packTimeInMilliseconds": 0,
"percentContainerVolumePacked": 79.05,
"percentItemVolumePacked": 100.0,
"unpackedItems": []
},
"container": {
"id": 2239,
"dimension1": 18.0,
"dimension2": 10.0,
"dimension3": 5.0,
"volume": 900.000,
"ratio": 1.8,
"surfaceArea": 640.00,
"distance": 21.1896201004171,
"maximumWeight": 0.0
},
"solutionTimeMs": 23,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 19
PACKNET.CUBE USER MANUAL
"customfields":
{
"customField": "customString",
"customInt": 123,
"customobject": {
"firstName": "...",
"lastName":"...",
"age":1300
},
"customIntArray":[1,2,3,4],
"customListOfObjects":[
{
"firstName": "...",
"lastName":"",
"age":1300
},
{
"firstName": "...",
"lastName":"",
"age":1300
},
{
"firstName": "...",
"lastName":"",
"age":1300
}
]
}
}
][
{
"containerId": 0,
"timeoutReached":false,
"packagingResult": {
"isCompletePack": true,
"packedItems": [
{
"id": 0,
"isPacked": true,
"dimension1": 0,
"dimension2": 0,
"dimension3": 0,
"coordinateX": 0,
"coordinateY": 0,
"coordinateZ": 0,
"quantity": 0,
"packedDimensionX": 0,
"packedDimensionY": 0,
"packedDimensionZ": 0,
"volume": 0,
"canNest": true,
"nestGrowthDimension1": 0,
"nestGrowthDimension2": 0,
"nestGrowthDimension3": 0,
"nestMaxDimension1": 0,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 20
PACKNET.CUBE USER MANUAL
"nestMaxDimension2": 0,
"nestMaxDimension3": 0,
"canContain": true,
"containDimension1": 0,
"containDimension2": 0,
"containDimension3": 0,
"sku": "string",
"voidContents": "string",
"nestedQuantity": 0,
"weight": 0
}
],
"packTimeInMilliseconds": 0,
"percentContainerVolumePacked": 0,
"percentItemVolumePacked": 0,
"unpackedItems": [
{
"id": 0,
"isPacked": true,
"dimension1": 0,
"dimension2": 0,
"dimension3": 0,
"coordinateX": 0,
"coordinateY": 0,
"coordinateZ": 0,
"quantity": 0,
"packedDimensionX": 0,
"packedDimensionY": 0,
"packedDimensionZ": 0,
"volume": 0,
"canNest": true,
"nestGrowthDimension1": 0,
"nestGrowthDimension2": 0,
"nestGrowthDimension3": 0,
"nestMaxDimension1": 0,
"nestMaxDimension2": 0,
"nestMaxDimension3": 0,
"canContain": true,
"containDimension1": 0,
"containDimension2": 0,
"containDimension3": 0,
"sku": "string",
"voidContents": "string",
"nestedQuantity": 0,
"weight": 0
}
]
},
"container": {
"id": 0,
"dimension1": 0,
"dimension2": 0,
"dimension3": 0,
"volume": 0,
"ratio": 0,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 21
PACKNET.CUBE USER MANUAL
"surfaceArea": 0,
"distance": 0,
"maximumWeight": 0
},
"solutionTimeMs": 0
}
]
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 22
PACKNET.CUBE USER MANUAL
7. SBP Example
"BoxListParameters":
[
{
"Alias": "Box1",
"Dimension1": 10,
"Dimension2": 8,
"Dimension3": 4.5
},
{
"Alias": "Box2",
"Dimension1": 10,
"Dimension2": 8,
"Dimension3": 4.75
},
{
"Alias": "Box3",
"Dimension1": 10,
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 23
PACKNET.CUBE USER MANUAL
"Dimension2": 8,
"Dimension3": 5
}
],
"items": [
{
"dimension1": 10.95,
"dimension2": 8.5,
"dimension3": 1,
"id": 2,
"quantity": 2,
"sku": "Real01"
}
],
"limit": 1,
"maximumPotentialContainers": 500,
"selectionOptions": {
"cutoffTime": 0,
"orderBy": "percent-filled"
}
}
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 24
PACKNET.CUBE USER MANUAL
"containDimension3": 0.0,
"sku": "Real01",
"voidContents": null,
"nestedQuantity": 0,
"weight": 0.0
},
{
"id": 2,
"isPacked": true,
"dimension1": 10.95,
"dimension2": 8.5,
"dimension3": 1.0,
"coordinateX": 0.0,
"coordinateY": 1.0,
"coordinateZ": 0.0,
"quantity": 1,
"packedDimensionX": 10.95,
"packedDimensionY": 1.0,
"packedDimensionZ": 8.5,
"volume": 93.075,
"canNest": false,
"nestGrowthDimension1": 0.0,
"nestGrowthDimension2": 0.0,
"nestGrowthDimension3": 0.0,
"nestMaxDimension1": 0.0,
"nestMaxDimension2": 0.0,
"nestMaxDimension3": 0.0,
"canContain": false,
"containDimension1": 0.0,
"containDimension2": 0.0,
"containDimension3": 0.0,
"sku": "Real01",
"voidContents": null,
"nestedQuantity": 0,
"weight": 0.0
}
],
"packTimeInMilliseconds": 0,
"percentContainerVolumePacked": 94.02,
"percentItemVolumePacked": 100.0,
"unpackedItems": []
},
"container": {
"id": 56,
"dimension1": 11.0,
"dimension2": 9.0,
"dimension3": 2.0,
"volume": 198.0,
"ratio": 1.2222222222222222222222222222,
"surfaceArea": 278.0,
"distance": 14.3527000944073,
"maximumWeight": 100.0
},
"solutionTimeMs": 483,
"customfields":
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 25
PACKNET.CUBE USER MANUAL
{
"customField": "customString",
"customInt": 123,
"customobject": {
"firstName": "...",
"lastName":"...",
"age":1300
},
"customIntArray":[1,2,3,4],
"customListOfObjects":[
{
"firstName": "...",
"lastName":"",
"age":1300
},
{
"firstName": "...",
"lastName":"",
"age":1300
},
{
"firstName": "...",
"lastName":"",
"age":1300
}
]
}
}
]
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 26
PACKNET.CUBE USER MANUAL
8. Revision History
RESTRICTED
© All rights reserved. Proprietary and confidential. DISTRIBUTION 27