示例#1
0
        private bool PartIsAsm()
        {
            Part          workPart = Session.GetSession().Parts.Work;
            MoldInfoModel mold     = new MoldInfoModel(workPart);
            string        type     = AttributeUtils.GetAttrForString(workPart, "PartType");

            if (type.Equals("ASM"))
            {
                assemble = AssembleSingleton.Instance().GetAssemble(mold.MoldNumber + "-" + mold.WorkpieceNumber);
                foreach (WorkModel work in assemble.Works)
                {
                    if (!AttributeUtils.GetAttrForBool(work.PartTag, "Interference"))
                    {
                        UI.GetUI().NXMessageBox.Show("提示", NXMessageBox.DialogType.Error, "WORK" + work.WorkNumber.ToString()
                                                     + "没有检查电极");
                        return(false);
                    }
                }
                if (assemble.IsAssmbleOk())
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                UI.GetUI().NXMessageBox.Show("提示", NXMessageBox.DialogType.Error, "请切换到ASM下");
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// 替换模号件号
        /// </summary>
        /// <param name="model"></param>
        /// <param name="info"></param>
        /// <returns></returns>
        public static Part Replace(AbstractModel model, MoldInfoModel info)
        {
            Session   theSession   = Session.GetSession();
            UFSession theUFSession = UFSession.GetUFSession();
            Part      workPart     = theSession.Parts.Work;
            Component ct           = model.GetPartComp(workPart);
            string    OldName      = model.MoldInfo.MoldNumber + "-" + model.MoldInfo.WorkpieceNumber;
            string    newName      = info.MoldNumber + "-" + info.WorkpieceNumber;
            string    newPartPath  = model.WorkpiecePath.Replace(OldName, newName);

            if (File.Exists(newPartPath))
            {
                File.Delete(newPartPath);
            }
            File.Move(model.WorkpiecePath, newPartPath);
            if (ct != null)
            {
                model.PartTag.Close(NXOpen.BasePart.CloseWholeTree.False, NXOpen.BasePart.CloseModified.UseResponses, null);
                if (Basic.AssmbliesUtils.ReplaceComp(ct, newPartPath, ct.Name.Replace(OldName, newName)))
                {
                    return(ct.Prototype as Part);
                }
                return(null);
            }
            else
            {
                model.PartTag.Close(NXOpen.BasePart.CloseWholeTree.False, NXOpen.BasePart.CloseModified.UseResponses, null);
                //NXOpen.PartLoadStatus partLoadStatus1;
                //BasePart part = theSession.Parts.OpenBaseDisplay(newPartPath, out partLoadStatus1);
                Tag partTag;
                UFPart.LoadStatus error_status;
                theUFSession.Part.Open(newPartPath, out partTag, out error_status);
                return(NXObjectManager.Get(partTag) as Part);
            }
        }
示例#3
0
 public ReplaceAssmblies(AssembleModel assm, MoldInfoModel info, bool isBorrow)
 {
     this.assm     = assm;
     this.isBorrow = isBorrow;
     this.info     = info;
     GetWorkpiece();
 }
示例#4
0
        //------------------------------------------------------------------------------
        //Callback Name: apply_cb
        //------------------------------------------------------------------------------
        public int apply_cb()
        {
            int errorCode = 0;

            try
            {
                //---- Enter your callback code here -----
                //ElectrodeASMBuider buider = new ElectrodeASMBuider(this.MoldNumber.WideValue.ToUpper(), this.PartNumber.WideValue.ToUpper(),
                //    this.EditionNumber.WideValue.ToUpper(), this.MoldType.WideValue.ToUpper(), this.ClientNumber.WideValue.ToUpper());
                //buider.CreateAsm();
                UserInfoSingleton user = UserInfoSingleton.GetInstance();
                if (user.UserInfo == null)
                {
                    return(1);
                }
                MoldInfoModel moldInfo = new MoldInfoModel()
                {
                    MoldNumber      = this.MoldNumber.WideValue.ToUpper(),
                    WorkpieceNumber = this.PartNumber.WideValue.ToUpper(),
                    EditionNumber   = this.EditionNumber.WideValue.ToUpper(),
                    MoldType        = this.MoldType.WideValue.ToUpper(),
                    ClientName      = this.ClientNumber.WideValue.ToUpper(),
                    CreatedDate     = DateTime.Now.ToString("yyyy-MM-dd"),
                    CreatorName     = user.UserInfo.UserName,
                };
                AddEdmAsmBuilder.CreateBuilder(moldInfo);
            }
            catch (Exception ex)
            {
                //---- Enter your exception handling code here -----
                errorCode = 1;
                theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
            }
            return(errorCode);
        }
示例#5
0
 public ElectrodePart(ElectrodeInfo eleInfo, MoldInfoModel moldInfo, ElectrodeHeadInfo head, Matrix4 mat)
 {
     this.eleMatr  = mat;
     this.eleInfo  = eleInfo;
     this.moldInfo = moldInfo;
     this.head     = head;
     elePart       = new CreateElectrodePart(head.ConditionModel.Work.WorkpieceDirectoryPath, this.head.ConditionModel.Work.WorkNumber
                                             , eleInfo, moldInfo, mat);
 }
示例#6
0
        public static void CreateBomExecl(AssembleModel assemble)
        {
            Session       theSession    = Session.GetSession();
            Part          workPart      = theSession.Parts.Work;
            MoldInfoModel mold          = assemble.Asm.MoldInfo;
            string        workpieceName = mold.MoldNumber + "-" + mold.WorkpieceNumber + mold.EditionNumber;
            string        bomPath       = assemble.Asm.WorkpieceDirectoryPath + workpieceName + "-Bom.xlsx";

            if (File.Exists(bomPath))
            {
                File.Delete(bomPath);
            }
            string dllPath           = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            string excelTemplatePath = dllPath.Replace("application\\", "Cofigure\\ElectrodeBom_Template.xlsx");
            //string excelTemplatePath = @"C:\Users\ycchen10\OneDrive - kochind.com\Desktop\MolexPlugIn\Cofigure\ElectrodeBom_Template.xlsx";
            IWorkbook workbook = ExcelUtils.CreateExeclFile(excelTemplatePath);

            if (workbook == null)
            {
                return;
            }
            IFont font = workbook.CreateFont();

            font.FontName           = "微软雅黑";
            font.FontHeightInPoints = 10;
            ICellStyle style = ExcelUtils.SetCellStyle(workbook, font);
            ISheet     sheet = workbook.GetSheetAt(0);

            ExcelUtils.SetValue(sheet, style, 1, 1, mold.MoldNumber);
            ExcelUtils.SetValue(sheet, style, 2, 1, mold.WorkpieceNumber);
            ExcelUtils.SetValue(sheet, style, 3, 1, mold.EditionNumber);
            ExcelUtils.SetValue(sheet, style, 4, 1, mold.MoldType);
            ExcelUtils.SetValue(sheet, style, 5, 1, mold.CreatedDate);
            ExcelUtils.SetValue(sheet, style, 6, 1, mold.CreatorName);
            string workName = "";
            int    row      = 9;

            foreach (WorkModel wk in assemble.Works)
            {
                ExcelUtils.SetValue(sheet, style, row, 0, "WORK" + wk.WorkNumber);
                row++;
                List <ElectrodeModel> eles = assemble.Electrodes.Where(a => a.WorkNumber == wk.WorkNumber).ToList();
                eles.Sort();
                foreach (ElectrodeModel model in eles)
                {
                    SetRowData(sheet, style, row, model.EleInfo);
                    row++;
                }
            }

            FileStream fs = File.Create(bomPath);

            workbook.Write(fs);
            fs.Close();
            workbook.Close();
            NXOpen.UI.GetUI().NXMessageBox.Show("信息", NXMessageBox.DialogType.Information, "导出成功");
        }
        public EleStandardSeatCreateForm(string vec)
        {
            theUFSession = UFSession.GetUFSession();
            workPart     = Session.GetSession().Parts.Work;
            MoldInfoModel moldInfo = new MoldInfoModel(workPart);
            string        name     = moldInfo.MoldNumber + "-" + moldInfo.WorkpieceNumber;

            model          = new CreateConditionModel();
            model.Assemble = AssembleSingleton.Instance().GetAssemble(name);
            model.VecName  = vec.ToUpper();
        }
示例#8
0
        public static void CreateBuilder(MoldInfoModel moldInfo)
        {
            Part workPart = Session.GetSession().Parts.Work;

            NXOpen.Assemblies.Component ct = workPart.ComponentAssembly.RootComponent;
            if (ct != null)
            {
                UI.GetUI().NXMessageBox.Show("错误!", NXMessageBox.DialogType.Error, "工件是装配关系");
                return;
            }
            CsysUtils.SetWcsToAbs();
            Matrix4 mat = new Matrix4();

            mat.Identity();
            string name     = moldInfo.MoldNumber + "-" + moldInfo.WorkpieceNumber + moldInfo.EditionNumber;
            string partfull = workPart.FullPath;
            string path;

            if (workPart.Name.Equals(name))
            {
                path = Path.GetDirectoryName(partfull) + "\\";
            }
            else
            {
                path = Path.GetDirectoryName(partfull) + "\\" + moldInfo.WorkpieceNumber + "-" + moldInfo.EditionNumber + "\\";
            }

            CreateAsmPart       asm       = new CreateAsmPart(path, moldInfo);
            CreateEdmPart       edm       = new CreateEdmPart(path, moldInfo);
            CreateWorkPart      work      = new CreateWorkPart(path, moldInfo, 1, mat);
            CreateWorkpiecePart workpiece = new CreateWorkpiecePart(path, workPart, moldInfo);


            workpiece.CreatePart();
            asm.CreatePart();
            edm.CreatePart();
            work.CreatePart();

            workpiece.Load(edm.Model.PartTag);
            edm.Load(work.Model.PartTag);
            work.Load(asm.Model.PartTag);

            work.Model.WaveBodys();
            PartUtils.SetPartDisplay(asm.Model.PartTag);
            bool anyPartsModified1;

            NXOpen.PartSaveStatus partSaveStatus1;
            Session.GetSession().Parts.SaveAll(out anyPartsModified1, out partSaveStatus1);
        }
        /// <summary>
        /// 获取电极名
        /// </summary>
        /// <returns></returns>
        public string GetEleName()
        {
            string name;
            List <ElectrodeModel> eles = this.model.Assemble.Electrodes;

            eles.Sort();
            MoldInfoModel moldInfo = this.model.Assemble.Asm.MoldInfo;

            if (eles == null || eles.Count == 0)
            {
                name = moldInfo.MoldNumber + "-" + moldInfo.WorkpieceNumber + "E1";
            }
            else
            {
                name = moldInfo.MoldNumber + "-" + moldInfo.WorkpieceNumber + "E" + (eles[eles.Count - 1].EleInfo.EleNumber + 1).ToString();
            }

            return(name);
        }
示例#10
0
        //------------------------------------------------------------------------------
        //Callback Name: ok_cb
        //------------------------------------------------------------------------------
        public int ok_cb()
        {
            int errorCode = 0;

            try
            {
                bool isBorrow;
                UserInfoSingleton user = UserInfoSingleton.GetInstance();
                if (user.UserInfo == null)
                {
                    return(1);
                }
                moldInfo = new MoldInfoModel()
                {
                    MoldNumber      = this.MoldNumber.WideValue.ToUpper(),
                    WorkpieceNumber = this.PartNumber.WideValue.ToUpper(),
                    EditionNumber   = this.EditionNumber.WideValue.ToUpper(),
                    ClientName      = this.ClientNumber.WideValue.ToUpper(),
                    CreatedDate     = DateTime.Now.ToString("yyyy-MM-dd"),
                    CreatorName     = user.UserInfo.UserName,
                };
                if (this.enum0.ValueAsString == "借用电极")
                {
                    isBorrow = true;
                }
                else
                {
                    isBorrow = false;
                }
                ReplaceAssmblies ra = new ReplaceAssmblies(assemble, moldInfo, isBorrow);
                err.AddRange(ra.Replace());
                //---- Enter your callback code here -----
            }
            catch (Exception ex)
            {
                //---- Enter your exception handling code here -----
                errorCode = 1;
                theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
            }
            return(errorCode);
        }
示例#11
0
 //------------------------------------------------------------------------------
 //This method shows the dialog on the screen
 //------------------------------------------------------------------------------
 public NXOpen.UIStyler.DialogResponse Show()
 {
     try
     {
         Part   workPart = theSession.Parts.Work;
         string type     = AttributeUtils.GetAttrForString(workPart, "PartType");
         if (type != "ASM")
         {
             theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "请切换ASM档为工作部件!");
             return(0);
         }
         MoldInfoModel mold = new MoldInfoModel(workPart);
         assemble = AssembleSingleton.Instance().GetAssemble(mold.MoldNumber + "-" + mold.WorkpieceNumber);
         theDialog.Show();
         if (err.Count != 0)
         {
             bool           anyPartsModified;
             PartSaveStatus saveStatus;
             Part           part = null;
             if ((part = ReplacePart.Replace(assemble.Asm, moldInfo)) != null)
             {
                 moldInfo.SetAttribute(part);
                 theSession.Parts.SaveAll(out anyPartsModified, out saveStatus);
                 err.Add("修改" + assemble.Asm.AssembleName + "成功!");
             }
             foreach (string st in err)
             {
                 ClassItem.Print(st);
             }
         }
     }
     catch (Exception ex)
     {
         //---- Enter your exception handling code here -----
         theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
     }
     return(0);
 }
示例#12
0
        //------------------------------------------------------------------------------
        //This method shows the dialog on the screen
        //------------------------------------------------------------------------------
        public NXOpen.UIStyler.DialogResponse Show()
        {
            try
            {
                Part workPart = theSession.Parts.Work;

                string type = AttributeUtils.GetAttrForString(workPart, "PartType");
                if (!type.Equals("ASM", StringComparison.CurrentCultureIgnoreCase))
                {
                    theUI.NXMessageBox.Show("错误", NXMessageBox.DialogType.Error, "请切换到ASM档");
                    return(0);
                }
                MoldInfoModel moldInfo = new MoldInfoModel(workPart);
                string        name     = moldInfo.MoldNumber + "-" + moldInfo.WorkpieceNumber;
                assemble = AssembleSingleton.Instance().GetAssemble(name);
                theDialog.Show();
            }
            catch (Exception ex)
            {
                //---- Enter your exception handling code here -----
                theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
            }
            return(0);
        }
示例#13
0
 public CreateWorkPart(string filePath, MoldInfoModel moldInfo, int workNumber, Matrix4 math)
 {
     Model = new WorkModel(filePath, moldInfo, workNumber, math);
 }
示例#14
0
 public CreateElectrodePart(string filePath, int workNum, ElectrodeInfo info, MoldInfoModel moldInfo, Matrix4 mat, Point3d center)
 {
     Model = new ElectrodeModel(filePath, workNum, info, moldInfo, mat, center);
 }
示例#15
0
 public CreateEdmPart(string filePath, MoldInfoModel moldInfo)
 {
     Model = new EDMModel(filePath, moldInfo);
 }
示例#16
0
 /// <summary>
 /// 设置模具
 /// </summary>
 /// <param name="model"></param>
 /// <param name="sheet"></param>
 /// <param name="style"></param>
 private void SetMoldInfoToExcel(MoldInfoModel model, ISheet sheet, ICellStyle style)
 {
     ExcelUtils.SetValue(sheet, style, 3, 0, model.MoldNumber);
     ExcelUtils.SetValue(sheet, style, 3, 2, model.WorkpieceNumber);
     ExcelUtils.SetValue(sheet, style, 3, 5, model.EditionNumber);
 }
 public CreateAsmPart(string filePath, MoldInfoModel moldInfo)
 {
     Model = new ASMModel(filePath, moldInfo);
 }
 public CreateWorkpiecePart(string filePath, Part part, MoldInfoModel moldInfo)
 {
     Model = new WorkpieceModel(filePath, part, moldInfo);
 }