示例#1
0
        /// <summary>
        /// 清空机器人Home预制坐标信息_Yecc
        /// </summary>
        /// <param name="FM"></param>
        /// <param name="DSystem"></param>
        /// <param name="product"></param>
        /// <param name="RobotName"></param>
        /// <param name="progressBar"></param>
        /// <param name="CreateCable"></param>
        public void ClearRobotHomeList(Form FM, DataType.Dsystem DSystem, Product product, String RobotName, ProgressBar progressBar, bool CreateCable = false)
        {
            //Workbench TheKinWorkbench = DSystem.CDSActiveDocument.GetWorkbench("KinematicsWorkbench");
            Mechanisms      cTheMechanisms = null;
            ProductDocument partDocument   = GetProductPath(product, DSystem, false);
            Selection       selection      = partDocument.Selection;

            selection.Clear();
            try
            {
                BasicDevice  basicDevice   = (BasicDevice)product.GetTechnologicalObject("BasicDevice");
                System.Array homePositions = null;
                //for (int i = 0; i < 100; i++) // add New Robot Home Position
                //{
                //    object[] HomePos = { 0, 0, 0, 0, 0, 0 };
                //    basicDevice.SetHomePosition("RobotHome_" + i, HomePos);
                //}
                basicDevice.GetHomePositions(out homePositions);
                int HomePosNum = homePositions.Length;
                if (HomePosNum > 1) //当对象运动机构数量>1时 清除全部机构对象
                {
                    foreach (HomePosition homePosition in homePositions)
                    {
                        selection.Add(homePosition);
                        //Array AtoolTip = null;
                        //homePosition.GetAssociatedToolTip(out AtoolTip);
                        //selection.Add(homePosition);
                    }
                    selection.Delete();
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + ";请在帮助-》问题反馈与建议中反馈该问题,谢谢!");
                //选定的对象不存在任何运动机构
            }
            //Mechanisms TheMechanismsList = TheKinWorkbench.Mechanisms;
            RobGenericController Rgcr          = (RobGenericController)product.GetTechnologicalObject("RobGenericController");
            RobControllerFactory CRM           = (RobControllerFactory)product.GetTechnologicalObject("RobControllerFactory");
            GenericMotionProfile genericMotion = null;
            int ProfileCount = 0;

            Rgcr.GetMotionProfileCount(out ProfileCount);
            if (ProfileCount > 0)
            {
                string ProfileName = "DNBRobController";
                Rgcr.GetMotionProfile(ProfileName, out genericMotion);
            }
            InitController(Rgcr, CRM, 10, progressBar);
            Mechanism mechanism = cTheMechanisms.Add();
            //mechanism.FixedPart=
            ///RefDocument//mk:@MSITStore:F:\02%20我的知识库\05%20学习&总结资料\01%20CAA开发资料\V5Automation.chm::/online/CAAScdDmuUseCases/CAAKiiMechanismCreationSource.htm
            //string GetName = CRM.get_Name();
        }
示例#2
0
        public void CreateRobotMoto(Form FM, DataType.Dsystem DSystem, Product product, String RobotName, ProgressBar progressBar, bool CreateCable = false)
        {
            Workbench  TheKinWorkbench = DSystem.CDSActiveDocument.GetWorkbench("KinematicsWorkbench");
            Mechanisms cTheMechanisms  = null;

            try
            {
                cTheMechanisms = (Mechanisms)product.GetTechnologicalObject("Mechanisms");
                if (cTheMechanisms.Count > 1) //当对象运动机构数量>1时 清除全部机构对象
                {
                    foreach (Mechanism item in cTheMechanisms)
                    {
                        cTheMechanisms.Remove(item); //Clear All Mechanisms
                    }
                }
            }
            catch (Exception)
            {
                //选定的对象不存在任何运动机构
            }
            //BasicDevice basicDevice = (BasicDevice)product.GetTechnologicalObject("BasicDevice");
            //Mechanisms TheMechanismsList = TheKinWorkbench.Mechanisms;
            RobGenericController Rgcr          = (RobGenericController)product.GetTechnologicalObject("RobGenericController");
            RobControllerFactory CRM           = (RobControllerFactory)product.GetTechnologicalObject("RobControllerFactory");
            GenericMotionProfile genericMotion = null;
            int ProfileCount = 0;

            Rgcr.GetMotionProfileCount(out ProfileCount);
            if (ProfileCount > 0)
            {
                string ProfileName = "DNBRobController";
                Rgcr.GetMotionProfile(ProfileName, out genericMotion);
            }
            InitController(Rgcr, CRM, 10, progressBar);
            Mechanism mechanism = cTheMechanisms.Add();
            //mechanism.FixedPart=
            ///RefDocument//mk:@MSITStore:F:\02%20我的知识库\05%20学习&总结资料\01%20CAA开发资料\V5Automation.chm::/online/CAAScdDmuUseCases/CAAKiiMechanismCreationSource.htm
            //string GetName = CRM.get_Name();
        }
示例#3
0
        private void LoadRobotTask()
        {
            Object[] objRobotTasks = new Object[100];
            String   folderName    = "C:\\tmp\\test\\";


            Selection sel = actualDocument.Selection;

            Product robot = (Product)sel.Item(1).Value;

            RobGenericController objCtrl             = (RobGenericController)robot.GetTechnologicalObject("RobGenericController");
            RobControllerFactory objFact             = (RobControllerFactory)robot.GetTechnologicalObject("RobControllerFactory");
            RobotTaskFactory     objRobotTaskFactory = (RobotTaskFactory)robot.GetTechnologicalObject("RobotTaskFactory");
            OLPTranslator        olpAPI = (OLPTranslator)robot.GetTechnologicalObject("OLPTranslator");

            objRobotTaskFactory.GetAllRobotTasks(objRobotTasks);


            foreach (RobotTask robotTask in objRobotTasks)
            {
                olpAPI.DownloadAsXML(robotTask, folderName + robotTask.get_Name() + ".xml", false, false, false);
            }
        }
