Code:
public int ROUGHOFFSET(NXOpen.Part mPart, NXOpen.Features.FeatureGroup mEntries, string m_strRO_Deviation, string m_strRO_Stepover)
{
int nI = 0; UFModl.RoughOffset mRO = new UFModl.RoughOffset();
Feature[] mFaces;
mEntries.GetMembers(out mFaces);
ArrayList mEntityList = new ArrayList();
for (nI = 0; nI < mFaces.Length; nI++)
{
mEntityList.Add( mFaces[nI].Tag);
}
Tag[] mEntityRoughOffset = (Tag[])mEntityList.ToArray(typeof(Tag));
mRO.entities = mEntityRoughOffset;
mRO.offset_deviation = m_strRO_Deviation;
mRO.offset_distance = "0";
mRO.stepover_distance = m_strRO_Stepover;
mRO.num_entities = mFaces.Length;
mRO.surf_method = RsoSurfMethod.RsoSurfMethodRoughFit;
Feature nullFeatures_Feature = null;
NXOpen.Features.DatumCsysBuilder datumCsysBuilder1;
datumCsysBuilder1 = mPart.Features.CreateDatumCsysBuilder(nullFeatures_Feature);
Point3d origin7 = new Point3d(0.0, 0.0, 0.0);
Vector3d xDirection1 = new Vector3d(1.0, 0.0, 0.0);
Vector3d yDirection1 = new Vector3d(0.0, 1.0, 0.0);
Xform xform1;
xform1 = mPart.Xforms.CreateXform(origin7, xDirection1, yDirection1, NXOpen.SmartObject.UpdateOption.WithinModeling, 1.0);
CartesianCoordinateSystem cartesianCoordinateSystem1;
cartesianCoordinateSystem1 = mPart.CoordinateSystems.CreateCoordinateSystem(xform1, NXOpen.SmartObject.UpdateOption.WithinModeling);
datumCsysBuilder1.Csys = cartesianCoordinateSystem1;
datumCsysBuilder1.DisplayScaleFactor = 2.5;
NXObject nXObject3;
nXObject3 = datumCsysBuilder1.Commit();
DatumCsys mCsysRoughOffset = (DatumCsys)nXObject3;
datumCsysBuilder1.Destroy();
mRO.smart_csys = mCsysRoughOffset.Tag;
Tag mTagRO;
try
{
theUfSession.Modl.CreateRoughOffset(ref mRO, out mTagRO);
}
catch (Exception mEx)
{ System.Windows.Forms.MessageBox.Show(mEx.Message); }
return 1;
}