/// <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(); }
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(); }
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); } }
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); } } }