示例#4
0
 private void InitController(RobGenericController Rgcr, RobControllerFactory CRM, int RobotCtrlNum, ProgressBar Pbar)
 {
     #region 机器人基本TCP Motion初始化
     // Rgcr.moti
     String GetName = string.Empty;
     GetName = CRM.get_Name();
     for (int i = 1; i <= RobotCtrlNum; i++)
     {
         GenericAccuracyProfile GP;
         GenericMotionProfile   GMP;
         GenericToolProfile     GTP;
         GenericObjFrameProfile GOP;
         bool ExistsObject;
         CRM.CreateGenericAccuracyProfile(out GP);
         GP.GetName(ref GetName);
         GetName = CRM.get_Name();
         GP.SetAccuracyValue(i * 0.1);
         GP.SetName(i * 10 + "%");
         GP.SetAccuracyType(AccuracyType.ACCURACY_TYPE_SPEED);
         GP.SetFlyByMode(false);
         Rgcr.HasAccuracyProfile((i * 10 + "%"), out ExistsObject);
         if (!ExistsObject)
         {
             Rgcr.AddAccuracyProfile(GP);
         }
         Pbar.PerformStep();
         /////////////////////////////////////////////////////////////////////
         CRM.CreateGenericObjFrameProfile(out GOP);
         GOP.SetObjectFrame(0, 0, 0, 0, 0, 0);
         GOP.SetName("Object_0" + i);
         Rgcr.HasObjFrameProfile(("Object_0" + i), out ExistsObject);
         if (!ExistsObject)
         {
             Rgcr.AddObjFrameProfile(GOP);
         }
         Pbar.PerformStep();
         /////////////////////////////////////////////////////////////////////
         CRM.CreateGenericMotionProfile(out GMP);
         GMP.SetSpeedValue(i * 0.1);
         GMP.SetName(i * 10 + "%");
         GMP.SetMotionBasis(MotionBasis.MOTION_PERCENT);
         Rgcr.HasMotionProfile((i * 10 + "%"), out ExistsObject);
         if (!ExistsObject)
         {
             Rgcr.AddMotionProfile(GMP);
         }
         Pbar.PerformStep();
         /////////////////////////////////////////////////////////////////////
         // NwName = i < 9 ? ("Tool_0" + i) : ("Tool_" + i);
         string NwName = "Tool_0" + i;
         Rgcr.HasToolProfile(NwName, out ExistsObject);
         if (!ExistsObject)
         {
             try
             {
                 int ToolNum = 0;
                 Rgcr.GetToolProfileCount(out ToolNum);
                 string Ctname = string.Empty;
                 if (ToolNum < 16)
                 {
                     CRM.CreateGenericToolProfile(out GTP);
                     Rgcr.AddToolProfile(GTP);
                     //Object[] ToolLists = new object[ToolNum];
                     //Rgcr.GetToolProfiles(ToolLists);
                     //for (int j = 1; j <= ToolNum; j++)
                     //{
                     //    Ctname = ((GenericToolProfile)ToolLists[i]).get_Name();
                     //    ((GenericToolProfile)ToolLists[i]).set_Name(NwName);
                     //}
                     //GTP.GetName(Ctname);
                     //GTP.SetToolMobility(true);
                     //GTP.set_Name(NwName);
                 }
             }
             catch (Exception)
             {
                 throw;
             }
             //Object[] TooList = new object[99];
             //Rgcr.GetToolProfiles(TooList);
             //int TotalTool;
             //Rgcr.GetToolProfileCount(out TotalTool);
             //GenericToolProfile ToolProfile =(GenericToolProfile)TooList[TotalTool-1];
             //NwName = ToolProfile.get_Name();
             //ToolProfile.set_Name(NwName);
         }
         Pbar.PerformStep();
     }
     #endregion
     #region 机器人默认值设置
     //Init Current Motion Profile \accuracy \ Tool Profile \Object
     bool ExistsObj;
     Rgcr.HasAccuracyProfile((100 + "%"), out ExistsObj);
     if (ExistsObj)
     {
         Rgcr.SetCurrentAccuracyProfile((100 + "%"));
     }
     Rgcr.HasObjFrameProfile("Object_01", out ExistsObj);
     if (ExistsObj)
     {
         Rgcr.SetCurrentObjFrameProfile("Object_01");
     }
     Rgcr.HasMotionProfile((100 + "%"), out ExistsObj);
     if (ExistsObj)
     {
         Rgcr.SetCurrentMotionProfile((100 + "%"));
     }
     Rgcr.HasToolProfile("Tool_01", out ExistsObj);
     if (ExistsObj)
     {
         Rgcr.SetCurrentToolProfile("Tool_01");
     }
     #endregion
     #region 机器日Taglist目录及RobotTask批量设置
     //RobotTaskFactory Rtf = (RobotTaskFactory)Usp.GetTechnologicalObject("RobotTaskFactory");
     object[] RobotTaskLists = new object[99];
     //try
     //{
     //    Rtf.GetAllRobotTasks(RobotTaskLists);
     //}
     //catch (Exception)
     //{
     //    RobotTaskLists = null;
     //}
     //GetName = Rtf.get_Name();
     Pbar.PerformStep();
     #endregion
     object[] RTask = new object[50];
     // Rtf.GetAllRobotTasks(RTask);
     foreach (RobotTask item in RTask)
     {
         if (item != null)
         {
             item.set_Description("安徽锐锋科技自动化产品,机器人轨迹,创建于:" + DateTime.Now);
         }
     }
 }