Construct Outputs - Intergraph Smart 3D - Reference Data

Intergraph Smart 3D Hangers and Supports Reference Data

Language
English
Product
Intergraph Smart 3D
Subproduct
Hangers and Supports
Search by Category
Reference Data
Smart 3D Version
12 (2018)

The ConstructOutputs() method defines the geometrical outputs, port outputs, and their locations and is used to construct the symbols. You can retrieve the inputs from the input variables as defined in the inputs section. SymbolGeometryHelper class provides many helper methods that can be used to construct the symbol geometry.

protected override void ConstructOutputs()

{

try

{

Part part = null;

Double E = 0;

Double R = 0;

Double B = 0;

Double S = 0;

Double T = 0;

Double pinDiameter = 0;

Double pinLength = 0;

SymbolGeometryHelper symbolGeometryHelper = new SymbolGeometryHelper();

#region Adding Ports

//Setting StrcuturePort port (Port1)

Port port1 = new Port(OccurrenceConnection, part, "StrcuturePort", new Position(B/2, (S+2*T)/2, 0), new Vector(1, 0, 0), new Vector(0, 0, 1));

m_Symbolic.Outputs["StrcuturePort"] = port1;

//Setting Pin port (Port2)

Port port2 = new Port(OccurrenceConnection, part, "Pin");

port2.Origin = new Position(B/2, (S+2*T)/2, - E);

port2.SetOrientation(new Vector(1, 0, 0), new Vector(0, 0, 1));

m_Symbolic.Outputs["PinPort"] = port2;

#endregion

Matrix4X4 matrix = new Matrix4X4();

symbolGeometryHelper = new SymbolGeometryHelper();

Collection<ICurve> curveCollection = new Collection<ICurve>();

curveCollection.Add(new Line3d(new Position(0, 0, 0), new Position(0, S+2*T,0)));

curveCollection.Add(new Line3d(new Position(0, S+2*T, 0), new Position(0, S+2*T, -(E+R))));

curveCollection.Add(new Line3d(new Position(0, S+2*T, -(E+R)), new Position (0, S+T, -(E+R))));

curveCollection.Add(new Line3d(new Position (0, S+T, -(E+R)), new Position(0, S+T, -T)));

curveCollection.Add(new Line3d(new Position(0, S+T, -T), new Position (0,T,-T)));

curveCollection.Add(new Line3d(new Position (0,T,-T), new Position(0,T,-(E+R))));

curveCollection.Add(new Line3d(new Position(0,T,-(E+R)), new Position(0,0, -(E+R))));

curveCollection.Add(new Line3d(new Position(0,0, -(E+R)), new Position(0,0,0)));

Projection3d body = new Projection3d(OccurrenceConnection, new ComplexString3d(curveCollection), new Vector(1, 0, -0), B, true);

m_Symbolic.Outputs["Body"] = body;

symbolGeometryHelper = new SymbolGeometryHelper();

matrix.Rotate(2 * Math.PI, new Vector(0, 0, -1));

matrix.Rotate(-(Math.PI / 2), new Vector(1, 0, 0));

matrix.Translate(new Vector(-T, B/2, E)); //(B / 2, (S + 2 * T) / 2, E)

matrix.Rotate(3 * Math.PI / 2, new Vector(0, 0, 1), new Position(0, 0, 0));

matrix.Rotate(Math.PI, new Vector(1, 0, 0), new Position(0,0,0));

Projection3d pinProj = symbolGeometryHelper.CreateCylinder(OccurrenceConnection, pinDiameter / 2, S + 4 * T);

pinProj.Transform(matrix);

m_Symbolic.Outputs["Pin"] = pinProj;

}

catch

{

if (base.ToDoListMessage == null)

{

ToDoListMessage = new ToDoListMessage(ToDoMessageTypes.ToDoMessageError,"Error in ConstructOutputs of .NET Training part WBA.");

return;

}

}

}