From 72f32ff3f2e3afad73af93d4690d0c3d4653b1f4 Mon Sep 17 00:00:00 2001 From: Nazeefa Bushra Date: Fri, 2 Aug 2024 14:45:16 +0100 Subject: [PATCH 1/2] Adding switch statements to incorporate FixedPositive and FixedNegative --- .../Convert/ToRobot/Properties/Support.cs | 84 ++++++++++++++++--- 1 file changed, 72 insertions(+), 12 deletions(-) diff --git a/Robot_Adapter/Convert/ToRobot/Properties/Support.cs b/Robot_Adapter/Convert/ToRobot/Properties/Support.cs index 3216c5d..20c1bb7 100644 --- a/Robot_Adapter/Convert/ToRobot/Properties/Support.cs +++ b/Robot_Adapter/Convert/ToRobot/Properties/Support.cs @@ -33,18 +33,78 @@ public static partial class Convert public static void ToRobot(IRobotNodeSupportData suppData, Constraint6DOF constraint) { - suppData.UX = constraint.TranslationX == DOFType.Fixed ? 1 : 0; - suppData.UY = constraint.TranslationY == DOFType.Fixed ? 1 : 0; - suppData.UZ = constraint.TranslationZ == DOFType.Fixed ? 1 : 0; - suppData.RX = constraint.RotationX == DOFType.Fixed ? 1 : 0; - suppData.RY = constraint.RotationY == DOFType.Fixed ? 1 : 0; - suppData.RZ = constraint.RotationZ == DOFType.Fixed ? 1 : 0; - suppData.KX = constraint.TranslationalStiffnessX; - suppData.KY = constraint.TranslationalStiffnessY; - suppData.KZ = constraint.TranslationalStiffnessZ; - suppData.HX = constraint.RotationalStiffnessX; - suppData.HY = constraint.RotationalStiffnessY; - suppData.HZ = constraint.RotationalStiffnessZ; + //if (constraint.TranslationZ == DOFType.Fixed) + // suppData.UZ = 1; + //else if (constraint.TranslationZ == DOFType.FixedPositive) + // suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + //else if (constraint.TranslationZ == DOFType.FixedNegative) + // suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + //else + // suppData.UZ = 0; + + + switch (constraint.TranslationZ) + { + case DOFType.Fixed: + suppData.UZ = 1; + break; + case DOFType.FixedPositive: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + break; + case DOFType.FixedNegative: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + break; + default: + suppData.UZ = 0; + break; + } + + switch (constraint.TranslationY) + { + case DOFType.Fixed: + suppData.UY = 1; + break; + case DOFType.FixedPositive: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UY, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + break; + case DOFType.FixedNegative: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UY, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + break; + default: + suppData.UY = 0; + break; + } + + switch (constraint.TranslationX) + { + case DOFType.Fixed: + suppData.UX = 1; + break; + case DOFType.FixedPositive: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + break; + case DOFType.FixedNegative: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + break; + default: + suppData.UX = 0; + break; + } + + //suppData.UX = constraint.TranslationX == DOFType.Fixed ? 1 : 0; + //suppData.UY = constraint.TranslationY == DOFType.Fixed ? 1 : 0; + //suppData.UZ = constraint.TranslationZ == DOFType.Fixed ? 1 : 0; + //suppData.RX = constraint.RotationX == DOFType.Fixed ? 1 : 0; + //suppData.RY = constraint.RotationY == DOFType.Fixed ? 1 : 0; + //suppData.RZ = constraint.RotationZ == DOFType.Fixed ? 1 : 0; + + + //suppData.KX = constraint.TranslationalStiffnessX; + //suppData.KY = constraint.TranslationalStiffnessY; + //suppData.KZ = constraint.TranslationalStiffnessZ; + //suppData.HX = constraint.RotationalStiffnessX; + //suppData.HY = constraint.RotationalStiffnessY; + //suppData.HZ = constraint.RotationalStiffnessZ; } /***************************************************/ From 14c82b292a062edfb4a88589764765982f038025 Mon Sep 17 00:00:00 2001 From: Nazeefa Bushra Date: Thu, 8 Aug 2024 14:50:34 +0100 Subject: [PATCH 2/2] Updated the code to include rotation contsraints, removed commented code and put translations in order of x, y, z. --- .../Convert/ToRobot/Properties/Support.cs | 92 ++++++++++++------- 1 file changed, 60 insertions(+), 32 deletions(-) diff --git a/Robot_Adapter/Convert/ToRobot/Properties/Support.cs b/Robot_Adapter/Convert/ToRobot/Properties/Support.cs index 20c1bb7..87793b0 100644 --- a/Robot_Adapter/Convert/ToRobot/Properties/Support.cs +++ b/Robot_Adapter/Convert/ToRobot/Properties/Support.cs @@ -22,6 +22,7 @@ using RobotOM; using BH.oM.Structure.Constraints; +using System.Collections.Generic; namespace BH.Adapter.Robot { @@ -33,29 +34,20 @@ public static partial class Convert public static void ToRobot(IRobotNodeSupportData suppData, Constraint6DOF constraint) { - //if (constraint.TranslationZ == DOFType.Fixed) - // suppData.UZ = 1; - //else if (constraint.TranslationZ == DOFType.FixedPositive) - // suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); - //else if (constraint.TranslationZ == DOFType.FixedNegative) - // suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); - //else - // suppData.UZ = 0; - - switch (constraint.TranslationZ) + switch (constraint.TranslationX) { case DOFType.Fixed: - suppData.UZ = 1; + suppData.UX = 1; break; case DOFType.FixedPositive: - suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); break; case DOFType.FixedNegative: - suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); break; default: - suppData.UZ = 0; + suppData.UX = 0; break; } @@ -75,40 +67,76 @@ public static void ToRobot(IRobotNodeSupportData suppData, Constraint6DOF constr break; } - switch (constraint.TranslationX) + switch (constraint.TranslationZ) { case DOFType.Fixed: - suppData.UX = 1; + suppData.UZ = 1; break; case DOFType.FixedPositive: - suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); break; case DOFType.FixedNegative: - suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_UZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); break; default: - suppData.UX = 0; + suppData.UZ = 0; break; } - //suppData.UX = constraint.TranslationX == DOFType.Fixed ? 1 : 0; - //suppData.UY = constraint.TranslationY == DOFType.Fixed ? 1 : 0; - //suppData.UZ = constraint.TranslationZ == DOFType.Fixed ? 1 : 0; - //suppData.RX = constraint.RotationX == DOFType.Fixed ? 1 : 0; - //suppData.RY = constraint.RotationY == DOFType.Fixed ? 1 : 0; - //suppData.RZ = constraint.RotationZ == DOFType.Fixed ? 1 : 0; + switch (constraint.RotationX) + { + case DOFType.Fixed: + suppData.RX = 1; + break; + case DOFType.FixedPositive: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_RX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + break; + case DOFType.FixedNegative: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_RX, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + break; + default: + suppData.RX = 0; + break; + } + + switch (constraint.RotationY) + { + case DOFType.Fixed: + suppData.RY = 1; + break; + case DOFType.FixedPositive: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_RY, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + break; + case DOFType.FixedNegative: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_RY, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + break; + default: + suppData.RY = 0; + break; + } - //suppData.KX = constraint.TranslationalStiffnessX; - //suppData.KY = constraint.TranslationalStiffnessY; - //suppData.KZ = constraint.TranslationalStiffnessZ; - //suppData.HX = constraint.RotationalStiffnessX; - //suppData.HY = constraint.RotationalStiffnessY; - //suppData.HZ = constraint.RotationalStiffnessZ; + switch (constraint.RotationZ) + { + case DOFType.Fixed: + suppData.UZ = 1; + break; + case DOFType.FixedPositive: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_RZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_PLUS); + break; + case DOFType.FixedNegative: + suppData.SetOneDir(IRobotNodeSupportFixingDirection.I_NSFD_RZ, IRobotNodeSupportOneDirectionFixingType.I_NSODFT_MINUS); + break; + default: + suppData.RZ = 0; + break; + } + } + - /***************************************************/ } + /***************************************************/ }