static void Main(string[] args) { // RapidCode objects Axis phantomAxis; // Declare what 'axis' is // Initialize RapidCode Objects MotionController controller = MotionController.CreateFromSoftware(/*@"C:\RSI\X.X.X\"*/); // Insert the path location of the RMP.rta (usually the RapidSetup folder) SampleAppsCS.HelperFunctions.CheckErrors(controller); // [Helper Function] Check that the controller has been initialize correctly. SampleAppsCS.HelperFunctions.StartTheNetwork(controller); // [Helper Function] Initialize the network. try { controller.AxisCountSet(controller.AxisCountGet() + 1); // Configure one additional axis to be used for the phantom axis int axisNumber = controller.AxisCountGet() - 1; // Set the axis number to the last axis on the network (subtract one because the axes are zero indexed) Console.WriteLine("\nPhantom Axis Example"); Console.WriteLine("\nCreate Phantom Axis\n"); phantomAxis = controller.AxisGet(axisNumber); // Initialize Axis class SampleAppsCS.HelperFunctions.CheckErrors(phantomAxis); // [Helper Function] Check that the axis has been initialized correctly // These limits are not meaningful for a Phantom Axis (e.g., a phantom axis has no actual position so a position error trigger is not necessary) // Therefore, you must set all of their actions to "NONE". Console.WriteLine("\nSetting all limit actions to NONE...\n"); phantomAxis.ErrorLimitActionSet(RSIAction.RSIActionNONE); // Set Error Limit Action. phantomAxis.HardwareNegLimitActionSet(RSIAction.RSIActionNONE); // Set Hardware Negative Limit Action. phantomAxis.HardwarePosLimitActionSet(RSIAction.RSIActionNONE); // Set Hardware Positive Limit Action. phantomAxis.HomeActionSet(RSIAction.RSIActionNONE); // Set Home Action. phantomAxis.SoftwareNegLimitActionSet(RSIAction.RSIActionNONE); // Set Software Negative Limit Action. phantomAxis.SoftwarePosLimitActionSet(RSIAction.RSIActionNONE); // Set Software Positive Limit Action. Console.WriteLine("\nComplete\n"); Console.WriteLine("\nSetting MotorType...\n"); phantomAxis.MotorTypeSet(RSIMotorType.RSIMotorTypePHANTOM); // Set the MotorType to phantom Console.WriteLine("\nComplete\n"); Console.WriteLine("\nPhantom Axis created\n"); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("\nPress Any Key To Exit"); // Allow time to read Console. Console.ReadKey(); }