// create user defined coordinate system
IGuideObjects iGuide = iModel.GetGuideObjects();
// delete cosy No 2
UserCoordinateSystem[] csList = iGuide.GetCoordinateSystems();
if (csList.Length > 1)
{
for (int i = 0; i < csList.Length; ++i)
{
if (csList[i].No == 2)
{
iGuide.PrepareModification();
iGuide.DeleteObjects(GuideObjectType.CoordinateSystemObject, "2");
iGuide.FinishModification();
}
}
}
// define new cosy No 2
UserCoordinateSystem uCs = new UserCoordinateSystem();
uCs.Name = "test";
uCs.Comment = "test";
uCs.No = 2;
uCs.IsValid = true;
uCs.Origin.X = 1;
uCs.Origin.Y = 0;
uCs.Origin.Z = 1;
uCs.Point1.X = 2;
uCs.Point1.Y = 0;
uCs.Point1.Z = 1;
uCs.Point2.X = 1;
uCs.Point2.Y = 1;
uCs.Point2.Z = 2;
// set cosy No 2
iGuide.PrepareModification();
iGuide.SetCoordinateSystem(uCs);
iGuide.FinishModification();
// create nodal support with user defined cosy
NodalSupport ns = new NodalSupport();
ns.SupportConstantX = -1;
ns.SupportConstantY = -1;
ns.SupportConstantZ = -1;
ns.RestraintConstantX = -1;
ns.RestraintConstantY = 0;
ns.RestraintConstantZ = -1;
ns.Comment = "user defined cosy";
ns.NodeList = "1";
ns.ReferenceSystem = ReferenceSystemType.UserDefinedSystemType;
ns.UserDefinedReferenceSystem.ObjectNo = 2;
ns.UserDefinedReferenceSystem.Type = UserDefinedAxisSystemType.DefinedCoordinateSystemType;
iModData.PrepareModification();
iModData.SetNodalSupport(ns);
iModData.FinishModification();