//獲得所有刀具名稱 public static bool FindAllMachineToolName(out List <string> toolNameList) { toolNameList = new List <string>(); try { Part workPart = theSession.Parts.Work; //取得Machine Tool Root的NCGroup NCGroup machineToolRoot = workPart.CAMSetup.GetRoot(CAMSetup.View.MachineTool); CAMObject[] toolRootMenberAry = machineToolRoot.GetMembers(); foreach (CAMObject member in toolRootMenberAry) { if (member.Name != "NONE") { toolNameList.Add(member.Name); } } } catch (System.Exception ex) { CaxLog.ShowListingWindow("FindAllMachineToolName()..." + ex.Message); return(false); } return(true); }
/// <summary> /// стоит далее этот метод удалить /// </summary> void Build_programmCncDict() { _programmCNC = new Dictionary <NCGroup, List <Operation> >(); operations = _theSession.Parts.Work.CAMSetup.CAMOperationCollection.ToArray() .Where(op => op.GetParent(CAMSetup.View.ProgramOrder).GetType().Name.Equals("NCGroup")).ToArray(); NCGroup cncGroup = null; foreach (var item in operations) { if (cncGroup == null || !cncGroup.Equals(item.GetParent(CAMSetup.View.ProgramOrder))) { cncGroup = item.GetParent(CAMSetup.View.ProgramOrder); } if (_programmCNC == null) { _programmCNC = new Dictionary <NCGroup, List <Operation> >(); } if (!_programmCNC.ContainsKey(cncGroup)) { _programmCNC.Add(cncGroup, new List <Operation> { item }); continue; } var tempoList = _programmCNC[cncGroup]; tempoList.Add(item); _programmCNC[cncGroup] = tempoList; } }
public void AddProgram(int cout) { UFSession theUFSession = UFSession.GetUFSession(); Part workPart = Session.GetSession().Parts.Work; int index = 0; if (program.Count != 0) { index = program.Count; if (cout > index) { cout = cout - index; } else { cout = 0; } } for (int i = 0; i < cout; i++) { NCGroup nCGroup = workPart.CAMSetup.CAMGroupCollection.CreateProgram(parent, "mill_planar", "PROGRAM", NXOpen.CAM.NCGroupCollection.UseDefaultName.False, "O000" + (index + i + 1).ToString()); } theUFSession.UiOnt.Refresh(); }
/// <summary> /// 创建程序组 /// </summary> /// <param name="program"></param> /// <returns></returns> public NCGroup CreateProgram(string program) { Part workPart = theSession.Parts.Work; NCGroup pm = workPart.CAMSetup.GetRoot(CAMSetup.View.ProgramOrder); NCGroup parent = null; foreach (NCGroup ng in pm.GetMembers()) { if (ng.Name.Equals("AAA")) { parent = ng; } } if (parent == null) { throw new Exception("无法找到AAA程序组!"); } try { UFSession theUFSession = UFSession.GetUFSession(); NCGroup nCGroup = workPart.CAMSetup.CAMGroupCollection.CreateProgram(parent, "mill_planar", "PROGRAM", NXOpen.CAM.NCGroupCollection.UseDefaultName.False, program); theUFSession.UiOnt.Refresh(); return(nCGroup); } catch (NXException ex) { throw ex; } }
private IEnumerable <NxOperation> GetOperations(NCGroup ncGroup) { if (ncGroup == null) { return(null); } var members = GetMembers(ncGroup.GetMembers()); var operations = members.OfType <NXOpen.CAM.Operation>(); if (NxSession.Ufs == null) { throw new Exception("Не удалось получить сессию пользовательских функций NX."); } Tag cutterTag; var enumerable = operations.Where(op => { NxSession.Ufs.Oper.AskCutterGroup(op.Tag, out cutterTag); return(cutterTag != Tag.Null && NXObjectManager.Get(cutterTag) is Tool); }); return(enumerable .Select(op => new NxOperation(op, this))); }
public void AddProgram(int cout, string name) { Part workPart = Session.GetSession().Parts.Work; int index = 0; if (program.Count != 0) { index = program.Count; name = program[index - 1].Name; if (Regex.IsMatch(name, "[0-9]+$")) { string[] temp = Regex.Split(name, "[0-9]+$"); //拆分 name = temp[0]; } } else if (Regex.IsMatch(name, "[0-9]+$")) { string[] temp = Regex.Split(name, "[0-9]+$"); //拆分 name = temp[0]; index = Int32.Parse(temp[1]); } if (cout > program.Count) { for (int i = 0; i < cout; i++) { NCGroup nCGroup = workPart.CAMSetup.CAMGroupCollection.CreateProgram(parent, "mill_planar", "PROGRAM", NXOpen.CAM.NCGroupCollection.UseDefaultName.False, name + (index + i + 1).ToString()); } } }
private static bool PartIsAsm(out List <ProgramModel> groups) { Session theSession = Session.GetSession(); NXOpen.UI theUI = NXOpen.UI.GetUI(); groups = new List <ProgramModel>(); if (!theSession.ApplicationName.Equals("UG_APP_MANUFACTURING", StringComparison.CurrentCultureIgnoreCase)) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "请切换到加工模块"); return(false); } group = GetNCGroup(); if (group == null) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "没法找到AAA程序组"); return(false); } ProgramModel model = new ProgramModel(group); if (model.OperData.Count > 0) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "程序组错误"); return(false); } foreach (NCGroup np in model.GetProgram()) { if (np.GetMembers().Length > 0) { ProgramModel nc = new ProgramModel(np); if (!nc.IsOperation() || !nc.Estimate) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, np.Name + "错误"); return(false); } else { groups.Add(nc); } } } List <string> err = new List <string>(); foreach (ProgramModel pm in groups) { err.AddRange(pm.Gouged()); } if (err.Count > 0) { int ok = theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Question, "程序过切!"); if (ok == 2) { ClassItem.Print(err.ToArray()); return(false); } } return(true); }
/// <summary> /// 移动程序到程序组下 /// </summary> /// <param name="program"></param> public void MoveOpreationToProgram(NCGroup program) { Part workPart = Session.GetSession().Parts.Work; workPart.CAMSetup.MoveObjects(CAMSetup.View.ProgramOrder, new CAMObject[1] { this.Oper }, program, CAMSetup.Paste.Inside); }
private void Update(NCGroup group) { Part workPart = Session.GetSession().Parts.Work; NXOpen.CAM.ProgramOrderGroupBuilder programOrderGroupBuilder1; programOrderGroupBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateProgramOrderGroupBuilder(group); programOrderGroupBuilder1.Destroy(); }
/// <summary> /// 移动程序到刀具下 /// </summary> /// <param name="tool"></param> public void MoveOperationToTool(NCGroup tool) { Part workPart = Session.GetSession().Parts.Work; workPart.CAMSetup.MoveObjects(CAMSetup.View.MachineTool, new CAMObject[1] { this.Oper }, tool, CAMSetup.Paste.Inside); }
/// <summary> /// 移动程序到加工体下 /// </summary> /// <param name="geometry"></param> public void MoveOperationToGeometry(NCGroup geometry) { Part workPart = Session.GetSession().Parts.Work; workPart.CAMSetup.MoveObjects(CAMSetup.View.Geometry, new CAMObject[1] { this.Oper }, geometry, CAMSetup.Paste.Inside); }
/// <summary> /// 移动程序到加工方法下 /// </summary> /// <param name="method"></param> public void MoveOperationToMethod(NCGroup method) { Part workPart = Session.GetSession().Parts.Work; workPart.CAMSetup.MoveObjects(CAMSetup.View.MachineMethod, new CAMObject[1] { this.Oper }, method, CAMSetup.Paste.Inside); }
private void GetOperations(NCGroup ncGroup) { Name = ncGroup.Name; NxOperations = new List <NxOperation>(); foreach (var camObject in ncGroup.GetMembers()) { NxOperations.Add(new NxOperation(camObject.Tag)); } }
/// <summary> /// 移动程序到加工体下 /// </summary> /// <param name="geometry"></param> public void MoveOperationToGeometry(NCGroup geometry) { Part workPart = Session.GetSession().Parts.Work; if (geometry == null) { throw new Exception("加工体为空!"); } workPart.CAMSetup.MoveObjects(CAMSetup.View.Geometry, new CAMObject[1] { this.Oper }, geometry, CAMSetup.Paste.Inside); }
/// <summary> /// 移动程序到程序组下 /// </summary> /// <param name="program"></param> public void MoveOpreationToProgram(NCGroup program) { Part workPart = Session.GetSession().Parts.Work; if (program == null) { throw new Exception("程序组为空!"); } workPart.CAMSetup.MoveObjects(CAMSetup.View.ProgramOrder, new CAMObject[1] { this.Oper }, program, CAMSetup.Paste.Inside); }
/// <summary> /// 移动程序到刀具下 /// </summary> /// <param name="tool"></param> public void MoveOperationToTool(NCGroup tool) { Part workPart = Session.GetSession().Parts.Work; if (tool == null) { throw new Exception("刀具组为空!"); } workPart.CAMSetup.MoveObjects(CAMSetup.View.MachineTool, new CAMObject[1] { this.Oper }, tool, CAMSetup.Paste.Inside); }
private bool PostMikron_Molex(NCGroup parent) { string path = Path + PostPart.Name + ".H"; if (File.Exists(path)) { File.Delete(path); } bool isok = Post("Mikron_Molex", path, parent); return(isok); }
/// <summary> /// 移动程序到加工方法下 /// </summary> /// <param name="method"></param> public void MoveOperationToMethod(NCGroup method) { Part workPart = Session.GetSession().Parts.Work; if (method == null) { throw new Exception("加工方法为空!"); } workPart.CAMSetup.MoveObjects(CAMSetup.View.MachineMethod, new CAMObject[1] { this.Oper }, method, CAMSetup.Paste.Inside); }
public List <NCGroup> GetGroup() { List <NCGroup> groups = new List <NCGroup>(); NCGroup part = (NXOpen.CAM.NCGroup)PostPart.CAMSetup.CAMGroupCollection.FindObject("AAA"); foreach (NCGroup np in part.GetMembers()) { if (np.GetMembers().Length > 0) { groups.Add(np); } } return(groups); }
/// <summary> /// 设置刀具名 /// </summary> /// <param name="tool"></param> public void SetToolName(string tool) { this.toolName = tool; if (operModel != null) { if (template == null) { template = new ElectrodeCAMTemplateModel(); } NCGroup toolGroup = template.FindTool(tool); if (toolGroup == null) { throw new Exception("无法找到" + tool + "刀具!"); } operModel.MoveOperationToTool(toolGroup); } }
/// <summary> /// 获取程序组最小半径 /// </summary> /// <param name="groups"></param> /// <returns></returns> public void GetGroupTool(List <NCGroup> groups, out double toolMinNumber, out double diaMin) { diaMin = 99999; toolMinNumber = 9999; foreach (NCGroup np in groups) { CAMObject obj = np.GetMembers()[0]; NCGroup tool = (obj as NXOpen.CAM.Operation).GetParent(CAMSetup.View.MachineTool); ToolDataModel model = new ToolDataModel(tool); if (diaMin > model.ToolDia) { diaMin = model.ToolDia; } if (toolMinNumber > model.ToolNumber) { toolMinNumber = model.ToolNumber; } } }
/// <summary> /// 设置程序名 /// </summary> /// <param name="program"></param> public void SetProgramName(int site) { string preName = "O" + string.Format("{0:D4}", site); this.site = site; this.nameModel.ProgramName = preName; if (operModel != null) { if (template == null) { template = new ElectrodeCAMTemplateModel(); } NCGroup preGroup = template.FindTool(preName); if (preGroup == null) { preGroup = template.CreateProgram(preName); } operModel.MoveOpreationToProgram(preGroup); } }
/// <summary> /// 判断操作是否是同一把刀 /// </summary> /// <returns></returns> public bool IsOperationEqualTool() { string toolName = ""; bool isok = true; foreach (NXOpen.CAM.Operation op in GetOperation()) { NCGroup tool = op.GetParent(CAMSetup.View.MachineTool); if (toolName.Equals("")) { toolName = tool.Name; } else if (!tool.Name.Equals(toolName, StringComparison.CurrentCultureIgnoreCase)) { isok = false; break; } } return(isok); }
private void Initialize() { Part workPart = Session.GetSession().Parts.Work; if (PostPartInfo.IsPartElectrode(workPart)) { this.listBoxPostName.SelectedIndex = 4; } parent = (NXOpen.CAM.NCGroup)workPart.CAMSetup.CAMGroupCollection.FindObject("AAA"); model = new ProgramNcGroupModel(parent); foreach (NCGroup np in model.GetProgram()) { if (np.GetMembers().Length > 0) { groups.Add(np); ListViewItem lv = new ListViewItem(); lv.SubItems.Add(np.Name); lv.Checked = true; listViewProgram.Items.Add(lv); } } }
/// <summary> /// 设置程序名 /// </summary> /// <param name="program"></param> public void SetProgramName(string program) { this.nameModel.ProgramName = program; int k = program.LastIndexOf("0"); if (k != -1) { this.site = Int32.Parse(program.Substring(k + 1)); } if (operModel != null) { if (template == null) { template = new ElectrodeCAMTemplateModel(); } NCGroup preGroup = template.FindTool(program); if (preGroup == null) { preGroup = template.CreateProgram(program); } operModel.MoveOpreationToProgram(preGroup); } }
private static NCGroupModel GetNcGroupModelOfName(OperationNameModel model, ElectrodeCAM cam) { Part workPart = Session.GetSession().Parts.Work; NCGroupModel group = new NCGroupModel() { GeometryGroup = cam.FindGeometry("WORKPIECE"), MethodGroup = cam.MethodGroup.Find(a => a.Name.ToUpper().Equals("CU")), ToolGroup = cam.FindTool(model.ToolName) }; NCGroup temp = cam.FindProgram(model.ProgramName); if (temp == null) { NXOpen.CAM.NCGroup nCGroup1 = (NXOpen.CAM.NCGroup)workPart.CAMSetup.CAMGroupCollection.FindObject("AAA"); NXOpen.CAM.NCGroup nCGroup2 = workPart.CAMSetup.CAMGroupCollection.CreateProgram(nCGroup1, "electrode", "AAA_1", NXOpen.CAM.NCGroupCollection.UseDefaultName.True, model.ProgramName); group.ProgramGroup = nCGroup2; } else { group.ProgramGroup = temp; } return(group); }
private static bool PartIsAsm() { Session theSession = Session.GetSession(); UI theUI = UI.GetUI(); if (!theSession.ApplicationName.Equals("UG_APP_MANUFACTURING", StringComparison.CurrentCultureIgnoreCase)) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "请切换到加工模块"); return(false); } NCGroup group = GetNCGroup(); if (group == null) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "没法找到AAA程序组"); return(false); } ProgramNcGroupModel model = new ProgramNcGroupModel(group); if (!model.IsProgram()) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "程序组错误"); return(false); } foreach (NCGroup np in model.GetProgram()) { ProgramNcGroupModel nc = new ProgramNcGroupModel(np); if (!nc.IsOperation() || !nc.IsOperationEqualTool()) { theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, np.Name + "错误"); return(false); } } return(true); }
/// <summary> /// 取得ToolNumber /// </summary> /// <param name="singleOper"></param> /// <param name="operHolderDescription"></param> /// <returns></returns> public static string AskOperToolNumber(NXOpen.CAM.Operation singleOper) { string operToolNumber = "0"; try { NCGroup singleOperParent = singleOper.GetParent(CAMSetup.View.MachineTool); //由Oper取得刀子 NXOpen.CAM.Tool tool = (NXOpen.CAM.Tool)NXObjectManager.Get(singleOperParent.Tag); //取得Oper的刀子名稱 Tool.Types type; Tool.Subtypes subtype; tool.GetTypeAndSubtype(out type, out subtype); if (type == Tool.Types.Barrel) { NXOpen.CAM.BarrelToolBuilder ToolBuilder1; ToolBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateBarrelToolBuilder(tool); operToolNumber = ToolBuilder1.TlNumberBuilder.Value.ToString(); return(operToolNumber); } else if (type == Tool.Types.Drill) { NXOpen.CAM.DrillStdToolBuilder ToolBuilder1; ToolBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateDrillStdToolBuilder(tool); operToolNumber = ToolBuilder1.TlNumberBuilder.Value.ToString(); return(operToolNumber); } else if (type == Tool.Types.DrillSpcGroove) { NXOpen.CAM.MillingToolBuilder ToolBuilder1; ToolBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateMillToolBuilder(tool); operToolNumber = ToolBuilder1.TlNumberBuilder.Value.ToString(); return(operToolNumber); } else if (type == Tool.Types.Mill) { NXOpen.CAM.MillingToolBuilder ToolBuilder1; ToolBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateMillToolBuilder(tool); operToolNumber = ToolBuilder1.TlNumberBuilder.Value.ToString(); return(operToolNumber); } else if (type == Tool.Types.MillForm) { NXOpen.CAM.MillingToolBuilder ToolBuilder1; ToolBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateMillToolBuilder(tool); operToolNumber = ToolBuilder1.TlNumberBuilder.Value.ToString(); return(operToolNumber); } else if (type == Tool.Types.Solid) { } else if (type == Tool.Types.Tcutter) { NXOpen.CAM.MillingToolBuilder ToolBuilder1; ToolBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateMillToolBuilder(tool); operToolNumber = ToolBuilder1.TlNumberBuilder.Value.ToString(); return(operToolNumber); } else if (type == Tool.Types.Thread) { } else if (type == Tool.Types.Turn) { } else if (type == Tool.Types.Wedm) { } else if (type == Tool.Types.Groove) { } } catch (System.Exception ex) { operToolNumber = "尚未建立Builder存取資料"; return(operToolNumber); } return(operToolNumber); }
public ProgramModel(NCGroup program) { this.ProgramGroup = program; GetOper(); }
public CreateProgram(NCGroup parent) { this.parent = parent; GetProgram(); }