Tips & Tricks: Continuous Manufactured Item Objects - Logic and how to access them via EKL

In the Manufacturing Item Structure (conceptual MBOM) of 3DExperience you find several different types of objects, among them items that are used to describe a non-discrete (= continuous) quantity of material.

The quantity can be expressed for material of dimensions (or "magnitudes")

  • Length
  • Mass
  • Area
  • Volume

Please note: The modeling of the quantity is not expressed as a single value.
In fact, the actual quantity is the product of a Continuous Quantity defined on an extension of the manufacturing item PLM Reference, times a Usage coefficient that is stored on the PLM Instance.

Example: You might want to create a Mfg Item to describe you need 50 mm of a wire. For this you create a Mfg Item of type "Continuous Provided Material - Length"

By default, when you create this, the initial Continuous Quantity is 1m = 1000 mm. (I used the feature to add a 2D Picture for the wire here)

The Continuous Quantity is not changeable by the end user directly (it could be changed via API). What the end user is changing implicitly is the so-called Usage Coefficient. This is happening when the user calls the Quantity command

When you change this from 1000 mm

to 50 mm

it will look like this

Internally, the attribute V_UsageContCoeff on ProcessInstanceContinuous has been set to 0.05. This value is multiplied by 1000 mm (attribute V_ContQuantity on ProcessContinuousProvide) to finally come to the product 50mm!

You can re-use the wire Mfg Item object in several parts of the structure or even globally, and by managing the different Usage Coefficients you adapt the actually used length (or volume, mass, area)

Here is a script example (KW Action) for your reference

/* Script Example by FGB
(Input) Argument myMfgItemOcc is MfgProcessOccurrence
*/

let myMfgItemReferenceCont(ProcessContinuousProvide)
let myMfgItemInstCont(ProcessInstanceContinuous)
let MfgItemExtContLength(DELFmiContQuantity_Length)

/* other possible extensions
let MfgItemExtContMass(DELFmiContQuantity_Mass)
let MfgItemExtContVolume(DELFmiContQuantity_Volume)
let MfgItemExtContArea(DELFmiContQuantity_Area)
*/

let UsageCoeff(Real)
let ContQty(LENGTH)
let myLength(LENGTH)

set myMfgItemReferenceCont = myMfgItemOcc.Reference
if ( myMfgItemReferenceCont <> NULL)
{
set myMfgItemInstCont = myMfgItemOcc.Instance
set MfgItemExtContLength = myMfgItemReferenceCont
if ( myMfgItemInstCont <> NULL and myMfgItemReferenceCont <> NULL)
{
UsageCoeff = myMfgItemInstCont.V_UsageContCoeff
ContQty = MfgItemExtContLength.V_ContQuantity
myLength = UsageCoeff * ContQty
PopupMessage("Length is: # |(Usage Coefficient=# x Reference Quantity=#)", myLength, UsageCoeff, ContQty)
}
}

Please note: There is no control in place that would certify that the sum of the length of all instances must not exceed the continuous quantity of the reference item being used!