private IAgCrdnAxes CreateAxes(IAgStkObject stkObject, string name, IAgCrdnAxes referenceAxes, string alignedAxis, string constrainedAxis, double angle) { IAgCrdnAxesFactory factory = stkObject.Vgt.Axes.Factory; double[] eulerAngles = GetEulerArray(alignedAxis, constrainedAxis, angle); // Check if component exists. CheckExistingVgtComponent(stkObject.Vgt.Axes, name); IAgCrdnAxesFixed axes = factory.Create(name, "", AgECrdnAxesType.eCrdnAxesTypeFixed) as IAgCrdnAxesFixed; axes.ReferenceAxes.SetAxes(referenceAxes); axes.FixedOrientation.AssignEulerAngles(AgEEulerOrientationSequence.e123, eulerAngles[0], eulerAngles[1], eulerAngles[2]); return(axes as IAgCrdnAxes); }
private IAgCrdnAxes CreateAxes(IAgStkObject stkObject, string name, IAgCrdnVector alignedVector, string alignedAxis, IAgCrdnVector constrainedVector, string constrainedAxis) { IAgCrdnAxesFactory factory = stkObject.Vgt.Axes.Factory; double[] alignedArray = GetCartesianArray(alignedAxis); double[] constrainedArray = GetCartesianArray(constrainedAxis); // Check if component exists. CheckExistingVgtComponent(stkObject.Vgt.Axes, name); IAgCrdnAxesAlignedAndConstrained axes = factory.Create(name, "", AgECrdnAxesType.eCrdnAxesTypeAlignedAndConstrained) as IAgCrdnAxesAlignedAndConstrained; axes.AlignmentReferenceVector.SetVector(alignedVector); axes.AlignmentDirection.AssignXYZ(alignedArray[0], alignedArray[1], alignedArray[2]); axes.ConstraintReferenceVector.SetVector(constrainedVector); axes.ConstraintDirection.AssignXYZ(constrainedArray[0], constrainedArray[1], constrainedArray[2]); return(axes as IAgCrdnAxes); }