/// <summary> /// 拷贝同件号 /// </summary> /// <param name="user"></param> /// <returns></returns> public List <string> CopWork(UserModel user) { List <string> err = new List <string>(); WorkInfo workInfo = work.Info.Clone() as WorkInfo; WorkCollection workColl = new WorkCollection(workInfo.MoldInfo); int workNum = workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1; workInfo.WorkNumber = workNum; workInfo.UserModel = user; EDMModel edm = GetEDMModel(); if (edm != null) { WorkCreateAssmbile create = new WorkCreateAssmbile(workInfo, edm, asm); err.AddRange(create.CreatePart(work.WorkpieceDirectoryPath)); err.AddRange(create.LoadAssmbile()); if (err.Count == 0) { create.Work.SaveCsys(asm.PartTag); } foreach (NXOpen.Assemblies.Component elect in GetElectrodeComponent()) { err.AddRange(LoadEle(elect, create.Work.PartTag)); } } else { err.Add("无法获取EDM"); } return(err); }
/// <summary> /// 创建Work /// </summary> /// <param name="workpiece"></param> /// <param name="mat"></param> /// <param name="user"></param> /// <returns></returns> private List <string> CreateNewWork(NXOpen.Assemblies.Component ct, WorkpieceModel workpiece, Matrix4 mat, UserModel user) { List <string> err = new List <string>(); MoldInfo moldInfo = workpiece.Info.MoldInfo; int num = asmColl.GetWorkCollection(moldInfo).Work.Count; WorkInfo workInfo = new WorkInfo(workpiece.Info.MoldInfo, user, num + 1, mat); EDMModel edm = GetEdm(ct); if (edm == null) { err.Add("获取EDM错误"); return(err); } WorkCreateAssmbile create; if (edm.Info.MoldInfo.Equals(workInfo.MoldInfo)) { create = new WorkCreateAssmbile(workInfo, edm, asmModel); } else { EDMModel temp = new EDMModel(new EDMInfo(workInfo.MoldInfo, workInfo.UserModel)); create = new WorkCreateAssmbile(workInfo, temp, asmModel, workpiece); } err.AddRange(create.CreatePart(workpiece.WorkpieceDirectoryPath)); err.AddRange(create.LoadAssmbile()); if (err.Count == 0) { create.Work.SaveCsys(workPart); } return(err); }
private List <WorkpieceModel> CreateBulder(Part edmPart, List <string> openFiles, out List <string> err) { List <WorkpieceModel> workpiece = new List <WorkpieceModel>(); err = new List <string>(); EDMModel edm = new EDMModel(edmPart); MoldInfo moldInfo = edm.Info.MoldInfo.Clone() as MoldInfo; moldInfo.MoldNumber = this.strMoldNumber.Value.ToUpper(); moldInfo.EditionNumber = this.strEditionNumber.Value.ToUpper(); WorkPieceInfo info = new WorkPieceInfo(edm.Info.MoldInfo, user.CreatorUser); foreach (string st in openFiles) { MoldInfo temp = moldInfo.Clone() as MoldInfo; string name = Path.GetFileNameWithoutExtension(st); temp.WorkpieceNumber = name; WorkpieceModel model = new WorkpieceModel(new WorkPieceInfo(temp, user.CreatorUser)); if (model.CreatePart(edm.WorkpieceDirectoryPath, st)) { workpiece.Add(model); } else { err.Add(name + "没创建成功"); } } return(workpiece); }
public EdmCreateAssmbile(EDMInfo edmInfo, WorkModel work, WorkpieceModel workpiece) : base(edmInfo.MoldInfo, edmInfo.UserModel) { AbstractAssmbileModel edm = new EDMModel(edmInfo); edm.SetParentModel(work); workpiece.SetParentModel(edm); models.Add(work); models.Add(edm); models.Add(workpiece); this.edmModel = edm; }
//------------------------------------------------------------------------------ //Callback Name: filter_cb //------------------------------------------------------------------------------ public int filter_cb(NXOpen.BlockStyler.UIBlock block, NXOpen.TaggedObject selectedObject) { if (selectedObject is NXOpen.Assemblies.Component) { NXOpen.Assemblies.Component ct = selectedObject as NXOpen.Assemblies.Component; if (EDMModel.IsEDM(ct.Prototype as Part)) { return(NXOpen.UF.UFConstants.UF_UI_SEL_ACCEPT); } } return(NXOpen.UF.UFConstants.UF_UI_SEL_REJECT); }
/// <summary> /// 获取EDM /// </summary> /// <returns></returns> public EDMModel GetEDMModel() { EDMModel model = null; foreach (NXOpen.Assemblies.Component ct in this.workCt.GetChildren()) { if (ParentAssmblieInfo.IsEDM(ct)) { model = new EDMModel(ct.Prototype as Part); } } return(model); }
/// <summary> /// 获得EDM名字 /// </summary> /// <param name="edmModel"></param> private void GetEDMName(ref EDMModel edmModel) { string edmPath = work.WorkpieceDirectoryPath + edmModel.AssembleName + ".prt"; string edmName = edmModel.AssembleName; int count = 0; while (File.Exists(edmPath)) { count++; edmModel.SetAssembleName(edmName + count.ToString()); edmPath = work.WorkpieceDirectoryPath + edmModel.AssembleName + ".prt"; } }
private List <string> CreateNewWork1(NXOpen.Assemblies.Component ct, WorkpieceModel workpiece, Matrix4 mat, UserModel user) { List <string> err = new List <string>(); MoldInfo moldInfo = workpiece.Info.MoldInfo; int num = asmColl.GetWorkCollection(moldInfo).Work.Count; WorkInfo workInfo = new WorkInfo(workpiece.Info.MoldInfo, user, num + 1, mat); string workName = workInfo.MoldInfo.MoldNumber + "-" + workInfo.MoldInfo.WorkpieceNumber + "-" + "WORK" + workInfo.WorkNumber.ToString(); EDMModel edm = GetEdm(ct); if (edm == null) { err.Add("获取EDM错误"); return(err); } NXOpen.Assemblies.Component comp = AssmbliesUtils.MoveCompCopyPart(ct.Parent.Parent, new Vector3d(0, 0, 0), mat); AssmbliesUtils.MakeUnique(comp, edm.WorkpieceDirectoryPath + workName + ".prt"); workInfo.SetAttribute(comp.Prototype as Part); WorkModel wm = new WorkModel(comp.Prototype as Part); if (wm != null) { wm.SaveCsys(workPart); } if (!edm.Info.MoldInfo.Equals(workInfo.MoldInfo)) { EDMInfo edmInfo = new EDMInfo(workInfo.MoldInfo, workInfo.UserModel); string edmName = edmInfo.MoldInfo.MoldNumber + "-" + edmInfo.MoldInfo.WorkpieceNumber + "-" + "EDM"; foreach (NXOpen.Assemblies.Component cp in comp.GetChildren()) { if (ParentAssmblieInfo.IsEDM(cp)) { AssmbliesUtils.MakeUnique(cp, edm.WorkpieceDirectoryPath + edmName + ".prt"); edmInfo.SetAttribute(cp.Prototype as Part); foreach (NXOpen.Assemblies.Component co in cp.GetChildren()) { if (!(co.Prototype as Part).Equals(workpiece.PartTag)) { AssmbliesUtils.DeleteComponent(co); } } } } } return(err); }
public WorkCreateAssmbile(WorkInfo workInfo, EDMModel edm, ASMModel asm, WorkpieceModel workpiece = null) : base(workInfo.MoldInfo, workInfo.UserModel) { WorkModel work = new WorkModel(workInfo); work.SetParentModel(asm); edm.SetParentModel(work); if (workpiece != null) { workpiece.SetParentModel(edm); } models.Add(work); models.Add(edm); if (workpiece != null) { models.Add(workpiece); } this.Work = work; }
/// <summary> /// 创建Work /// </summary> /// <param name="user"></param> /// <param name="workpieceCt"></param> /// <returns></returns> public List <string> CreateWork(UserModel user, NXOpen.Assemblies.Component workpieceCt, Matrix4 mat) { List <string> err = new List <string>(); WorkpieceModel workpieceModel = new WorkpieceModel(workpieceCt.Prototype as Part); WorkInfo workInfo = work.Info.Clone() as WorkInfo; WorkCollection workColl = new WorkCollection(workpieceModel.Info.MoldInfo); int workNum = 1; if (workColl.Work.Count > 0) { workNum = workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1; } workInfo.WorkNumber = workNum; workInfo.UserModel = user; workInfo.Matr = mat; workInfo.MatrInfo = new Matrix4Info(mat); EDMModel edmModel; bool isOther = false; if (workpieceModel.Info.MoldInfo.Equals(work.Info.MoldInfo)) { edmModel = GetEDMModel(); } else { workInfo.MoldInfo = workpieceModel.Info.MoldInfo; EDMInfo info = new EDMInfo(workpieceModel.Info.MoldInfo, user); edmModel = new EDMModel(info); isOther = true; } WorkCreateAssmbile create = new WorkCreateAssmbile(workInfo, edmModel, asm); err.AddRange(create.CreatePart(work.WorkpieceDirectoryPath)); err.AddRange(create.LoadAssmbile()); if (err.Count == 0) { create.Work.SaveCsys(asm.PartTag); } if (isOther) { err.AddRange(LoadWorkpiece(edmModel.PartTag, workpieceCt)); } return(err); }
public AsmCreateAssmbile(MoldInfo mold, UserModel user, Part workpiecePart) : base(mold, user) { Matrix4 mat = new Matrix4(); mat.Identity(); AbstractAssmbileModel asm = new ASMModel(new ASMInfo(base.moldInfo, base.userModel)); AbstractAssmbileModel work = new WorkModel(new WorkInfo(base.moldInfo, base.userModel, 1, mat)); AbstractAssmbileModel edm = new EDMModel(new EDMInfo(base.moldInfo, base.userModel)); AbstractAssmbileModel workpiece = new WorkpieceModel(new WorkPieceInfo(base.moldInfo, base.userModel), workpiecePart); work.SetParentModel(asm); edm.SetParentModel(work); workpiece.SetParentModel(edm); this.asmModel = asm; models.Add(asm); models.Add(work); models.Add(edm); models.Add(workpiece); }
//------------------------------------------------------------------------------ //Callback Name: update_cb //------------------------------------------------------------------------------ public int update_cb(NXOpen.BlockStyler.UIBlock block) { try { if (block == seleEdm) { //---------Enter your code here----------- TaggedObject[] tg = seleEdm.GetSelectedObjects(); if (tg.Length > 0) { this.buttFile.Enable = true; NXOpen.Assemblies.Component ct = tg[0] as NXOpen.Assemblies.Component; edm = new EDMModel(ct.Prototype as Part); this.strMoldNumber.Value = edm.Info.MoldInfo.MoldNumber; this.strEditionNumber.Value = edm.Info.MoldInfo.EditionNumber; } } else if (block == strMoldNumber) { //---------Enter your code here----------- } else if (block == strEditionNumber) { //---------Enter your code here----------- } else if (block == buttFile) { //---------Enter your code here----------- partPaths = OpenFileUtils.OpenFiles("添加工件", "部件文件(*.prt*)|"); } } catch (Exception ex) { //---- Enter your exception handling code here ----- theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString()); } return(0); }
/// <summary> /// 拷贝不用件号的work /// </summary> /// <param name="user"></param> /// <param name="workpieceName"></param> /// <returns></returns> public List <string> CopOtherWork(UserModel user, string workpieceName) { List <string> err = new List <string>(); NXOpen.Assemblies.Component ct = GetWorkpieceModelForName(workpieceName); if (ct == null) { err.Add("无法找到工件!"); } else { WorkpieceModel model = new WorkpieceModel(ct.Prototype as Part); WorkInfo workInfo = work.Info.Clone() as WorkInfo; WorkCollection workColl = new WorkCollection(model.Info.MoldInfo); int workNum = workColl.Work.Count + 1; workInfo.WorkNumber = workNum; workInfo.UserModel = user; workInfo.MoldInfo = model.Info.MoldInfo; EDMInfo edmInfo = new EDMInfo(model.Info.MoldInfo, user); EDMModel edmModel = new EDMModel(edmInfo); GetEDMName(ref edmModel); WorkCreateAssmbile create = new WorkCreateAssmbile(workInfo, edmModel, asm); err.AddRange(create.CreatePart(work.WorkpieceDirectoryPath)); err.AddRange(create.LoadAssmbile()); if (err.Count == 0) { create.Work.SaveCsys(asm.PartTag); } foreach (NXOpen.Assemblies.Component elect in GetElectrodeComponent()) { err.AddRange(LoadEle(elect, create.Work.PartTag)); } err.AddRange(LoadWorkpiece(edmModel.PartTag, ct)); } return(err); }
public CreateEdmPart(string filePath, MoldInfoModel moldInfo) { Model = new EDMModel(filePath, moldInfo); }