Hide menu
Loading...
Searching...
No Matches
exploring/pmi/Program.cs

Refer to the PMI Example.

// ****************************************************************************
// $Id$
//
// Copyright (C) 2008-2014, Roman Lygin. All rights reserved.
// Copyright (C) 2014-2023, CADEX. All rights reserved.
//
// This file is part of the CAD Exchanger software.
//
// You may use this file under the terms of the BSD license as follows:
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// ****************************************************************************
using cadex;
using System;
using System.Runtime.InteropServices;
namespace pmi
{
class Program
{
// For more information see https://stackoverflow.com/questions/8836093/how-can-i-specify-a-dllimport-path-at-runtime
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);
static int Main(string[] args)
{
// Add runtime path to CAD Exchanger libraries (e.g. compiled with Visual Studio 2015)
SetDllDirectory("../../../../../../win64/vc14.1/bin");
string aKey = LicenseKey.Value();
// Activate the license (aKey must be defined in cadex_license.cs)
if (!LicenseManager.Activate(aKey))
{
Console.WriteLine("Failed to activate CAD Exchanger license.");
return 1;
}
if (args.Length != 1)
{
Console.WriteLine("Usage: " + System.Reflection.Assembly.GetExecutingAssembly().Location
+ " <input_file>, where:");
Console.WriteLine(" <input_file> is a name of the STEP file to be read");
return 1;
}
string aSource = args[0];
aParams.SetReadPMI(true);
aReader.SetReaderParameters(aParams);
// Opening and converting the file
if (!aReader.Read(new Base_UTF16String(aSource), aModel))
{
Console.WriteLine("Failed to open and convert the file ", aSource);
return 1;
}
// Create a PMI visitor
SceneGraphVisitor aVisitor = new SceneGraphVisitor();
aModel.Accept(aVisitor);
return 0;
}
}
class TabulatedOutput
{
public static void WriteLine(Object theObject)
{
PrintTabulation();
Console.WriteLine(theObject);
}
public static void IncreaseIndent() { ++myNestingLevel; }
public static void DecreaseIndent() { --myNestingLevel; }
private static void PrintTabulation()
{
if (myNestingLevel <= 0)
{
return;
}
// Emulate tabulation like tree.
for (int i = 0; i < myNestingLevel - 1; i++)
{
if (i < 2 || i == 3)
{
Console.Write("| ");
}
else
{
Console.Write(" ");
}
}
Console.Write("|__");
if (myNestingLevel > 3)
{
Console.Write(" ");
}
}
private static int myNestingLevel = 0;
}
class SceneGraphVisitor : ModelData_Model.ElementVisitor
{
public override void Apply(ModelData_Part thePart)
{
PrintName("Part", thePart.Name());
ExplorePMI(thePart);
}
public override bool VisitEnter(ModelData_Instance theInstance)
{
TabulatedOutput.IncreaseIndent();
PrintName("Instance", theInstance.Name());
ExplorePMI(theInstance);
return true;
}
public override bool VisitEnter(ModelData_Assembly theAssembly)
{
TabulatedOutput.IncreaseIndent();
PrintName("Assembly", theAssembly.Name());
ExplorePMI(theAssembly);
return true;
}
public override void VisitLeave(ModelData_Instance theInstance)
{
TabulatedOutput.DecreaseIndent();
}
public override void VisitLeave(ModelData_Assembly theAssembly)
{
TabulatedOutput.DecreaseIndent();
}
private void ExplorePMI(ModelData_SceneGraphElement theSGE)
{
ModelData_PMITable aPMITable = theSGE.PMI();
if (aPMITable != null)
{
TabulatedOutput.WriteLine("PMI Table:");
TabulatedOutput.IncreaseIndent();
while (aDataIt.HasNext())
{
ModelData_PMIData aData = aDataIt.Next();
TabulatedOutput.WriteLine("PMI Data: " + aData.Name());
TabulatedOutput.IncreaseIndent();
ModelData_PMISemanticElement aSemanticElement = aData.SemanticElement();
if (aSemanticElement != null)
{
TabulatedOutput.WriteLine("Semantic element:");
TabulatedOutput.IncreaseIndent();
PMISemanticVisitor aVisitor = new PMISemanticVisitor();
aSemanticElement.Accept(aVisitor);
TabulatedOutput.DecreaseIndent();
}
ModelData_PMIGraphicalElement aGraphicalElement = aData.GraphicalElement();
if (aGraphicalElement != null)
{
TabulatedOutput.WriteLine("Graphical element:");
TabulatedOutput.IncreaseIndent();
PMIGraphicalVisitor aVisitor = new PMIGraphicalVisitor();
aGraphicalElement.Accept(aVisitor);
TabulatedOutput.DecreaseIndent();
}
TabulatedOutput.DecreaseIndent();
}
TabulatedOutput.DecreaseIndent();
}
}
private void PrintName(string theSGElement, Base_UTF16String theName)
{
if (!theName.IsEmpty())
{
TabulatedOutput.WriteLine(theSGElement + ": " + theName);
}
else
{
TabulatedOutput.WriteLine(theSGElement + ": <noname>");
}
}
}
{
public override void Apply(ModelData_PMIDatumComponent theComponent)
{
TabulatedOutput.WriteLine("Datum");
TabulatedOutput.IncreaseIndent();
TabulatedOutput.WriteLine("Label: " + theComponent.Label());
printAttributes(theComponent);
TabulatedOutput.DecreaseIndent();
}
public override void Apply(ModelData_PMIDimensionComponent theComponent)
{
TabulatedOutput.WriteLine("Dimension");
TabulatedOutput.IncreaseIndent();
TabulatedOutput.WriteLine("Nominal Value: " + theComponent.NominalValue());
TabulatedOutput.WriteLine("Type of dimension: " + (int)theComponent.TypeOfDimension());
printAttributes(theComponent);
TabulatedOutput.DecreaseIndent();
}
public override void Apply(ModelData_PMIGeometricToleranceComponent theComponent)
{
TabulatedOutput.WriteLine("Geometric tolerance");
TabulatedOutput.IncreaseIndent();
TabulatedOutput.WriteLine("Magnitude: " + theComponent.Magnitude());
TabulatedOutput.WriteLine("Type of tolerance: " + (int)theComponent.TypeOfTolerance());
TabulatedOutput.WriteLine("Tolerance zone form: " + (int)theComponent.ToleranceZoneForm());
printAttributes(theComponent);
TabulatedOutput.DecreaseIndent();
}
public override void Apply(ModelData_PMISurfaceFinishComponent theComponent)
{
TabulatedOutput.WriteLine("Surface Finish");
TabulatedOutput.IncreaseIndent();
TabulatedOutput.WriteLine("Material removal: " + (int)theComponent.MaterialRemoval());
TabulatedOutput.WriteLine("Lay direction: " + (int)theComponent.LayDirection());
TabulatedOutput.WriteLine("All around flag: " + theComponent.IsAllAround());
TabulatedOutput.WriteLine("Manufacturing method: " + theComponent.ManufacturingMethod());
printAttributes(theComponent);
TabulatedOutput.DecreaseIndent();
}
void printAttributes(ModelData_PMISemanticElementComponent theComponent)
{
if (theComponent.HasAttributes())
{
PMISemanticAttributeVisitor aVisitor = new PMISemanticAttributeVisitor();
theComponent.Accept(aVisitor);
}
}
}
class PMIOutlineVisitor : ModelData_PMIOutlineVisitor
{
public override void Apply(ModelData_PMIPolyOutline theOutline)
{
TabulatedOutput.WriteLine("PolyLine set [" + theOutline.LineSet().NumberOfPolyLines() + " polylines]");
}
public override void Apply(ModelData_PMIPoly2dOutline theOutline)
{
TabulatedOutput.WriteLine("PolyLine2d set [" + theOutline.LineSet().NumberOfPolyLines() + " polylines]");
}
public override void Apply(ModelData_PMICurveOutline theOutline)
{
TabulatedOutput.WriteLine("Curve set [" + theOutline.NumberOfCurves() + " curves]");
}
public override void Apply(ModelData_PMICurve2dOutline theOutline)
{
TabulatedOutput.WriteLine("Curve2d set [" + theOutline.NumberOfCurves() + " curves]");
}
public override bool VisitEnter(ModelData_PMICompositeOutline theOutline)
{
TabulatedOutput.WriteLine("Outline set:");
TabulatedOutput.IncreaseIndent();
return true;
}
public override void VisitLeave(ModelData_PMICompositeOutline theOutline)
{
TabulatedOutput.DecreaseIndent();
}
};
{
public override void Apply(ModelData_PMIOutlinedComponent theComponent)
{
TabulatedOutput.WriteLine("Outline");
TabulatedOutput.IncreaseIndent();
PMIOutlineVisitor aVisitor = new PMIOutlineVisitor();
theComponent.Outline().Accept(aVisitor);
TabulatedOutput.DecreaseIndent();
}
public override void Apply(ModelData_PMITextComponent theComponent)
{
TabulatedOutput.WriteLine("Text [" + theComponent.Text() + "]");
}
public override void Apply(ModelData_PMITriangulatedComponent theComponent)
{
TabulatedOutput.WriteLine("Triangulation [" + theComponent.TriangleSet().NumberOfFaces() + " triangles]");
}
};
class PMISemanticAttributeVisitor : ModelData_PMISemanticAttributeVisitor
{
public override void Apply(ModelData_PMIModifierAttribute theAttribute)
{
TabulatedOutput.WriteLine("Modifier: " + theAttribute.Modifier());
}
public override void Apply(ModelData_PMIModifierWithValueAttribute theAttribute)
{
TabulatedOutput.WriteLine("ModifierWithValue: modifier=" + theAttribute.Modifier() + ", value=" + theAttribute.Value());
}
public override void Apply(ModelData_PMIQualifierAttribute theAttribute)
{
TabulatedOutput.WriteLine("Qualifier: " + theAttribute.Qualifier());
}
public override void Apply(ModelData_PMIPlusMinusBoundsAttribute theAttribute)
{
TabulatedOutput.WriteLine("PlusMinusBounds: (" + theAttribute.LowerBound() + ", " + theAttribute.UpperBound() + ")");
}
public override void Apply(ModelData_PMIRangeAttribute theAttribute)
{
TabulatedOutput.WriteLine("Range: [" + theAttribute.LowerLimit() + ", " + theAttribute.UpperLimit() + "]");
}
public override void Apply(ModelData_PMILimitsAndFitsAttribute theAttribute)
{
TabulatedOutput.WriteLine("LimitsAndFits: value=" + theAttribute.Value() + ", type=" + theAttribute.Type());
}
public override void Apply(ModelData_PMIDatumTargetAttribute theAttribute)
{
TabulatedOutput.WriteLine("DatumTarget: index=" + theAttribute.Index() + ", description=" + theAttribute.Description());
}
public override void Apply(ModelData_PMIDatumRefAttribute theAttribute)
{
TabulatedOutput.WriteLine("DatumRef: precedence=" + theAttribute.Precedence() + ", targetLabel=" + theAttribute.TargetLabel());
}
public override void Apply(ModelData_PMIDatumRefCompartmentAttribute theAttribute)
{
TabulatedOutput.WriteLine("DatumRefCompartment:");
TabulatedOutput.IncreaseIndent();
uint aNumberOfReferences = theAttribute.NumberOfReferences();
if (aNumberOfReferences > 0)
{
TabulatedOutput.WriteLine("References:");
TabulatedOutput.IncreaseIndent();
for (uint i = 0; i < aNumberOfReferences; i++)
{
theAttribute.Reference(i).Accept(this);
}
TabulatedOutput.DecreaseIndent();
}
uint aNumberOfModifierAttributes = theAttribute.NumberOfModifierAttributes();
if (aNumberOfModifierAttributes > 0)
{
TabulatedOutput.WriteLine("Modifiers:");
TabulatedOutput.IncreaseIndent();
for (uint i = 0; i < aNumberOfModifierAttributes; i++)
{
theAttribute.ModifierAttribute(i).Accept(this);
}
TabulatedOutput.DecreaseIndent();
}
TabulatedOutput.DecreaseIndent();
}
public override void Apply(ModelData_PMIMaximumValueAttribute theAttribute)
{
TabulatedOutput.WriteLine("MaximumValue: " + theAttribute.MaxValue());
}
public override void Apply(ModelData_PMIDisplacementAttribute theAttribute)
{
TabulatedOutput.WriteLine("Displacement: " + theAttribute.Displacement());
}
public override void Apply(ModelData_PMILengthUnitAttribute theAttribute)
{
TabulatedOutput.WriteLine("LengthUnit: " + theAttribute.Unit());
}
public override void Apply(ModelData_PMIAngleUnitAttribute theAttribute)
{
TabulatedOutput.WriteLine("AngleUnit: " + theAttribute.Unit());
}
public override void Apply(ModelData_PMIMachiningAllowanceAttribute theAttribute)
{
TabulatedOutput.WriteLine("Machining allowance");
TabulatedOutput.IncreaseIndent();
TabulatedOutput.WriteLine("Value: " + theAttribute.Value());
TabulatedOutput.WriteLine("Upper bound: " + theAttribute.UpperBound());
TabulatedOutput.WriteLine("Lower bound: " + theAttribute.LowerBound());
TabulatedOutput.DecreaseIndent();
}
public override void Apply(ModelData_PMISurfaceTextureRequirementAttribute theAttribute)
{
TabulatedOutput.WriteLine("Surface texture requirement #" + (int)theAttribute.Precedence());
TabulatedOutput.IncreaseIndent();
TabulatedOutput.WriteLine("Specification limit: " + (int)theAttribute.SpecificationLimit());
TabulatedOutput.WriteLine("Filter name: " + theAttribute.FilterName());
TabulatedOutput.WriteLine("Short wave filter: " + theAttribute.ShortWaveFilter());
TabulatedOutput.WriteLine("Long wave filter: " + theAttribute.LongWaveFilter());
TabulatedOutput.WriteLine("Surface parameter: " + (int)theAttribute.SurfaceParameter());
TabulatedOutput.WriteLine("Evaluation length: " + theAttribute.EvaluationLength());
TabulatedOutput.WriteLine("Comparison rule: " + (int)theAttribute.ComparisonRule());
TabulatedOutput.WriteLine("Limit value: " + theAttribute.LimitValue());
TabulatedOutput.DecreaseIndent();
}
};
}
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition: Base_UTF16String.hxx:34
bool IsEmpty() const
Returns true if the string is empty.
Definition: Base_UTF16String.cxx:233
Defines a group of scene graph element.
Definition: ModelData_Assembly.hxx:33
Base_UTF16String Name() const
Definition: ModelData_BaseObject.cxx:218
IndexType NumberOfFaces() const
Returns a number of faces (triangles).
Definition: ModelData_IndexedTriangleSet.cxx:179
Defines an occurrence of assembly or part in a scene graph.
Definition: ModelData_Instance.hxx:34
Provides CAD Exchanger data model.
Definition: ModelData_Model.hxx:43
void Accept(ElementVisitor &theVisitor) const
Accepts a visitor.
Definition: ModelData_Model.cxx:882
Reads any format that CAD Exchanger can import.
Definition: ModelData_ModelReader.hxx:33
void SetReaderParameters(const Base_ReaderParameters &theParameters)
Sets reader parameters.
Definition: ModelData_ModelReader.cxx:216
bool Read(const Base_UTF16String &theFilePath, ModelData_Model &theModel)
Reads the file at the specified path into the specified model.
Definition: ModelData_ModelReader.cxx:182
Defines an angle unit.
Definition: ModelData_PMISemanticAttribute.hxx:286
Defines a collection of outlines.
Definition: ModelData_PMIOutline.hxx:130
Defines an outline consist of 2d curves.
Definition: ModelData_PMIOutline.hxx:114
size_t NumberOfCurves() const
Returns number of added curves.
Definition: ModelData_PMIOutline.cxx:315
Defines an outline consist of curves.
Definition: ModelData_PMIOutline.hxx:98
size_t NumberOfCurves() const
Returns number of added curves.
Definition: ModelData_PMIOutline.cxx:248
Defines a complete PMI element.
Definition: ModelData_PMIData.hxx:40
ModelData_PMISemanticElement SemanticElement() const
Returns a semantic element.
Definition: ModelData_PMIData.cxx:117
ModelData_PMIGraphicalElement GraphicalElement() const
Returns a graphical element.
Definition: ModelData_PMIData.cxx:97
Defines a component represented by a datum, datum feature symbol or datum target.
Definition: ModelData_PMISemanticElementComponent.hxx:172
const Base_UTF16String & Label() const
Returns a label of a datum.
Definition: ModelData_PMISemanticElementComponent.cxx:317
Defines a datum reference.
Definition: ModelData_PMISemanticAttribute.hxx:199
size_t Precedence() const
Returns precedence value.
Definition: ModelData_PMISemanticAttribute.cxx:378
Defines a compartment of datum references or compartments.
Definition: ModelData_PMISemanticAttribute.hxx:218
Defines a datum target data.
Definition: ModelData_PMISemanticAttribute.hxx:180
size_t Index() const
Returns index.
Definition: ModelData_PMISemanticAttribute.cxx:335
Defines a component represented by a dimensional tolerance.
Definition: ModelData_PMISemanticElementComponent.hxx:75
double NominalValue() const
Returns nominal value of a dimension.
Definition: ModelData_PMISemanticElementComponent.cxx:197
DimensionType TypeOfDimension() const
Returns type of dimension.
Definition: ModelData_PMISemanticElementComponent.cxx:210
Defines a displacement value for an unequally disposed geometric tolerance.
Definition: ModelData_PMISemanticAttribute.hxx:254
double Displacement() const
Returns displacement value.
Definition: ModelData_PMISemanticAttribute.cxx:503
Defines a component represented by a geometric tolerance.
Definition: ModelData_PMISemanticElementComponent.hxx:116
ToleranceType TypeOfTolerance() const
Returns type of tolerance.
Definition: ModelData_PMISemanticElementComponent.cxx:279
ToleranceZoneFormType ToleranceZoneForm() const
Returns tolerance zone form.
Definition: ModelData_PMISemanticElementComponent.cxx:265
double Magnitude() const
Returns a magnitude value of a tolerance.
Definition: ModelData_PMISemanticElementComponent.cxx:251
Defines a visitor of the components.
Definition: ModelData_PMIGraphicalElementComponentVisitor.hxx:32
Defines a PMI graphical element.
Definition: ModelData_PMIGraphicalElement.hxx:40
void Accept(ModelData_PMIGraphicalElementComponentVisitor &theVisitor) const
Accepts the visitor.
Definition: ModelData_PMIGraphicalElement.cxx:160
Defines a length unit.
Definition: ModelData_PMISemanticAttribute.hxx:270
Defines a kind of a tolerance class dimension.
Definition: ModelData_PMISemanticAttribute.hxx:160
Defines a machining allowance and its bound (deviations).
Definition: ModelData_PMISemanticAttribute.hxx:302
double UpperBound() const
Returns upper bound.
Definition: ModelData_PMISemanticAttribute.cxx:598
double Value() const
Returns machining allowance value.
Definition: ModelData_PMISemanticAttribute.cxx:586
double LowerBound() const
Returns lower bound.
Definition: ModelData_PMISemanticAttribute.cxx:610
Defines a maximum value.
Definition: ModelData_PMISemanticAttribute.hxx:238
double MaxValue() const
Returns maximum value.
Definition: ModelData_PMISemanticAttribute.cxx:474
Defines a type of modification.
Definition: ModelData_PMISemanticAttribute.hxx:74
Defines a type of modification with additional value.
Definition: ModelData_PMISemanticAttribute.hxx:90
Defines a visitor of the outlines.
Definition: ModelData_PMIOutlineVisitor.hxx:34
Defines a component represented by outline.
Definition: ModelData_PMIGraphicalElementComponent.hxx:66
Defines a plus and minus bounds (deviations) of a tolerance.
Definition: ModelData_PMISemanticAttribute.hxx:122
double UpperBound() const
Returns upper bound.
Definition: ModelData_PMISemanticAttribute.cxx:207
double LowerBound() const
Returns lower bound.
Definition: ModelData_PMISemanticAttribute.cxx:219
Defines an outline consist of 2d polylines.
Definition: ModelData_PMIOutline.hxx:82
Defines an outline consist of polylines.
Definition: ModelData_PMIOutline.hxx:66
Defines a type of qualifier.
Definition: ModelData_PMISemanticAttribute.hxx:106
Defines range of value.
Definition: ModelData_PMISemanticAttribute.hxx:141
double LowerLimit() const
Returns lower limit.
Definition: ModelData_PMISemanticAttribute.cxx:260
double UpperLimit() const
Returns upper limit.
Definition: ModelData_PMISemanticAttribute.cxx:248
Defines a visitor of the attributes.
Definition: ModelData_PMISemanticAttributeVisitor.hxx:44
Base class for various component types.
Definition: ModelData_PMISemanticElementComponent.hxx:43
void Accept(ModelData_PMISemanticAttributeVisitor &theVisitor) const
Accepts an attribute visitor.
Definition: ModelData_PMISemanticElementComponent.cxx:117
bool HasAttributes() const
Returns true if semantic attributes were added and false otherwise.
Definition: ModelData_PMISemanticElementComponent.cxx:94
Defines a visitor of the components.
Definition: ModelData_PMISemanticElementComponentVisitor.hxx:33
Defines a PMI semantic element.
Definition: ModelData_PMISemanticElement.hxx:38
void Accept(ModelData_PMISemanticElementComponentVisitor &theVisitor) const
Accepts the visitor.
Definition: ModelData_PMISemanticElement.cxx:123
Defines a component represented by a suface texture.
Definition: ModelData_PMISemanticElementComponent.hxx:188
LayDirectionType LayDirection() const
Returns type of lay direction.
Definition: ModelData_PMISemanticElementComponent.cxx:374
const Base_UTF16String & ManufacturingMethod() const
Returns a manufacturing method.
Definition: ModelData_PMISemanticElementComponent.cxx:397
bool IsAllAround() const
Returns true if the same surface texture is required on all surfaces around a workpiece outline and f...
Definition: ModelData_PMISemanticElementComponent.cxx:385
MaterialRemovalType MaterialRemoval() const
Returns type of material removal.
Definition: ModelData_PMISemanticElementComponent.cxx:361
Defines a surface texture requirement.
Definition: ModelData_PMISemanticAttribute.hxx:324
double LimitValue() const
Returns limit value.
Definition: ModelData_PMISemanticAttribute.cxx:762
const Base_UTF16String & FilterName() const
Returns filter name.
Definition: ModelData_PMISemanticAttribute.cxx:687
double ShortWaveFilter() const
Returns short wave filter value.
Definition: ModelData_PMISemanticAttribute.cxx:699
double LongWaveFilter() const
Returns long wave filter value.
Definition: ModelData_PMISemanticAttribute.cxx:711
size_t Precedence() const
Returns precedence value.
Definition: ModelData_PMISemanticAttribute.cxx:664
ComparisonRuleType ComparisonRule() const
Returns comparison rule.
Definition: ModelData_PMISemanticAttribute.cxx:747
double EvaluationLength() const
Returns evaluation length value.
Definition: ModelData_PMISemanticAttribute.cxx:734
Iterator over added PMIData items, which contains graphical and semantical elements.
Definition: ModelData_PMITable.hxx:81
Defines a container storing PMI data.
Definition: ModelData_PMITable.hxx:40
Defines a component represented by text.
Definition: ModelData_PMIGraphicalElementComponent.hxx:82
Defines a component represented by triangulation.
Definition: ModelData_PMIGraphicalElementComponent.hxx:109
Defines a leaf node in the scene graph hiearchy.
Definition: ModelData_Part.hxx:35
IndexType NumberOfPolyLines() const
Returns a number of polylines.
Definition: ModelData_PolyLine2dSet.cxx:98
IndexType NumberOfPolyLines() const
Returns a number of polylines.
Definition: ModelData_PolyLineSet.cxx:89
Base class for part, instance and assembly.
Definition: ModelData_SceneGraphElement.hxx:39
ModelData_PMITable PMI() const
Returns a PMI table.
Definition: ModelData_SceneGraphElement.cxx:255
Defines parameters of the STEP_Reader.
Definition: STEP_ReaderParameters.hxx:27
Defines classes, types, and global functions related to CAD Exchanger.
Definition: A3DSTestLib.hxx:22