Custom Weight and Center of Gravity (COG) - Intergraph Smart 3D - Reference Data

Intergraph Smart 3D Reference Data

Language
English
Product
Intergraph Smart 3D
Subproduct
Reference Data
Search by Category
Reference Data
Smart 3D Version
11 (2016)

If a symbol is responsible for computing weight and center of gravity (COG), the symbol should compute the volume and COG of the geometric outputs in the ConstructOutputs module. This results in better performance rather than getting the outputs later and performing calculation.

Catalog parts can have single or multiple materials. For example, a pipe part has single material, but a ladder can have a variety of materials for the frame, cage, safety gate, support legs, bolts, and so forth. Weight and COG evaluation for the parts need to consider all the individual materials.

The 3D API framework supports custom weight COG calculation for both kinds of parts. Evaluating weight COG in the symbol consists of:

  1. Get the net volume and COG for the geometric outputs of the symbol for each material.

  2. Construct a VolumeCOG named output object for each material and add it as output to the symbol.

    'Create a VolumeCOG object for a HandRail symbol.

    oHandRailVolCOG = New VolumeCG(oConnection, dTotalVolume, dCOGX, dCOGY, dCOGZ)

    m_oSimplePhysicalAspect.Outputs[“VolumeCOG”] = oHandRailVolCOG

  3. Symbols which handle parts with single material only need to complete previous steps 1 and 2. Weight COG will be calculated by the business object from this named output.

  4. Symbols which handle parts with multiple materials need to realize ICustomWeightCG. This interface provides methods to evaluate weight COG or the part by the symbol. In this case, the symbol gets the outputs from the output collection and the materials from the part to calculate the net weight COG.

EvaluateWeightCG(ByVal oBO As BusinessObject) Implements ICustomWeightCG.EvaluateWeightCG

'Get VolumeCOG output.

'Get the output from the symbol output collection using the

'helper method provided on SymbolHelper.

oObject = SymbolHelper.GetSymbolOutput(oBO, "SimplePhysical", _

"VolumeCOG")

If Not oObject Is Nothing Then

oHandRailVolCOG = DirectCast(oObject, VolumeCG)

dVolume = oHandRailVolCOG.Volume

dCOGX = oHandRailVolCOG.COGX

dCOGY = oHandRailVolCOG.COGY

dCOGZ = oHandRailVolCOG.COGZ

'Evaluate weight from output volume and the material

'properties on the given user interface.

dWeight = EvaluateWeightFromVolume(oBO, dVolume, _

sIJUAHandRailTypeAProps)

'Set the net weight and COG on the Business Object using

'helper method provided on StructureSymbolDefinition.

SymbolHelper.SetWeightAndCOG(oBO, dWeight, dCOGX, dCOGY, dCOGZ)

End If