Exemplo n.º 1
0
 private void SelPic_Click(object sender, EventArgs e)
 {
     try
     {
         string PicFilter = "jpg Files (*.jpg)|*.jpg|eps Files (*.eps)|*.eps|gif Files (*.gif)|*.gif|bmp Files (*.bmp)|*.bmp|png Files (*.png)|*.png|All Files (*.*)|*.*";
         status = CaxPublic.OpenFilesDialog(out PicNameStr, out PicPathStr, "", PicFilter);
         if (!status)
         {
             MessageBox.Show("2D圖選擇失敗");
             return;
         }
         //PhotoFolderPath = string.Format(@"{0}\OP{1}\OIS\{2}", Path.GetDirectoryName(workPart.FullPath), op1, Path.GetFileNameWithoutExtension(workPart.FullPath));
         //if (!Directory.Exists(PhotoFolderPath))
         //{
         //    System.IO.Directory.CreateDirectory(PhotoFolderPath);
         //}
         for (int i = 0; i < PicNameStr.Length; i++)
         {
             if (PicPath.Text != "")
             {
                 PicPath.Text = Path.GetFileNameWithoutExtension(PicNameStr[i]) + "、" + PicPath.Text;
                 S_PicPath    = S_PicPath + "," + string.Format(@"{0}\{1}", S_Folder, PicNameStr[i]);
             }
             else
             {
                 PicPath.Text = Path.GetFileNameWithoutExtension(PicNameStr[i]);
                 S_PicPath    = string.Format(@"{0}\{1}", S_Folder, PicNameStr[i]);
             }
         }
     }
     catch (System.Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
Exemplo n.º 2
0
        private void AbsCheDimen_Click(object sender, EventArgs e)
        {
            try
            {
                IsAbsCheck       = false;
                AbsCheDimen.Text = "Key Chara.(0)";
                IsRemove         = false;
                RepairDimen.Text = "Remove(0)";

                CaxPublic.SelectObjects(out SelDimensionAry);
                if (SelDimensionAry.Length > 0)
                {
                    IsAbsCheck = true;
                }

                AbsCheDimen.Text = string.Format(@"Key Chara.({0})", SelDimensionAry.Length);

                //foreach (NXObject i in SelDimensionAry)
                //    i.SetAttribute("KC", "KeyChara");

                //MessageBox.Show("指定成功");
            }
            catch (System.Exception ex)
            {
                return;
            }
        }
Exemplo n.º 3
0
        private void button900SelPart_Click(object sender, EventArgs e)
        {
            string tempFileName = "";

            status = CaxPublic.OpenFileDialog(out tempFileName, out label900BilletPath);
            if (!status)
            {
                MessageBox.Show("選擇檔案失敗,請聯繫開發工程師");
                return;
            }
            label900.Text = tempFileName;
        }
Exemplo n.º 4
0
 private void SelDimen_Click(object sender, EventArgs e)
 {
     try
     {
         this.Hide();
         CaxPublic.SelectObjects(out SelDimensionAry);
         this.Show();
         SelDimen.Text = string.Format("選擇物件({0})", SelDimensionAry.Length.ToString());
     }
     catch (System.Exception ex)
     {
         return;
     }
 }
Exemplo n.º 5
0
 private void SelectObject_Click(object sender, EventArgs e)
 {
     this.Hide();
     NXObject[] SelDimensionAry;
     CaxPublic.SelectObjects(out SelDimensionAry);
     DicSelDimension = new Dictionary <NXObject, string>();
     foreach (NXObject single in SelDimensionAry)
     {
         string DimenType = single.GetType().ToString();
         DicSelDimension.Add(single, DimenType);
     }
     this.Show();
     SelectObject.Text = string.Format("選擇物件({0})", SelDimensionAry.Length.ToString());
 }
Exemplo n.º 6
0
        private void buttonWSelPart_Click(object sender, EventArgs e)
        {
            string ServerPartPath = string.Format(@"{0}\{1}\{2}\{3}", CaxEnv.GetGlobaltekTaskDir(),
                                                  CurrentCusName,
                                                  CurrentPartNo,
                                                  CurrentCusVer);
            string tempFileName = "";

            status = CaxPublic.OpenFileDialog(out tempFileName, out labelWBilletPath, ServerPartPath);
            if (!status)
            {
                MessageBox.Show("選擇檔案失敗,請聯繫開發工程師");
                return;
            }
            labelW.Text = tempFileName;
        }
Exemplo n.º 7
0
 private void selDimen_Click(object sender, EventArgs e)
 {
     try
     {
         this.Hide();
         CaxPublic.SelectObjects(out Variables.SelDimensionAry);
         Variables.DicSelDimension = new Dictionary <NXObject, string>();
         foreach (NXObject single in Variables.SelDimensionAry)
         {
             string DimenType = single.GetType().ToString();
             Variables.DicSelDimension.Add(single, DimenType);
         }
         selDimen.Text = string.Format("選擇尺寸({0})", Variables.SelDimensionAry.Length.ToString());
         this.Show();
     }
     catch (System.Exception ex)
     {
         MessageBox.Show("選擇尺寸的對話框載入失敗");
     }
 }
Exemplo n.º 8
0
 public static bool CopyNCToDesktop(string cus, string partNo, string cusVer, string opVer, string op1, string ncName)
 {
     try
     {
         string NCFolderPath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}\{7}", OutputForm.EnvVariables.env_Task, cus, partNo, cusVer, opVer, "OP" + op1, "CAM", ncName);
         string DeskTopPath  = string.Format(@"{0}\{1}_{2}_{3}\{4}", Environment.GetFolderPath(Environment.SpecialFolder.Desktop), partNo, cusVer, opVer, ncName);
         if (!Directory.Exists(DeskTopPath))
         {
             Directory.CreateDirectory(DeskTopPath);
         }
         status = CaxPublic.DirectoryCopy(NCFolderPath, DeskTopPath, false);
         if (!status)
         {
             MessageBox.Show("CAM資料夾複製失敗,請聯繫開發工程師");
             return(false);
         }
     }
     catch (System.Exception ex)
     {
         MessageBox.Show(ex.ToString());
         return(false);
     }
     return(true);
 }
Exemplo n.º 9
0
        private void OK_Click(object sender, EventArgs e)
        {
            CaxPart.SaveAll();
            #region Part上傳
            List <string> ListPartName = new List <string>();
            status = CaxUpLoad.UploadPart(DicPartDirData, out ListPartName);
            if (!status)
            {
                this.Close();
                return;
            }
            System.IO.File.WriteAllLines(string.Format(@"{0}\{1}\{2}", sDownUpLoadDat.Server_ShareStr, "OP" + cCaxTEUpLoad.OpNum, "PartNameText_CAM.txt"), ListPartName.ToArray());

            #endregion

            //CAM資料夾上傳
            status = CaxPublic.DirectoryCopy(sDownUpLoadDat.Local_Folder_CAM, sDownUpLoadDat.Server_Folder_CAM, true);
            if (!status)
            {
                MessageBox.Show("CAM資料夾複製失敗,請聯繫開發工程師");
                this.Close();
            }
            #region (註解中)Excel上傳

            /*
             * if (File.Exists(sExcelDirData.ExcelShopDocLocalDir))
             * {
             *  try
             *  {
             *      File.Copy(sExcelDirData.ExcelShopDocLocalDir, sExcelDirData.ExcelShopDocServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("ShopDoc.xls上傳失敗");
             *      this.Close();
             *  }
             * }
             */
            #endregion

            #region (註解)NC上傳

            /*
             * if (Directory.Exists(sNCProgramDirData.NCProgramLocalDir))
             * {
             *  try
             *  {
             *      CaxPublic.DirectoryCopy(sNCProgramDirData.NCProgramLocalDir, sNCProgramDirData.NCProgramServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("NC上傳失敗");
             *      this.Close();
             *  }
             * }
             */
            #endregion

            #region (註解)上傳至資料庫

            /*
             * NCGroup[] NCGroupAry = displayPart.CAMSetup.CAMGroupCollection.ToArray();
             * Dictionary<string, Function.OperData> DicNCData = new Dictionary<string, Function.OperData>();
             * status = Function.GetNCProgramData(NCGroupAry, out DicNCData);
             * if (!status)
             * {
             *  MessageBox.Show("取得NC資料失敗,無法上傳至數據庫,僅上傳NX檔案");
             *  goto finish;
             * }
             *
             * Com_PEMain comPEMain = new Com_PEMain();
             * status = Function.GetCom_PEMain(sPartInfo, out comPEMain);
             * if (!status)
             * {
             *  MessageBox.Show("資料庫無此筆料號,僅上傳NX檔案");
             *  goto finish;
             * }
             *
             * Com_PartOperation comPartOperation = new Com_PartOperation();
             * status = Function.GetCom_PartOperation(sPartInfo, comPEMain, out comPartOperation);
             * if (!status)
             * {
             *  MessageBox.Show("資料庫無此筆料號,僅上傳NX檔案");
             *  goto finish;
             * }
             *
             * foreach (KeyValuePair<string,Function.OperData> kvp in DicNCData)
             * {
             *  Com_TEMain ComTEMain = session.QueryOver<Com_TEMain>()
             *                                 .Where(x => x.comPartOperation == comPartOperation)
             *                                 .And(x => x.ncGroupName == kvp.Key)
             *                                 .SingleOrDefault();
             *  if (ComTEMain == null)
             *  {
             *      //表示未插入過此NC資料,直接插入
             *
             *  }
             * }
             */
            #endregion

            //finish:
            MessageBox.Show("上傳完成!");
            this.Close();
        }
Exemplo n.º 10
0
        private void ExportMainProg_Click(object sender, EventArgs e)
        {
            List <string> ExportData = new List <string>();

            for (int i = 0; i < listView3.Items.Count; i++)
            {
                ExportData.Add(listView3.Items[i].Text);
            }
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                ExportData.Add(listView1.Items[i].Text);
            }
            for (int i = 0; i < listView4.Items.Count; i++)
            {
                ExportData.Add(listView4.Items[i].Text);
            }


            //建立NC資料夾
            string Is_Local = "", NCFolderPath = "";

            Is_Local = Environment.GetEnvironmentVariable("UGII_ENV_FILE");
            if (Is_Local != "")
            {
                CaxPublic.GetAllPath("TE", displayPart.FullPath, ref cMETE_Download_Upload_Path);
                NCFolderPath = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Local_Folder_CAM, "NC");
            }
            else
            {
                NCFolderPath = string.Format(@"{0}\{1}", Path.GetDirectoryName(displayPart.FullPath), "NC");
            }
            if (!Directory.Exists(NCFolderPath))
            {
                System.IO.Directory.CreateDirectory(NCFolderPath);
            }

            //設定輸出路徑
            string ExportPath = string.Format(@"{0}\{1}", NCFolderPath, NewGroupName);

            //string NCFolderPath = string.Format(@"{0}\{1}", Path.GetDirectoryName(displayPart.FullPath), "NC");
            //if (!Directory.Exists(NCFolderPath))
            //{
            //    System.IO.Directory.CreateDirectory(NCFolderPath);
            //}
            //string ExportPath = string.Format(@"{0}\{1}", Path.GetDirectoryName(displayPart.FullPath), NewGroupName);

            if (chb_Heidenhain.Checked == true)
            {
                for (int i = 0; i < ExportData.Count; i++)
                {
                    ExportData[i] = i.ToString() + " " + ExportData[i];
                }
                ExportPath = ExportPath + ".h";
            }
            else if (chb_Simens.Checked == true)
            {
                for (int i = 0; i < ExportData.Count; i++)
                {
                    ExportData[i] = "N" + i.ToString() + " " + ExportData[i];
                }
                ExportPath = ExportPath + ".MPF";
            }

            System.IO.StreamWriter file = new System.IO.StreamWriter(ExportPath);
            for (int i = 0; i < ExportData.Count; i++)
            {
                file.Write(ExportData[i] + "\r\n");
            }
            file.Close();

            this.Hide();
            UI.GetUI().NXMessageBox.Show("恭喜", NXMessageBox.DialogType.Information, "主程式編輯完成!");
            this.Show();
        }
Exemplo n.º 11
0
        private void AssignGaugeDlg_Load(object sender, EventArgs e)
        {
            try
            {
                int module_id;
                theUfSession.UF.AskApplicationModule(out module_id);
                if (module_id != UFConstants.UF_APP_DRAFTING)
                {
                    MessageBox.Show("請先轉換為製圖模組後再執行!");
                    this.Close();
                }

                Is_Local = Environment.GetEnvironmentVariable("UGII_ENV_FILE");
                if (Is_Local != null)
                {
                    //取得AssignGaugeData
                    status = CaxGetDatData.GetAssignGaugeData(out AGData);
                    if (!status)
                    {
                        CaxLog.ShowListingWindow("GetAssignGaugeData失敗,請檢查MEConfig是否有檔案");
                        return;
                    }

                    //取得圖紙範圍資料Data
                    status = CaxGetDatData.GetDraftingCoordinateData(out cCoordinateData);

                    //取得PRODUCT資料(未完成,資料庫還沒建立)
                    ISession            session    = MyHibernateHelper.SessionFactory.OpenSession();
                    IList <Sys_Product> sysProduct = session.QueryOver <Sys_Product>().List <Sys_Product>();
                    foreach (Sys_Product i in sysProduct)
                    {
                        listProduct.Add(i.productName);
                    }
                }
                else
                {
                    //取得AssignGaugeData
                    string AssignGaugeData_dat  = "AssignGaugeData.dat";
                    string AssignGaugeData_Path = string.Format(@"{0}\{1}", "D:", AssignGaugeData_dat);
                    AGData = System.IO.File.ReadAllLines(AssignGaugeData_Path);

                    //取得圖紙範圍資料Data
                    string DraftingCoordinate_dat  = "DraftingCoordinate.dat";
                    string DraftingCoordinate_Path = string.Format(@"{0}\{1}", "D:", DraftingCoordinate_dat);
                    if (!System.IO.File.Exists(DraftingCoordinate_Path))
                    {
                        MessageBox.Show("路徑:" + DraftingCoordinate_Path + "不存在");
                        return;
                    }

                    CaxPublic.ReadCoordinateData(DraftingCoordinate_Path, out cCoordinateData);
                }
                //預設關閉選擇物件
                //SelectDimen.Enabled = false;

                #region 存AGData到DicGaugeData中
                foreach (string Row in AGData)
                {
                    string[] splitRow = Row.Split(',');
                    if (splitRow.Length == 0)
                    {
                        continue;
                    }

                    GaugeData cGaugeData = new GaugeData();
                    status = DicGaugeData.TryGetValue(splitRow[1], out cGaugeData);
                    if (status)
                    {
                        continue;
                    }

                    cGaugeData       = new GaugeData();
                    cGaugeData.Color = splitRow[0];
                    try
                    {
                        cGaugeData.EngName = splitRow[2];
                    }
                    catch (System.Exception ex)
                    {
                        cGaugeData.EngName = "";
                    }
                    DicGaugeData.Add(splitRow[1], cGaugeData);
                }
                #endregion

                //填檢具到下拉選單中
                //Gauge.Items.Add("");
                //Gauge.Items.AddRange(DicGaugeData.Keys.ToArray());
                //填檢具到SelfCheck下拉選單中
                //SelfCheckGauge.Items.Add("");
                //foreach (KeyValuePair<string,GaugeData> kvp in DicGaugeData)
                //{
                //    if (kvp.Key.Contains("T"))
                //    {
                //        continue;
                //    }
                //    SelfCheckGauge.Items.Add(kvp.Key);
                //}

                //取得sheet並填入下拉選單中
                int          SheetCount  = 0;
                NXOpen.Tag[] SheetTagAry = null;
                theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry);
                for (int i = 0; i < SheetCount; i++)
                {
                    NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    ListSheet.Items.Add(CurrentSheet.Name);
                }

                //預設開啟sheet1圖紙
                NXOpen.Drawings.DrawingSheet DefaultSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[0]);
                ListSheet.Text = DefaultSheet.Name;

                //取得圖紙長寬
                SheetLength = DefaultSheet.Length;
                SheetHeight = DefaultSheet.Height;

                //填入IQC、IPQC與SelfCheck的單位
                //string[] CheckUnits = new string[] { "HRS", "PCS", "100%" };
                //Freq_Units.Items.AddRange(CheckUnits.ToArray());
                //SelfCheck_Units.Items.AddRange(CheckUnits.ToArray());
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemplo n.º 12
0
        private void RepairDimen_Click(object sender, EventArgs e)
        {
            try
            {
                IsRemove         = false;
                RepairDimen.Text = "Remove(0)";
                IsAbsCheck       = false;
                AbsCheDimen.Text = "Key Chara.(0)";

                CaxPublic.SelectObjects(out SelDimensionAry);
                if (SelDimensionAry.Length > 0)
                {
                    IsRemove        = true;
                    DicSelDimension = new Dictionary <NXObject, string>();
                    foreach (NXObject single in SelDimensionAry)
                    {
                        DicSelDimension.Add(single, single.GetType().ToString());
                    }
                }


                RepairDimen.Text = string.Format(@"Remove({0})", SelDimensionAry.Length);
                //foreach (KeyValuePair<NXObject, string> kvp in DicSelDimension)
                //{
                //    //恢復原始顏色
                //    string oldColor = "";
                //    try
                //    {
                //        //第二次以上指定顏色的話,抓出來的顏色就不是內建顏色EX:125->108->186,抓到的是108
                //        oldColor = kvp.Key.GetStringAttribute(CaxME.DimenAttr.OldColor);
                //        //內建原始顏色
                //        oldColor = "125";
                //    }
                //    catch (System.Exception ex)
                //    {
                //        oldColor = "125";
                //    }
                //    CaxME.SetDimensionColor(kvp.Key, Convert.ToInt32(oldColor));

                //    //取得泡泡資訊
                //    string BallonNum = "";
                //    try
                //    {
                //        BallonNum = kvp.Key.GetStringAttribute(CaxME.DimenAttr.BallonNum);
                //    }
                //    catch (System.Exception ex)
                //    {
                //        BallonNum = "";
                //    }
                //    if (BallonNum != "")
                //    {
                //        CaxME.DeleteBallon(BallonNum);
                //    }

                //    kvp.Key.DeleteAllAttributesByType(NXObject.AttributeType.String);
                //}
                //MessageBox.Show("移除成功");
            }
            catch (System.Exception ex)
            {
                return;
            }
        }
Exemplo n.º 13
0
        private void OK_Click(object sender, EventArgs e)
        {
            //Part上傳
            List <string> ListPartName = new List <string>();

            string[] PartText;
            foreach (KeyValuePair <string, PartDirData> kvp in DicPartDirData)
            {
                //判斷Part是否存在
                if (!File.Exists(kvp.Value.PartLocalDir))
                {
                    CaxLog.ShowListingWindow("Part不存在,無法上傳");
                    return;
                }
                try
                {
                    File.Copy(kvp.Value.PartLocalDir, kvp.Value.PartServer1Dir, true);
                }
                catch (System.Exception ex)
                {
                    CaxLog.ShowListingWindow(Path.GetFileName(kvp.Value.PartLocalDir) + "上傳失敗");
                    this.Close();
                }

                ListPartName.Add(kvp.Key + ".prt");
            }
            PartText = ListPartName.ToArray();
            System.IO.File.WriteAllLines(string.Format(@"{0}\{1}", Server_OP_Folder, "PartNameText_CAM.txt"), PartText);


            //Excel上傳
            if (File.Exists(sExcelDirData.ExcelShopDocLocalDir))
            {
                try
                {
                    File.Copy(sExcelDirData.ExcelShopDocLocalDir, sExcelDirData.ExcelShopDocServerDir, true);
                }
                catch (System.Exception ex)
                {
                    CaxLog.ShowListingWindow("ShopDoc.xls上傳失敗");
                    this.Close();
                }
            }

            //NC上傳
            //判斷NC是否存在
            if (Directory.Exists(sNCProgramDirData.NCProgramLocalDir))
            {
                try
                {
                    CaxPublic.DirectoryCopy(sNCProgramDirData.NCProgramLocalDir, sNCProgramDirData.NCProgramServerDir, true);
                }
                catch (System.Exception ex)
                {
                    CaxLog.ShowListingWindow("NC上傳失敗");
                    this.Close();
                }
            }


            MessageBox.Show("上傳完成!");
            this.Close();
        }
Exemplo n.º 14
0
        private void OK_Click(object sender, EventArgs e)
        {
            CaxPart.SaveAll();

            //Part上傳
            List <string> ListPartName = new List <string>();

            status = CaxMEUpLoad.UploadPart(DicPartDirData, out ListPartName);
            //status = Function.UploadPart(DicPartDirData, out ListPartName);
            if (!status)
            {
                this.Close();
                return;
            }
            System.IO.File.WriteAllLines(string.Format(@"{0}\{1}\{2}", sDownUpLoadDat.Server_ShareStr, "OP" + cCaxMEUpLoad.OpNum, "PartNameText_OIS.txt"), ListPartName.ToArray());
            //新增TE的下載文件
            if (TEDownloadText.Count > 0)
            {
                string PartNameText_CAM = string.Format(@"{0}\{1}\{2}", sDownUpLoadDat.Server_ShareStr, "OP" + cCaxMEUpLoad.OpNum, "PartNameText_CAM.txt");
                foreach (string i in TEDownloadText)
                {
                    using (StreamWriter sw = File.AppendText(PartNameText_CAM))
                    {
                        sw.WriteLine(i);
                    }
                }
            }

            #region (註解)Excel上傳

            /*
             * //Excel上傳
             * if (File.Exists(sExcelDirData.ExcelIPQCLocalDir))
             * {
             *  try
             *  {
             *      File.Copy(sExcelDirData.ExcelIPQCLocalDir, sExcelDirData.ExcelIPQCServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("IPQC.xls上傳失敗");
             *      this.Close();
             *  }
             * }
             *
             * if (File.Exists(sExcelDirData.ExcelSelfCheckLocalDir))
             * {
             *  try
             *  {
             *      File.Copy(sExcelDirData.ExcelSelfCheckLocalDir, sExcelDirData.ExcelSelfCheckServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("SelfCheck.xls上傳失敗");
             *      this.Close();
             *  }
             * }
             *
             * if (File.Exists(sExcelDirData.ExcelIQCLocalDir))
             * {
             *  try
             *  {
             *      File.Copy(sExcelDirData.ExcelIQCLocalDir, sExcelDirData.ExcelIQCServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("IQC.xls上傳失敗");
             *      this.Close();
             *  }
             * }
             *
             * if (File.Exists(sExcelDirData.ExcelFAILocalDir))
             * {
             *  try
             *  {
             *      File.Copy(sExcelDirData.ExcelFAILocalDir, sExcelDirData.ExcelFAIServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("FAI.xls上傳失敗");
             *      this.Close();
             *  }
             * }
             *
             * if (File.Exists(sExcelDirData.ExcelFQCLocalDir))
             * {
             *  try
             *  {
             *      File.Copy(sExcelDirData.ExcelFQCLocalDir, sExcelDirData.ExcelFQCServerDir, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("FQC.xls上傳失敗");
             *      this.Close();
             *  }
             * }
             */
            #endregion


            int          SheetCount  = 0;
            NXOpen.Tag[] SheetTagAry = null;
            theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry);

            List <NXOpen.Drawings.DrawingSheet> listDrawingSheet = new List <NXOpen.Drawings.DrawingSheet>();
            for (int i = 0; i < SheetCount; i++)
            {
                //打開Sheet並記錄所有OBJ
                NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                listDrawingSheet.Add(CurrentSheet);
            }
            #region 輸出OIS
            //輸出PDF
            if (ExportPFD.Checked == true)
            {
                //建立PFD資料夾
                string PFDFullPath = string.Format(@"{0}\{1}", sDownUpLoadDat.Local_Folder_OIS, cCaxMEUpLoad.PartName + "_OIS" + cCaxMEUpLoad.OpNum + ".pdf");
                CaxME.CreateOISPDF(listDrawingSheet, PFDFullPath);
                //OIS資料夾上傳
                status = CaxPublic.DirectoryCopy(sDownUpLoadDat.Local_Folder_OIS, sDownUpLoadDat.Server_Folder_OIS, true);
                if (!status)
                {
                    MessageBox.Show("OIS資料夾複製失敗,請聯繫開發工程師");
                    this.Close();
                }
            }
            #endregion

            #region 資料上傳至Database
            //取得WorkPart資訊並檢查資料是否完整
            DadDimension.WorkPartAttribute sWorkPartAttribute = new DadDimension.WorkPartAttribute();
            //status = Function.GetWorkPartAttribute(workPart, out sWorkPartAttribute);
            status = DadDimension.GetWorkPartAttribute(workPart, out sWorkPartAttribute);
            if (!status)
            {
                MessageBox.Show("量測資訊不足,僅上傳CAD檔案,上傳完成!");
                this.Close();
                return;
            }

            #region 取得所有量測尺寸資料

            /*
             * //取得泡泡特徵,並記錄總共有幾個泡泡,後續比對數量用
             * IdSymbolCollection BallonCollection = workPart.Annotations.IdSymbols;
             * IdSymbol[] BallonAry = BallonCollection.ToArray();
             * int balloonCount = 0;
             * foreach (IdSymbol i in BallonAry)
             * {
             *  try
             *  {
             *      i.GetStringAttribute("BalloonAtt");
             *      balloonCount++;
             *  }
             *  catch (System.Exception ex)
             *  {
             *      continue;
             *  }
             * }
             *
             * List<CaxME.DimensionData> listDimensionData = new List<CaxME.DimensionData>();
             * List<int> listBalloonCount = new List<int>();
             * NXOpen.Drawings.DrawingSheet FirstSheet = null;
             * while (listBalloonCount.Count != balloonCount)
             * {
             *  for (int i = 0; i < SheetCount; i++)
             *  {
             *      //打開Sheet並記錄所有OBJ
             *      NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
             *      if (CurrentSheet.Name == "S1")
             *      {
             *          FirstSheet = CurrentSheet;
             *      }
             *      CurrentSheet.Open();
             *      CurrentSheet.View.UpdateDisplay();
             *      DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects();
             *      status = CaxME.RecordDimension(SheetObj, sWorkPartAttribute, ref listDimensionData);
             *      if (!status)
             *      {
             *          this.Close();
             *          return;
             *      }
             *  }
             *  foreach (CaxME.DimensionData i in listDimensionData)
             *  {
             *      if (!listBalloonCount.Contains(i.ballonNum))
             *      {
             *          listBalloonCount.Add(i.ballonNum);
             *      }
             *  }
             *
             * }
             */
            //List<CaxME.DimensionData> listDimensionData = new List<CaxME.DimensionData>();
            List <DadDimension>          listDimensionData = new List <DadDimension>();
            NXOpen.Drawings.DrawingSheet FirstSheet        = null;
            for (int i = 0; i < SheetCount; i++)
            {
                //打開Sheet並記錄所有OBJ
                NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                if (CurrentSheet.Name == "S1")
                {
                    FirstSheet = CurrentSheet;
                }
                CurrentSheet.Open();
                CurrentSheet.View.UpdateDisplay();
                DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects();
                status = Com_Dimension.RecordDimension(SheetObj, sWorkPartAttribute, ref listDimensionData);
                if (!status)
                {
                    this.Close();
                    return;
                }
            }
            #endregion



            //切回首頁
            if (FirstSheet != null)
            {
                FirstSheet.Open();
            }


            //由料號查Com_PEMain
            Com_PEMain cCom_PEMain = new Com_PEMain();
            status = CaxSQL.GetCom_PEMain(cCaxMEUpLoad.CusName, cCaxMEUpLoad.PartName, cCaxMEUpLoad.CusRev, cCaxMEUpLoad.OpRev, out cCom_PEMain);
            if (!status)
            {
                return;
            }
            //由Com_PEMain和Op查Com_PartOperation
            Com_PartOperation cCom_PartOperation = new Com_PartOperation();
            status = CaxSQL.GetCom_PartOperation(cCom_PEMain, cCaxMEUpLoad.OpNum, out cCom_PartOperation);
            if (!status)
            {
                return;
            }


            #region (註解)由excelType查meExcelSrNo
            //Sys_MEExcel sysMEExcel = new Sys_MEExcel();
            //try
            //{
            //    sysMEExcel = session.QueryOver<Sys_MEExcel>().Where(x => x.meExcelType == meExcelType).SingleOrDefault<Sys_MEExcel>();
            //}
            //catch (System.Exception ex)
            //{
            //    MessageBox.Show("資料庫中沒有此料號的紀錄,故無法上傳量測尺寸,僅成功上傳實體檔案");
            //    return;
            //}
            #endregion

            #region 比對資料庫MEMain是否有同筆數據
            IList <Com_MEMain> ListCom_MEMain = new List <Com_MEMain>();
            CaxSQL.GetListCom_MEMain(out ListCom_MEMain);

            bool       Is_Exist         = false;
            Com_MEMain currentComMEMain = new Com_MEMain();
            foreach (Com_MEMain i in ListCom_MEMain)
            {
                if (i.comPartOperation == cCom_PartOperation)
                {
                    Is_Exist         = true;
                    currentComMEMain = i;
                    break;
                }
            }
            #endregion

            #region 如果本次上傳的資料不存在於資料庫,則開始上傳資料;如果已存在資料庫,則詢問是否要更新尺寸
            bool Is_Update = true;
            if (Is_Exist)
            {
                if (eTaskDialogResult.Yes == CaxPublic.ShowMsgYesNo("此料號已存在上一次的標註尺寸資料,是否更新?"))
                {
                    #region 刪除Com_Dimension資料表
                    IList <Com_Dimension> ListCom_Dimension = new List <Com_Dimension>();
                    CaxSQL.GetListCom_Dimension(currentComMEMain, out ListCom_Dimension);
                    foreach (Com_Dimension i in ListCom_Dimension)
                    {
                        CaxSQL.Delete <Com_Dimension>(i);
                    }
                    #endregion

                    #region 刪除Com_MEMain資料表
                    Com_MEMain cCom_MEMain = new Com_MEMain();
                    CaxSQL.GetCom_MEMain(cCom_PartOperation, out cCom_MEMain);
                    CaxSQL.Delete <Com_MEMain>(cCom_MEMain);
                    #endregion
                }
                else
                {
                    Is_Update = false;
                }
            }
            if (Is_Update)
            {
                #region 整理資料並上傳
                try
                {
                    Com_MEMain cCom_MEMain = new Com_MEMain();
                    cCom_MEMain.comPartOperation = cCom_PartOperation;
                    //cCom_MEMain.sysMEExcel = sysMEExcel;
                    cCom_MEMain.partDescription = sWorkPartAttribute.partDescription;
                    cCom_MEMain.createDate      = sWorkPartAttribute.createDate;
                    cCom_MEMain.material        = sWorkPartAttribute.material;
                    cCom_MEMain.draftingVer     = sWorkPartAttribute.draftingVer;

                    IList <Com_Dimension> listCom_Dimension = new List <Com_Dimension>();
                    foreach (DadDimension i in listDimensionData)
                    {
                        Com_Dimension cCom_Dimension = new Com_Dimension();
                        cCom_Dimension.MappingData(i);
                        cCom_Dimension.comMEMain = cCom_MEMain;
                        listCom_Dimension.Add(cCom_Dimension);
                        //Com_Dimension cCom_Dimension = new Com_Dimension();
                        //cCom_Dimension.comMEMain = cCom_MEMain;
                        //CaxME.MappingData(i, ref cCom_Dimension);
                        //listCom_Dimension.Add(cCom_Dimension);
                    }
                    cCom_MEMain.comDimension = listCom_Dimension;
                    CaxSQL.Save <Com_MEMain>(cCom_MEMain);
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show("上傳資料庫時發生錯誤,僅上傳實體檔案");
                }
                #endregion
            }

            #endregion


            #endregion

            CaxPart.Save();
            MessageBox.Show("上傳完成!");
            this.Close();
        }
Exemplo n.º 15
0
        private void comboBoxNCgroup_SelectedIndexChanged(object sender, EventArgs e)
        {
            PostPanel.Rows.Clear();
            //清空superGrid資料&機台資訊
            OperPanel.Rows.Clear();
            MachineNo.Text = "";
            //取得comboBox資料
            CurrentNCGroup = comboBoxNCgroup.Text;

            #region 建立NC資料夾
            string Is_Local = "";
            Is_Local = Environment.GetEnvironmentVariable("UGII_ENV_FILE");
            if (Is_Local != null)
            {
                //CaxPublic.GetAllPath("TE", displayPart.FullPath, out sPartInfo, ref cMETE_Download_Upload_Path);
                //if (!cMETE_Download_Upload_Path.Local_Folder_CAM.Contains("Oper1"))
                //{
                //    NCFolderPath = string.Format(@"{0}\{1}_{2}", cMETE_Download_Upload_Path.Local_Folder_CAM, CurrentNCGroup, "NC");
                //}
                //else
                //{
                //    NCFolderPath = string.Format(@"{0}\{1}_{2}", Path.GetDirectoryName(displayPart.FullPath), CurrentNCGroup, "NC");
                //}
                if (displayPart.FullPath.Contains("D:\\Globaltek\\Task"))
                {
                    CaxPublic.GetAllPath("TE", displayPart.FullPath, out sPartInfo, ref cMETE_Download_Upload_Path);
                    NCFolderPath = string.Format(@"{0}\{1}_{2}", cMETE_Download_Upload_Path.Local_Folder_CAM, CurrentNCGroup, "NC");
                }
                else
                {
                    NCFolderPath = string.Format(@"{0}\{1}_{2}", System.IO.Path.GetDirectoryName(displayPart.FullPath), CurrentNCGroup, "NC");
                }
            }
            else
            {
                NCFolderPath = string.Format(@"{0}\{1}_{2}", Path.GetDirectoryName(displayPart.FullPath), CurrentNCGroup, "NC");
            }


            if (!Directory.Exists(NCFolderPath))
            {
                System.IO.Directory.CreateDirectory(NCFolderPath);
            }
            #endregion

            //取得選擇的NC
            foreach (NXOpen.CAM.NCGroup ncGroup in NCGroupAry)
            {
                if (CurrentNCGroup == ncGroup.Name)
                {
                    SelectNCGroup = ncGroup;
                }
            }

            //取得Group下的所有OP
            OperationObj = SelectNCGroup.GetMembers();

            #region 填值到SuperGridOperPanel
            GridRow gridRow = new GridRow();
            foreach (KeyValuePair <string, string> kvp in DicNCData)
            {
                if (CurrentNCGroup != kvp.Key)
                {
                    continue;
                }
                string[] splitOperName = kvp.Value.Split(',');

                for (int i = 0; i < splitOperName.Length; i++)
                {
                    gridRow = new GridRow(false, splitOperName[i], "");
                    OperPanel.Rows.Add(gridRow);
                }
            }
            #endregion

            //填機台到MachineNo欄位並取得對應後處理器
            try
            {
                this.MachineNo.Text = PostProcessorDlg.SelectNCGroup.GetStringAttribute("MachineNo");
            }
            catch (Exception exception)
            {
                this.MachineNo.Text = "";
            }
            if (this.MachineNo.Text == "")
            {
                gridRow = new GridRow("");
                PostProcessorDlg.PostPanel.Rows.Add(gridRow);
                for (int k = 0; k < (int)PostProcessorDlg.TemplatePostData.Length; k++)
                {
                    if (k > 6)
                    {
                        string templatePostData = PostProcessorDlg.TemplatePostData[k];
                        char[] chrArray         = new char[] { ',' };
                        gridRow = new GridRow(templatePostData.Split(chrArray)[0]);
                        PostProcessorDlg.PostPanel.Rows.Add(gridRow);
                    }
                }
            }
            else
            {
                gridRow = new GridRow("");
                PostProcessorDlg.PostPanel.Rows.Add(gridRow);
                ISession      session    = MyHibernateHelper.SessionFactory.OpenSession();
                List <string> strs       = new List <string>();
                string[]      strArrays1 = this.MachineNo.Text.Split(new char[] { ',' });
                int           num        = 0;
                while (num < (int)strArrays1.Length)
                {
                    string        str          = strArrays1[num];
                    Sys_MachineNo sysMachineNo = session.QueryOver <Sys_MachineNo>().Where((Sys_MachineNo x) => x.machineNo == str).SingleOrDefault <Sys_MachineNo>();
                    if (sysMachineNo.postprocessor != null)
                    {
                        string[] strArrays2 = sysMachineNo.postprocessor.Split(new char[] { ',' });
                        for (int l = 0; l < (int)strArrays2.Length; l++)
                        {
                            string str1 = strArrays2[l];
                            if (!strs.Contains(str1))
                            {
                                strs.Add(str1);
                            }
                        }
                        num++;
                    }
                    else
                    {
                        for (int m = 0; m < (int)PostProcessorDlg.TemplatePostData.Length; m++)
                        {
                            if (m > 6)
                            {
                                string templatePostData1 = PostProcessorDlg.TemplatePostData[m];
                                char[] chrArray1         = new char[] { ',' };
                                gridRow = new GridRow(templatePostData1.Split(chrArray1)[0]);
                                PostProcessorDlg.PostPanel.Rows.Add(gridRow);
                            }
                        }
                        break;
                    }
                }
                foreach (string str2 in strs)
                {
                    gridRow = new GridRow(str2);
                    PostProcessorDlg.PostPanel.Rows.Add(gridRow);
                }
            }

            /*
             * try
             * {
             *  MachineNo.Text = SelectNCGroup.GetStringAttribute("MachineNo");
             *  //postprocessor = SelectNCGroup.GetStringAttribute("postprocessor");
             * }
             * catch (System.Exception ex)
             * {
             *  MachineNo.Text = "";
             *  postprocessor = "";
             * }
             *
             * if (postprocessor != "")
             * {
             *  string[] splitPostProcessor = postprocessor.Split(',');
             *  string empty = "";
             *  row = new GridRow(empty);
             *  PostPanel.Rows.Add(row);
             *  for (int i = 0; i < splitPostProcessor.Length; i++)
             *  {
             *      row = new GridRow(splitPostProcessor[i]);
             *      PostPanel.Rows.Add(row);
             *  }
             #region 在ShopDoc中有指定機台並且有後處理
             *  if (splitPostProcessor.Length == 1)
             *  {
             *      //如果只有一個後處理,則自動對應
             *      for (int i = 0; i < OperPanel.Rows.Count;i++ )
             *      {
             *          OperPanel.GetCell(i, 2).Value = splitPostProcessor[0];
             *      }
             *  }
             #endregion
             * }
             * else
             * {
             #region 在ShopDoc中沒指定機台or有指定機台但沒有後處理,則顯示全部後處理
             *  string empty = "";
             *  row = new GridRow(empty);
             *  PostPanel.Rows.Add(row);
             *  for (int i = 0; i < TemplatePostData.Length; i++)
             *  {
             *      if (i > 6)
             *      {
             *          string PostName = TemplatePostData[i].Split(',')[0];
             *          row = new GridRow(PostName);
             *          PostPanel.Rows.Add(row);
             *      }
             *  }
             #endregion
             * }
             */
        }
Exemplo n.º 16
0
    //------------------------------------------------------------------------------
    //  Explicit Activation
    //      This entry point is used to activate the application explicitly
    //------------------------------------------------------------------------------
    public static int Main(string[] args)
    {
        int retValue = 0;

        try
        {
            theProgram = new Program();

            Session theSession  = Session.GetSession();
            Part    workPart    = theSession.Parts.Work;
            Part    displayPart = theSession.Parts.Display;

            int module_id;
            theUfSession.UF.AskApplicationModule(out module_id);
            if (module_id != UFConstants.UF_APP_DRAFTING)
            {
                MessageBox.Show("請先轉換為製圖模組後再執行!");
                return(retValue);
            }

            bool status, Is_Keep;

            //抓取目前圖紙數量和Tag
            //取得全部尺寸資料,並整理出尺寸落在的圖紙&尺寸設定的自定義泡泡再填入Panel中(當使用者點自定義時使用)
            int          SheetCount  = 0;
            NXOpen.Tag[] SheetTagAry = null;
            theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry);
            Dictionary <NXObject, Sheet_DefineNum> DicUserDefine = new Dictionary <NXObject, Sheet_DefineNum>();
            for (int i = 0; i < SheetCount; i++)
            {
                NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                CurrentSheet.Open();
                CurrentSheet.View.UpdateDisplay();
                NXObject[] SheetObj = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                GetUserDefineData(SheetObj, CurrentSheet.Name, ref DicUserDefine);
            }

            NXOpen.Drawings.DrawingSheet DefaultSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[0]);
            DefaultSheet.Open();

            Application.EnableVisualStyles();
            CreateBallonDlg cCreateBallonDlg = new CreateBallonDlg(DicUserDefine);
            FormUtilities.ReparentForm(cCreateBallonDlg);
            System.Windows.Forms.Application.Run(cCreateBallonDlg);
            if (cCreateBallonDlg.DialogResult == DialogResult.Yes)
            {
                Is_Keep = cCreateBallonDlg.Is_Keep;
                cCreateBallonDlg.Dispose();
            }
            else
            {
                ((NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[0])).Open();
                cCreateBallonDlg.Dispose();
                theProgram.Dispose();
                return(retValue);
            }


            #region 前置處理
            string         Is_Local        = Environment.GetEnvironmentVariable("UGII_ENV_FILE");
            CoordinateData cCoordinateData = new CoordinateData();
            if (Is_Local != null)
            {
                //取得圖紙範圍資料Data
                status = CaxGetDatData.GetDraftingCoordinateData(out cCoordinateData);
                if (!status)
                {
                    return(retValue);
                }
            }
            else
            {
                string DraftingCoordinate_dat  = "DraftingCoordinate.dat";
                string DraftingCoordinate_Path = string.Format(@"{0}\{1}", "D:", DraftingCoordinate_dat);
                CaxPublic.ReadCoordinateData(DraftingCoordinate_Path, out cCoordinateData);
            }

            //圖紙長、高
            double SheetLength = 0;
            double SheetHeight = 0;


            //取得最後一顆泡泡的數字
            int MaxBallonNum;
            try
            {
                MaxBallonNum = Convert.ToInt32(workPart.GetStringAttribute(CaxME.DimenAttr.BallonNum));
            }
            catch (System.Exception ex)
            {
                MaxBallonNum = 0;
            }
            #endregion

            //重新產生泡泡
            if (Is_Keep == false)
            {
                #region 刪除全部泡泡
                IdSymbolCollection BallonCollection = workPart.Annotations.IdSymbols;
                IdSymbol[]         BallonAry        = BallonCollection.ToArray();
                foreach (IdSymbol i in BallonAry)
                {
                    try
                    {
                        i.GetStringAttribute("BalloonAtt");
                    }
                    catch (System.Exception ex)
                    {
                        continue;
                    }
                    CaxPublic.DelectObject(i);
                }
                workPart.DeleteAttributeByTypeAndTitle(NXObject.AttributeType.String, "BALLONNUM");
                #endregion


                #region 存DicDimenData(string=檢具名稱,DimenData=尺寸物件、泡泡座標)
                DefineParam.DicDimenData = new Dictionary <string, List <DimenData> >();
                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    //string SheetName = "S" + (i + 1).ToString();
                    //CaxME.SheetRename(CurrentSheet, SheetName);
                    CurrentSheet.Open();

                    if (i == 0)
                    {
                        DefineParam.FirstDrawingSheet = CurrentSheet;
                    }

                    //取得圖紙長、高
                    SheetLength = CurrentSheet.Length;
                    SheetHeight = CurrentSheet.Height;

                    //DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects();
                    NXObject[] SheetObj = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                    foreach (NXObject singleObj in SheetObj)
                    {
                        #region 刪除尺寸數量產生的文字(ex:a-c)
                        string dicount = "", chekcLevel = "";
                        try
                        {
                            dicount = singleObj.GetStringAttribute(CaxME.DimenAttr.DiCount);
                        }
                        catch (System.Exception ex)
                        {
                            dicount = "";
                        }
                        try
                        {
                            chekcLevel = singleObj.GetStringAttribute(CaxME.DimenAttr.CheckLevel);
                        }
                        catch (System.Exception ex)
                        {
                            chekcLevel = "";
                        }
                        if (dicount != "" && chekcLevel == "")
                        {
                            CaxPublic.DelectObject(singleObj);
                        }
                        #endregion

                        string Gauge = "", AssignExcelType = "";
                        #region 判斷是否有屬性,沒有屬性就跳下一個
                        try{ AssignExcelType = singleObj.GetStringAttribute(CaxME.DimenAttr.AssignExcelType); }
                        catch (System.Exception ex) { continue; }
                        try{ Gauge = singleObj.GetStringAttribute(CaxME.DimenAttr.Gauge); }
                        catch (System.Exception ex) { }
                        #endregion

                        //事先塞入該尺寸所在Sheet
                        singleObj.SetAttribute("SheetName", CurrentSheet.Name);

                        //string DimeType = singleObj.GetType().ToString();
                        CaxME.BoxCoordinate cBoxCoordinate = new CaxME.BoxCoordinate();
                        //GetTextBoxCoordinate(DimeType, singleObj, out cBoxCoordinate);

                        //可以將NXOpen直接轉型成Annotation
                        CaxME.GetTextBoxCoordinate(((NXOpen.Annotations.Annotation)singleObj).Tag, out cBoxCoordinate);

                        #region 計算泡泡座標
                        DimenData sDimenData = new DimenData();
                        sDimenData.Obj          = singleObj;
                        sDimenData.CurrentSheet = CurrentSheet;
                        Functions.CalculateBallonCoordinate(cBoxCoordinate, ref sDimenData);
                        #endregion

                        if (Gauge != "")
                        {
                            List <DimenData> ListDimenData = new List <DimenData>();
                            status = DefineParam.DicDimenData.TryGetValue(Gauge, out ListDimenData);
                            if (!status)
                            {
                                ListDimenData = new List <DimenData>();
                            }
                            ListDimenData.Add(sDimenData);
                            DefineParam.DicDimenData[Gauge] = ListDimenData;
                        }
                    }
                }
                #endregion

                //插入泡泡
                int BallonNum = 0;
                InsertBallon(ref BallonNum, cCoordinateData, SheetHeight, SheetLength, "BalloonAtt");

                //將最後一顆泡泡的數字插入零件中
                workPart.SetAttribute(CaxME.DimenAttr.BallonNum, BallonNum.ToString());
            }
            //保留泡泡
            else
            {
                #region 存DicDimenData(string=檢具名稱,DimenData=尺寸物件、泡泡座標)
                DefineParam.DicDimenData = new Dictionary <string, List <DimenData> >();
                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    CurrentSheet.Open();

                    if (i == 0)
                    {
                        DefineParam.FirstDrawingSheet = CurrentSheet;
                    }

                    //取得圖紙長、高
                    SheetLength = CurrentSheet.Length;
                    SheetHeight = CurrentSheet.Height;

                    //DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects();
                    NXObject[] SheetObj = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                    foreach (NXObject singleObj in SheetObj)
                    {
                        //判斷是否取到舊的尺寸,如果是就跳下一個
                        string OldBallonNum = "";
                        try
                        {
                            OldBallonNum = singleObj.GetStringAttribute(CaxME.DimenAttr.BallonNum);
                            continue;
                        }
                        catch (System.Exception ex) {  }

                        //判斷是否有屬性,沒有屬性就跳下一個
                        string Gauge = "", AssignExcelType = "";
                        try { AssignExcelType = singleObj.GetStringAttribute(CaxME.DimenAttr.AssignExcelType); }
                        catch (System.Exception ex) { continue; }

                        try { Gauge = singleObj.GetStringAttribute(CaxME.DimenAttr.Gauge); }
                        catch (System.Exception ex) { }

                        //事先塞入該尺寸所在Sheet
                        singleObj.SetAttribute("SheetName", CurrentSheet.Name);

                        //string DimeType = "";
                        //DimeType = singleObj.GetType().ToString();
                        CaxME.BoxCoordinate cBoxCoordinate = new CaxME.BoxCoordinate();

                        //GetTextBoxCoordinate(DimeType, singleObj, out cBoxCoordinate);
                        //CaxLog.ShowListingWindow(cBoxCoordinate.lower_left[0].ToString());
                        CaxME.GetTextBoxCoordinate(((NXOpen.Annotations.Annotation)singleObj).Tag, out cBoxCoordinate);
                        //CaxLog.ShowListingWindow(cBoxCoordinate.lower_left[0].ToString());
                        #region 計算泡泡座標
                        DimenData sDimenData = new DimenData();
                        sDimenData.Obj          = singleObj;
                        sDimenData.CurrentSheet = CurrentSheet;
                        Functions.CalculateBallonCoordinate(cBoxCoordinate, ref sDimenData);
                        #endregion

                        if (Gauge != "")
                        {
                            List <DimenData> ListDimenData = new List <DimenData>();
                            status = DefineParam.DicDimenData.TryGetValue(Gauge, out ListDimenData);
                            if (!status)
                            {
                                ListDimenData = new List <DimenData>();
                            }
                            ListDimenData.Add(sDimenData);
                            DefineParam.DicDimenData[Gauge] = ListDimenData;
                        }
                    }
                }
                #endregion

                if (DefineParam.DicDimenData.Count != 0)
                {
                    //插入泡泡
                    InsertBallon(ref MaxBallonNum, cCoordinateData, SheetHeight, SheetLength, "BalloonAtt");

                    //將最後一顆泡泡的數字插入零件中
                    workPart.SetAttribute(CaxME.DimenAttr.BallonNum, MaxBallonNum.ToString());
                }
            }

            //切回第一張Sheet
            DefineParam.FirstDrawingSheet.Open();

            MessageBox.Show("完成");
            theProgram.Dispose();
        }
        catch (NXOpen.NXException ex)
        {
            // ---- Enter your exception handling code here -----
            CaxLog.ShowListingWindow(ex.ToString());
        }
        return(retValue);
    }
Exemplo n.º 17
0
        private void Upload_Click(object sender, EventArgs e)
        {
            try
            {
                int          SheetCount  = 0;
                NXOpen.Tag[] SheetTagAry = null;
                theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry);
                //判斷是否需要出PDF
                List <DrawingSheet> drawingSheets = new List <DrawingSheet>();
                for (int j = 0; j < SheetCount; j++)
                {
                    drawingSheets.Add((DrawingSheet)NXObjectManager.Get(SheetTagAry[j]));
                }
                if (this.ExportPDF.Checked)
                {
                    if (!Directory.Exists(this.L_Folder))
                    {
                        Directory.CreateDirectory(this.L_Folder);
                    }
                    string str1 = string.Format(@"{0}\{1}.pdf", this.L_Folder, Path.GetFileNameWithoutExtension(FixInsUploadDlg.displayPart.FullPath));
                    CaxME.CreateOISPDF(drawingSheets, str1);

                    //傳OIS圖到SERVER
                    if (!Directory.Exists(S_Folder))
                    {
                        System.IO.Directory.CreateDirectory(S_Folder);
                    }
                    CaxPublic.DirectoryCopy(this.L_Folder, S_Folder, true);
                }
                //取得WorkPart資訊並檢查資料是否完整
                DadDimension.WorkPartAttribute sWorkPartAttribute = new DadDimension.WorkPartAttribute();
                status = DadDimension.GetWorkPartAttribute(workPart, out sWorkPartAttribute);
                if (!status)
                {
                    if (this.ExportPDF.Checked)
                    {
                        MessageBox.Show("量測資訊不足,僅上傳PDF檔案,上傳完成!");
                    }
                    else
                    {
                        MessageBox.Show("量測資訊不足,無法上傳資料!");
                    }
                    this.Close();
                    return;
                }
                //if (sWorkPartAttribute.draftingVer == "" || sWorkPartAttribute.draftingDate == "" ||
                //    sWorkPartAttribute.partDescription == "" || sWorkPartAttribute.material == "")
                //{
                //    MessageBox.Show("量測資訊不足");
                //    this.Close();
                //    return;
                //}

                //取得所有量測尺寸資料

                List <DadDimension> listDimensionData = new List <DadDimension>();
                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    CurrentSheet.Open();
                    CurrentSheet.View.UpdateDisplay();
                    DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects();
                    status = Com_FixDimension.RecordFixDimension(SheetObj, sWorkPartAttribute, ref listDimensionData);
                    if (!status)
                    {
                        this.Close();
                        return;
                    }
                }

                //將圖片存到本機Globaltek內
                for (int i = 0; i < PicNameStr.Length; i++)
                {
                    string destFileName = string.Format(@"{0}\{1}", this.L_Folder, PicNameStr[i]);
                    File.Copy(PicPathStr[i], destFileName, true);
                }



                //由料號查Com_PEMain
                Com_PEMain cCom_PEMain = new Com_PEMain();
                status = CaxSQL.GetCom_PEMain(cCaxUpLoad.CusName, cCaxUpLoad.PartName, cCaxUpLoad.CusRev, cCaxUpLoad.OpRev, out cCom_PEMain);
                if (!status)
                {
                    return;
                }
                //由Com_PEMain和Op查Com_PartOperation
                Com_PartOperation cCom_PartOperation = new Com_PartOperation();
                status = CaxSQL.GetCom_PartOperation(cCom_PEMain, cCaxUpLoad.OpNum, out cCom_PartOperation);
                if (!status)
                {
                    return;
                }

                #region 比對資料庫FixInspection是否有同筆數據
                bool Is_Exit = true;
                Com_FixInspection cCom_FixInspection = new Com_FixInspection();
                CaxSQL.GetCom_FixInspection(cCom_PartOperation, Path.GetFileNameWithoutExtension(workPart.FullPath), out cCom_FixInspection);
                if (cCom_FixInspection == null)
                {
                    Is_Exit = false;
                }

                if (Is_Exit && eTaskDialogResult.Yes == CaxPublic.ShowMsgYesNo("此檢、治具已存在上一筆資料,是否更新?"))
                {
                    #region 刪除Com_FixDimension
                    IList <Com_FixDimension> listComFixDimension = new List <Com_FixDimension>();
                    CaxSQL.GetListCom_FixDimension(cCom_FixInspection, out listComFixDimension);
                    foreach (Com_FixDimension i in listComFixDimension)
                    {
                        CaxSQL.Delete <Com_FixDimension>(i);
                    }
                    #endregion
                    #region 刪除Com_FixInspection
                    CaxSQL.Delete <Com_FixInspection>(cCom_FixInspection);
                    #endregion
                    Is_Exit = false;
                }

                if (!Is_Exit)
                {
                    cCom_FixInspection = new Com_FixInspection()
                    {
                        comPartOperation  = cCom_PartOperation,
                        fixinsDescription = this.Desc.Text,
                        fixinsERP         = this.ERPNo.Text,
                        fixinsNo          = this.FixInsNo.Text,
                        fixPicPath        = this.S_PicPath,
                        fixPartName       = Path.GetFileNameWithoutExtension(FixInsUploadDlg.workPart.FullPath)
                    };

                    IList <Com_FixDimension> listCom_FixDimension = new List <Com_FixDimension>();
                    foreach (DadDimension i in listDimensionData)
                    {
                        //Com_FixDimension cCom_FixDimension = new Com_FixDimension()
                        //{
                        //    comFixInspection = comFixInspection
                        //};
                        ////cCom_FixDimension.comFixInspection = comFixInspection;

                        //CaxME.MappingData(i, ref cCom_FixDimension);
                        //listCom_FixDimension.Add(cCom_FixDimension);
                        Com_FixDimension cCom_FixDimension = new Com_FixDimension();
                        cCom_FixDimension.MappingData(i);
                        cCom_FixDimension.comFixInspection = cCom_FixInspection;
                        listCom_FixDimension.Add(cCom_FixDimension);
                    }
                    cCom_FixInspection.comFixDimension = listCom_FixDimension;

                    CaxSQL.Save <Com_FixInspection>(cCom_FixInspection);

                    //傳OIS圖到SERVER
                    if (!Directory.Exists(S_Folder))
                    {
                        System.IO.Directory.CreateDirectory(S_Folder);
                    }
                    CaxPublic.DirectoryCopy(this.L_Folder, S_Folder, true);
                }

                #endregion

                MessageBox.Show("上傳完成");
                base.Close();
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemplo n.º 18
0
        private void TEUploadDlg_Load(object sender, EventArgs e)
        {
            //取得METEDownload_Upload.dat
            CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path);

            //取得料號
            PartNoLabel.Text = Path.GetFileNameWithoutExtension(displayPart.FullPath).Split('_')[0];
            OISLabel.Text    = Path.GetFileNameWithoutExtension(displayPart.FullPath).Split('_')[1];

            //將Local_Folder_OIS先暫存起來,然後改變成Server路徑
            tempLocal_Folder_CAM = cMETE_Download_Upload_Path.Local_Folder_CAM;

            CaxPublic.GetAllPath("TE", displayPart.FullPath, ref cMETE_Download_Upload_Path);


            /*
             * //拆零件路徑字串取得客戶名稱、料號、版本
             * string PartFullPath = displayPart.FullPath;
             * string[] SplitPath = PartFullPath.Split('\\');
             * PartInfo.CusName = SplitPath[3];
             * PartInfo.PartNo = SplitPath[4];
             * PartInfo.CusRev = SplitPath[5];
             * PartInfo.OpNum = Regex.Replace(Path.GetFileNameWithoutExtension(displayPart.FullPath).Split('_')[1], "[^0-9]", "");
             *
             #region 取代Server路徑字串
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[Server_IP]", cMETE_Download_Upload_Path.Server_IP);
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[CusName]", PartInfo.CusName);
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[PartNo]", PartInfo.PartNo);
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[CusRev]", PartInfo.CusRev);
             * Server_OP_Folder = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OpNum);
             #endregion
             *
             #region 取代Local路徑字串
             * //將Local_Folder_OIS先暫存起來,然後改變成Server路徑
             * tempLocal_Folder_CAM = cMETE_Download_Upload_Path.Local_Folder_CAM;
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[Local_IP]", cMETE_Download_Upload_Path.Local_IP);
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[CusName]", PartInfo.CusName);
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[PartNo]", PartInfo.PartNo);
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[CusRev]", PartInfo.CusRev);
             * cMETE_Download_Upload_Path.Local_Folder_CAM = cMETE_Download_Upload_Path.Local_Folder_CAM.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Local_ShareStr);
             * cMETE_Download_Upload_Path.Local_Folder_CAM = cMETE_Download_Upload_Path.Local_Folder_CAM.Replace("[Oper1]", PartInfo.OpNum);
             #endregion
             */

            DicPartDirData = new Dictionary <string, PartDirData>();
            #region 處理Part的路徑
            //預先加入總組立檔
            PartDirData sPartDirData = new PartDirData();
            sPartDirData.PartLocalDir   = displayPart.FullPath;
            sPartDirData.PartServer1Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, Path.GetFileName(displayPart.FullPath));
            //sPartDirData.PartServer2Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OIS);
            DicPartDirData.Add(Path.GetFileNameWithoutExtension(displayPart.FullPath), sPartDirData);
            listView1.Items.Add(Path.GetFileName(displayPart.FullPath));

            //加入Comp資訊
            NXOpen.Assemblies.ComponentAssembly casm             = displayPart.ComponentAssembly;
            List <NXOpen.Assemblies.Component>  ListChildrenComp = new List <NXOpen.Assemblies.Component>();
            CaxAsm.GetCompChildren(casm.RootComponent, ref ListChildrenComp);
            foreach (NXOpen.Assemblies.Component i in ListChildrenComp)
            {
                sPartDirData = new PartDirData();

                //判斷Server是否已存在此檔案,如果有就不上傳
                string ServerPartPath = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, Path.GetFileName(((Part)i.Prototype).FullPath));
                if (File.Exists(ServerPartPath))
                {
                    if (!((Part)i.Prototype).FullPath.Contains(PartInfo.OpNum))
                    {
                        continue;
                    }
                }
                sPartDirData.PartLocalDir   = ((Part)i.Prototype).FullPath;
                sPartDirData.PartServer1Dir = ServerPartPath;
                DicPartDirData.Add(i.Name, sPartDirData);
                listView1.Items.Add(Path.GetFileName(((Part)i.Prototype).FullPath));
                //sPartDirData.PartServer2Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OIS);
            }
            //foreach (NXOpen.Assemblies.Component i in ListChildrenComp)
            //{
            //    sPartDirData = new PartDirData();
            //    sPartDirData.PartLocalDir = ((Part)i.Prototype).FullPath;
            //    sPartDirData.PartServer1Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, Path.GetFileName(((Part)i.Prototype).FullPath));
            //    //sPartDirData.PartServer2Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OIS);
            //    DicPartDirData.Add(i.Name, sPartDirData);
            //    listView1.Items.Add(Path.GetFileName(((Part)i.Prototype).FullPath));
            //}
            #endregion

            #region 處理Excel的路徑
            string[] FolderFile        = System.IO.Directory.GetFileSystemEntries(cMETE_Download_Upload_Path.Local_Folder_CAM, "*.xls");
            string   Server_Folder_CAM = "";
            Server_Folder_CAM = tempLocal_Folder_CAM.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Server_ShareStr);
            Server_Folder_CAM = Server_Folder_CAM.Replace("[Oper1]", PartInfo.OpNum);
            long FileTime = new long();
            for (int i = 0; i < FolderFile.Length; i++)
            {
                System.IO.FileInfo ExcelInfo = new System.IO.FileInfo(FolderFile[i]);
                if (ExcelInfo.LastAccessTime.ToFileTime() > FileTime)
                {
                    FileTime = ExcelInfo.LastAccessTime.ToFileTime();
                    sExcelDirData.ExcelShopDocLocalDir  = FolderFile[i];
                    sExcelDirData.ExcelShopDocServerDir = string.Format(@"{0}\{1}", Server_Folder_CAM, ExcelInfo.Name);
                }
            }
            if (File.Exists(sExcelDirData.ExcelShopDocLocalDir))
            {
                listView1.Items.Add(Path.GetFileName(sExcelDirData.ExcelShopDocLocalDir));
            }
            #endregion

            #region 處理NC程式的路徑
            string Local_NC_Folder = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Local_Folder_CAM, "NC");
            if (Directory.Exists(Local_NC_Folder))
            {
                sNCProgramDirData.NCProgramLocalDir  = Local_NC_Folder;
                sNCProgramDirData.NCProgramServerDir = string.Format(@"{0}\{1}", Server_Folder_CAM, "NC");
                listView1.Items.Add("NC資料夾");
            }
            #endregion
        }
Exemplo n.º 19
0
        private void MEUploadDlg_Load(object sender, EventArgs e)
        {
            //取得METEDownload_Upload.dat
            CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path);

            //取得料號
            PartNoLabel.Text = Path.GetFileNameWithoutExtension(displayPart.FullPath).Split('_')[0];
            OISLabel.Text    = Path.GetFileNameWithoutExtension(displayPart.FullPath).Split('_')[1];

            //將Local_Folder_OIS先暫存起來,然後改變成Server路徑
            tempLocal_Folder_OIS = cMETE_Download_Upload_Path.Local_Folder_OIS;

            CaxPublic.GetAllPath("ME", displayPart.FullPath, ref cMETE_Download_Upload_Path);

            /*
             * //拆零件路徑字串取得客戶名稱、料號、版本
             * string PartFullPath = displayPart.FullPath;
             * string[] SplitPath = PartFullPath.Split('\\');
             * PartInfo.CusName = SplitPath[3];
             * PartInfo.PartNo = SplitPath[4];
             * PartInfo.CusRev = SplitPath[5];
             * PartInfo.OpNum = Path.GetFileNameWithoutExtension(displayPart.FullPath).Split(new string[] { "OIS" }, StringSplitOptions.RemoveEmptyEntries)[1];
             *
             #region 取代Server路徑字串
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[Server_IP]", cMETE_Download_Upload_Path.Server_IP);
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[CusName]", PartInfo.CusName);
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[PartNo]", PartInfo.PartNo);
             * cMETE_Download_Upload_Path.Server_ShareStr = cMETE_Download_Upload_Path.Server_ShareStr.Replace("[CusRev]", PartInfo.CusRev);
             * Server_OP_Folder = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OpNum);
             #endregion
             *
             #region 取代Local路徑字串
             * //將Local_Folder_OIS先暫存起來,然後改變成Server路徑
             * tempLocal_Folder_OIS = cMETE_Download_Upload_Path.Local_Folder_OIS;
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[Local_IP]", cMETE_Download_Upload_Path.Local_IP);
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[CusName]", PartInfo.CusName);
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[PartNo]", PartInfo.PartNo);
             * cMETE_Download_Upload_Path.Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr.Replace("[CusRev]", PartInfo.CusRev);
             * cMETE_Download_Upload_Path.Local_Folder_OIS = cMETE_Download_Upload_Path.Local_Folder_OIS.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Local_ShareStr);
             * cMETE_Download_Upload_Path.Local_Folder_OIS = cMETE_Download_Upload_Path.Local_Folder_OIS.Replace("[Oper1]", PartInfo.OpNum);
             #endregion
             */

            DicPartDirData = new Dictionary <string, PartDirData>();
            #region 處理Part的路徑
            //預先加入總組立檔
            PartDirData sPartDirData = new PartDirData();
            sPartDirData.PartLocalDir   = displayPart.FullPath;
            sPartDirData.PartServer1Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, Path.GetFileName(displayPart.FullPath));
            //sPartDirData.PartServer2Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OIS);
            DicPartDirData.Add(Path.GetFileNameWithoutExtension(displayPart.FullPath), sPartDirData);
            listView1.Items.Add(Path.GetFileName(displayPart.FullPath));

            //加入Comp資訊
            NXOpen.Assemblies.ComponentAssembly casm = displayPart.ComponentAssembly;
            //NXOpen.Assemblies.Component[] compary = casm.RootComponent.GetChildren();
            List <NXOpen.Assemblies.Component> ListChildrenComp = new List <NXOpen.Assemblies.Component>();
            CaxAsm.GetCompChildren(casm.RootComponent, ref ListChildrenComp);
            foreach (NXOpen.Assemblies.Component i in ListChildrenComp)
            {
                sPartDirData = new PartDirData();

                //判斷Server是否已存在此檔案,如果有就不上傳
                string ServerPartPath = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, Path.GetFileName(((Part)i.Prototype).FullPath));
                if (File.Exists(ServerPartPath))
                {
                    if (!((Part)i.Prototype).FullPath.Contains(PartInfo.OpNum))
                    {
                        continue;
                    }
                }
                sPartDirData.PartLocalDir   = ((Part)i.Prototype).FullPath;
                sPartDirData.PartServer1Dir = ServerPartPath;
                DicPartDirData.Add(i.Name, sPartDirData);
                listView1.Items.Add(Path.GetFileName(((Part)i.Prototype).FullPath));
                //sPartDirData.PartServer2Dir = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Server_ShareStr, "OP" + PartInfo.OIS);
            }
            #endregion

            #region 處理Excel的路徑
            string[] FolderFile = System.IO.Directory.GetFileSystemEntries(cMETE_Download_Upload_Path.Local_Folder_OIS, "*.xls");
            //篩選出IPQC、SelfCheck
            List <string> List_ExcelIPQC      = new List <string>();
            List <string> List_ExcelSelfCheck = new List <string>();
            List <string> List_ExcelIQC       = new List <string>();
            List <string> List_ExcelFAI       = new List <string>();
            foreach (string i in FolderFile)
            {
                if (i.Contains("IPQC"))
                {
                    List_ExcelIPQC.Add(i);
                }
                if (i.Contains("SelfCheck"))
                {
                    List_ExcelSelfCheck.Add(i);
                }
                if (i.Contains("IQC"))
                {
                    List_ExcelIQC.Add(i);
                }
                if (i.Contains("FAI"))
                {
                    List_ExcelFAI.Add(i);
                }
            }

            long ExcelIPQCFileTime      = new long();
            long ExcelSelfCheckFileTime = new long();
            long ExcelIQCFileTime       = new long();
            long ExcelFAIFileTime       = new long();

            #region 處理IPQC
            foreach (string i in List_ExcelIPQC)
            {
                System.IO.FileInfo ExcelInfo = new System.IO.FileInfo(i);
                if (ExcelInfo.LastAccessTime.ToFileTime() > ExcelIPQCFileTime)
                {
                    ExcelIPQCFileTime = ExcelInfo.LastAccessTime.ToFileTime();
                    sExcelDirData.ExcelIPQCLocalDir = i;
                    string Server_Folder_OIS = "";
                    Server_Folder_OIS = tempLocal_Folder_OIS.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Server_ShareStr);
                    Server_Folder_OIS = Server_Folder_OIS.Replace("[Oper1]", PartInfo.OpNum);
                    sExcelDirData.ExcelIPQCServerDir = string.Format(@"{0}\{1}", Server_Folder_OIS, ExcelInfo.Name);
                }
            }
            if (List_ExcelIPQC.Count != 0)
            {
                listView1.Items.Add(Path.GetFileName(sExcelDirData.ExcelIPQCLocalDir));
            }
            #endregion

            #region 處理SelfCheck
            foreach (string i in List_ExcelSelfCheck)
            {
                System.IO.FileInfo ExcelInfo = new System.IO.FileInfo(i);
                if (ExcelInfo.LastAccessTime.ToFileTime() > ExcelSelfCheckFileTime)
                {
                    ExcelSelfCheckFileTime = ExcelInfo.LastAccessTime.ToFileTime();
                    sExcelDirData.ExcelSelfCheckLocalDir = i;
                    string Server_Folder_OIS = "";
                    Server_Folder_OIS = tempLocal_Folder_OIS.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Server_ShareStr);
                    Server_Folder_OIS = Server_Folder_OIS.Replace("[Oper1]", PartInfo.OpNum);
                    sExcelDirData.ExcelSelfCheckServerDir = string.Format(@"{0}\{1}", Server_Folder_OIS, ExcelInfo.Name);
                }
            }
            if (List_ExcelSelfCheck.Count != 0)
            {
                listView1.Items.Add(Path.GetFileName(sExcelDirData.ExcelSelfCheckLocalDir));
            }
            #endregion

            #region 處理IQC
            foreach (string i in List_ExcelIQC)
            {
                System.IO.FileInfo ExcelInfo = new System.IO.FileInfo(i);
                if (ExcelInfo.LastAccessTime.ToFileTime() > ExcelIQCFileTime)
                {
                    ExcelIQCFileTime = ExcelInfo.LastAccessTime.ToFileTime();
                    sExcelDirData.ExcelIQCLocalDir = i;
                    string Server_Folder_OIS = "";
                    Server_Folder_OIS = tempLocal_Folder_OIS.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Server_ShareStr);
                    Server_Folder_OIS = Server_Folder_OIS.Replace("[Oper1]", PartInfo.OpNum);
                    sExcelDirData.ExcelIQCServerDir = string.Format(@"{0}\{1}", Server_Folder_OIS, ExcelInfo.Name);
                }
            }
            if (List_ExcelIQC.Count != 0)
            {
                listView1.Items.Add(Path.GetFileName(sExcelDirData.ExcelIQCLocalDir));
            }
            #endregion

            #region 處理FAI
            foreach (string i in List_ExcelFAI)
            {
                System.IO.FileInfo ExcelInfo = new System.IO.FileInfo(i);
                if (ExcelInfo.LastAccessTime.ToFileTime() > ExcelFAIFileTime)
                {
                    ExcelFAIFileTime = ExcelInfo.LastAccessTime.ToFileTime();
                    sExcelDirData.ExcelFAILocalDir = i;
                    string Server_Folder_OIS = "";
                    Server_Folder_OIS = tempLocal_Folder_OIS.Replace("[Local_ShareStr]", cMETE_Download_Upload_Path.Server_ShareStr);
                    Server_Folder_OIS = Server_Folder_OIS.Replace("[Oper1]", PartInfo.OpNum);
                    sExcelDirData.ExcelFAIServerDir = string.Format(@"{0}\{1}", Server_Folder_OIS, ExcelInfo.Name);
                }
            }
            if (List_ExcelFAI.Count != 0)
            {
                listView1.Items.Add(Path.GetFileName(sExcelDirData.ExcelFAILocalDir));
            }
            #endregion
            #endregion
        }
        private void OK_Click(object sender, EventArgs e)
        {
            //抓取目前圖紙數量和Tag
            int SheetCount = 0;

            NXOpen.Tag[] SheetTagAry = null;
            theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry);
            //取得最後一顆泡泡的數字
            int MaxBallonNum;

            try
            {
                MaxBallonNum = Convert.ToInt32(workPart.GetStringAttribute(CaxME.DimenAttr.BallonNum));
            }
            catch (System.Exception ex)
            {
                MaxBallonNum = 0;
            }

            if (chb_Regeneration.Checked == true)
            {
                #region 刪除全部泡泡
                IdSymbolCollection BallonCollection = workPart.Annotations.IdSymbols;
                IdSymbol[]         BallonAry        = BallonCollection.ToArray();
                foreach (IdSymbol i in BallonAry)
                {
                    try
                    {
                        i.GetStringAttribute("BalloonAtt");
                    }
                    catch (System.Exception ex)
                    {
                        continue;
                    }
                    CaxPublic.DelectObject(i);
                }
                workPart.DeleteAttributeByTypeAndTitle(NXObject.AttributeType.String, "BALLONNUM");
                #endregion

                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    CurrentSheet.Open();
                    if (i == 0)
                    {
                        Variables.FirstDrawingSheet = CurrentSheet;
                    }

                    int        BallonNum = 0;
                    NXObject[] SheetObj  = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                    foreach (NXObject singleObj in SheetObj)
                    {
                        string diCount = "", fixDiemnsion = "";
                        #region 刪除尺寸數量產生的文字(ex:a-c)
                        try
                        {
                            diCount = singleObj.GetStringAttribute(CaxME.DimenAttr.DiCount);
                        }
                        catch (System.Exception ex)
                        {
                            diCount = "";
                        }
                        try
                        {
                            fixDiemnsion = singleObj.GetStringAttribute(CaxME.DimenAttr.FixDimension);
                        }
                        catch (System.Exception ex)
                        {
                            fixDiemnsion = "";
                        }
                        if (diCount != "" && fixDiemnsion == "")
                        {
                            CaxPublic.DelectObject(singleObj);
                        }
                        #endregion

                        string AssignExcelType = "";
                        #region 判斷是否有屬性,沒有屬性就跳下一個
                        try { AssignExcelType = singleObj.GetStringAttribute(CaxME.DimenAttr.FixDimension); }
                        catch (System.Exception ex) { continue; }
                        #endregion


                        //事先塞入該尺寸所在Sheet
                        singleObj.SetAttribute("SheetName", CurrentSheet.Name);

                        CaxME.BoxCoordinate cBoxCoordinate = new CaxME.BoxCoordinate();
                        CaxME.GetTextBoxCoordinate(singleObj.Tag, out cBoxCoordinate);

                        #region 計算泡泡座標
                        CaxME.DimenData sDimenData = new CaxME.DimenData();
                        sDimenData.Obj          = singleObj;
                        sDimenData.CurrentSheet = CurrentSheet;
                        CaxME.CalculateBallonCoordinate(cBoxCoordinate, ref sDimenData);
                        #endregion

                        sDimenData.CurrentSheet.Open();

                        Point3d BallonLocation = new Point3d();
                        BallonLocation.X = sDimenData.LocationX;
                        BallonLocation.Y = sDimenData.LocationY;

                        BallonNum++;
                        InsertBalloon(BallonNum, diCount, BallonLocation);
                        singleObj.SetAttribute(CaxME.DimenAttr.BallonNum, BallonNum.ToString());
                    }


                    //將最後一顆泡泡的數字插入零件中
                    workPart.SetAttribute(CaxME.DimenAttr.BallonNum, BallonNum.ToString());
                }
            }
            else if (chb_keepOrigination.Checked == true)
            {
                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    CurrentSheet.Open();
                    if (i == 0)
                    {
                        Variables.FirstDrawingSheet = CurrentSheet;
                    }

                    NXObject[] SheetObj = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                    foreach (NXObject singleObj in SheetObj)
                    {
                        //判斷是否取到舊的尺寸,如果是就跳下一個
                        string OldBallonNum = "";
                        try
                        {
                            OldBallonNum = singleObj.GetStringAttribute(CaxME.DimenAttr.BallonNum);
                            continue;
                        }
                        catch (System.Exception ex) { }

                        string AssignExcelType = "";
                        #region 判斷是否有屬性,沒有屬性就跳下一個
                        try { AssignExcelType = singleObj.GetStringAttribute(CaxME.DimenAttr.FixDimension); }
                        catch (System.Exception ex) { continue; }
                        #endregion

                        //事先塞入該尺寸所在Sheet
                        singleObj.SetAttribute("SheetName", CurrentSheet.Name);

                        CaxME.BoxCoordinate cBoxCoordinate = new CaxME.BoxCoordinate();
                        CaxME.GetTextBoxCoordinate(singleObj.Tag, out cBoxCoordinate);

                        #region 計算泡泡座標
                        CaxME.DimenData sDimenData = new CaxME.DimenData();
                        sDimenData.Obj          = singleObj;
                        sDimenData.CurrentSheet = CurrentSheet;
                        CaxME.CalculateBallonCoordinate(cBoxCoordinate, ref sDimenData);
                        #endregion

                        sDimenData.CurrentSheet.Open();

                        Point3d BallonLocation = new Point3d();
                        BallonLocation.X = sDimenData.LocationX;
                        BallonLocation.Y = sDimenData.LocationY;

                        MaxBallonNum++;
                        string diCount = "";
                        try
                        {
                            diCount = singleObj.GetStringAttribute(CaxME.DimenAttr.DiCount);
                        }
                        catch (System.Exception ex)
                        {
                            diCount = "1";
                        }

                        InsertBalloon(MaxBallonNum, diCount, BallonLocation);
                        singleObj.SetAttribute(CaxME.DimenAttr.BallonNum, MaxBallonNum.ToString());
                    }
                    //將最後一顆泡泡的數字插入零件中
                    workPart.SetAttribute(CaxME.DimenAttr.BallonNum, MaxBallonNum.ToString());
                }
            }
            else if (chb_UserDefine.Checked == true)
            {
                //判斷所有的泡泡是否有重複
                List <string> ListIsRepeat = new List <string>();
                foreach (GridRow i in SGC.PrimaryGrid.Rows)
                {
                    if (i.Cells["自定泡泡號"].Value.ToString() == "")
                    {
                        continue;
                    }
                    if (ListIsRepeat.Contains(i.Cells["自定泡泡號"].Value.ToString()))
                    {
                        MessageBox.Show("泡泡號【" + i.Cells["自定泡泡號"].Value.ToString() + "】重複,請重新檢查");
                        return;
                    }
                    else
                    {
                        ListIsRepeat.Add(i.Cells["自定泡泡號"].Value.ToString());
                    }
                }
                CoordinateData cCoordinateData = new CoordinateData();
                CaxGetDatData.GetDraftingCoordinateData(out cCoordinateData);

                //開始插入自定義泡泡
                foreach (GridRow i in SGC.PrimaryGrid.Rows)
                {
                    //判斷是否有舊的泡泡,如果舊泡泡與自定的相同,則跳下一個
                    //判斷是否有舊的泡泡,如果舊泡泡與自定的不相同,則先刪除泡泡再重新產生
                    //如有Dicount也要加入一起生成


                    //如果沒有自定泡泡就跳下一個row
                    if (i.Cells["自定泡泡號"].Value.ToString() == "")
                    {
                        //判斷是否需刪除已存在的泡泡
                        NXOpen.Drawings.DrawingSheet drawingSheet1 = (NXOpen.Drawings.DrawingSheet)workPart.DrawingSheets.FindObject(i.Cells["尺寸位置"].Value.ToString());
                        string oldBalloon = "";
                        try
                        {
                            oldBalloon = ((NXObject)i.Cells["Dimension"].Value).GetStringAttribute(CaxME.DimenAttr.BallonNum);
                        }
                        catch (System.Exception ex)
                        {
                            continue;
                        }
                        NXObject[] SheetObj = CaxME.FindObjectsInView(drawingSheet1.View.Tag).ToArray();
                        CaxME.DeleteBallon(oldBalloon, SheetObj);
                        workPart.Views.Refresh();
                        //刪除屬性
                        ((NXObject)i.Cells["Dimension"].Value).DeleteAttributeByTypeAndTitle(NXObject.AttributeType.String, CaxME.DimenAttr.BallonNum);
                        ((NXObject)i.Cells["Dimension"].Value).DeleteAttributeByTypeAndTitle(NXObject.AttributeType.String, CaxME.DimenAttr.BallonLocation);
                        ((NXObject)i.Cells["Dimension"].Value).DeleteAttributeByTypeAndTitle(NXObject.AttributeType.String, CaxME.DimenAttr.SheetName);
                        continue;
                    }
                    //如果回傳False,表示舊泡泡=自定泡泡;如果回傳True,表示舊泡泡=\=自定泡泡
                    if (!JudgmentBalloon(i))
                    {
                        continue;
                    }
                    InsertBalloon(i, cCoordinateData);
                }
                if (exOnj != null)
                {
                    exOnj.Unhighlight();
                    workPart.Views.Refresh();
                }
            }

            MessageBox.Show("完成!");
        }
Exemplo n.º 21
0
        public bool Doit()
        {
            try
            {
                int module_id;
                theUfSession.UF.AskApplicationModule(out module_id);
                if (module_id != UFConstants.UF_APP_CAM)
                {
                    MessageBox.Show("請先轉換為加工模組後再執行!");
                    return(false);
                }

                if (!GetToolListPath(out ToolListPath))
                {
                    MessageBox.Show("取得ToolList.xls失敗");
                    return(false);
                }



                //取得正確路徑,拆零件路徑字串取得客戶名稱、料號、版本
                status = CaxPublic.GetAllPath("TE", displayPart.FullPath, out sPartInfo, ref cMETE_Download_Upload_Path);
                if (!status)
                {
                    Is_Local = null;
                }

                //此條件判斷是否為走系統的零件
                if (!displayPart.FullPath.Contains("Task"))
                {
                    Is_Local = null;
                }

                if (Is_Local == null)
                {
                    PartNo = Path.GetFileNameWithoutExtension(displayPart.FullPath);
                }
                else
                {
                    PartNo = sPartInfo.PartNo;
                }

                //取得所有GroupAry,用來判斷Group的Type決定是NC、Tool、Geometry
                NXOpen.CAM.NCGroup[] NCGroupAry = displayPart.CAMSetup.CAMGroupCollection.ToArray();
                //取得所有OperationAry
                NXOpen.CAM.Operation[] OperationAry = displayPart.CAMSetup.CAMOperationCollection.ToArray();

                #region 取得相關資訊,填入DIC
                DicNCData = new Dictionary <string, List <OperData> >();
                foreach (NXOpen.CAM.NCGroup ncGroup in NCGroupAry)
                {
                    if (!IsNC(ncGroup))
                    {
                        continue;
                    }

                    if (!ncGroup.Name.Contains("OP"))
                    {
                        MessageBox.Show("請先手動將Group名稱:" + ncGroup.Name + ",改為正確格式,再重新啟動功能!");
                        return(false);
                    }

                    //取得此NCGroup下的所有Oper
                    CAMObject[] OperGroup = ncGroup.GetMembers();

                    foreach (NXOpen.CAM.Operation item in OperGroup)
                    {
                        bool            cheValue;
                        List <OperData> listOperData = new List <OperData>();
                        cheValue = DicNCData.TryGetValue(ncGroup.Name, out listOperData);
                        if (!cheValue)
                        {
                            listOperData = new List <OperData>();
                        }
                        bool chk = true;
                        foreach (OperData i in listOperData)
                        {
                            if (i.ToolNumber == "T" + CaxOper.AskOperToolNumber(item))
                            {
                                chk = false;
                                break;
                            }
                        }
                        if (!chk)
                        {
                            continue;
                        }
                        OperData sOperData = new OperData();
                        GetOperToolAttr(item, ref sOperData);
                        listOperData.Add(sOperData);
                        DicNCData[ncGroup.Name] = listOperData;
                    }
                }

                //將DicNCData的key存入程式群組下拉選單中
                foreach (KeyValuePair <string, List <OperData> > kvp in DicNCData)
                {
                    comboBoxNCName.Items.Add(kvp.Key);
                }
                if (comboBoxNCName.Items.Count == 1)
                {
                    comboBoxNCName.Text = comboBoxNCName.Items[0].ToString();
                }
                #endregion
            }
            catch (System.Exception ex)
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 22
0
        private void PostProcessorDlg_Load(object sender, EventArgs e)
        {
            //取得METEDownload_Upload資料
            status = CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path);
            if (!status)
            {
                MessageBox.Show("取得METEDownload_Upload失敗");
                return;
            }

            //取得所有GroupAry,用來判斷Group的Type決定是NC、Tool、Geometry
            NCGroupAry = displayPart.CAMSetup.CAMGroupCollection.ToArray();
            //取得所有operationAry
            OperationAry = displayPart.CAMSetup.CAMOperationCollection.ToArray();

            #region 建立NC資料夾
            string Is_Local = "";
            Is_Local = Environment.GetEnvironmentVariable("UGII_ENV_FILE");
            if (Is_Local != "")
            {
                CaxPublic.GetAllPath("TE", displayPart.FullPath, ref cMETE_Download_Upload_Path);
                NCFolderPath = string.Format(@"{0}\{1}", cMETE_Download_Upload_Path.Local_Folder_CAM, "NC");
            }
            else
            {
                NCFolderPath = string.Format(@"{0}\{1}", Path.GetDirectoryName(displayPart.FullPath), "NC");
            }
            if (!Directory.Exists(NCFolderPath))
            {
                System.IO.Directory.CreateDirectory(NCFolderPath);
            }
            #endregion


            #region 取得相關資訊,填入Dic
            DicNCData = new Dictionary <string, string>();
            foreach (NXOpen.CAM.NCGroup ncGroup in NCGroupAry)
            {
                int type;
                int subtype;
                theUfSession.Obj.AskTypeAndSubtype(ncGroup.Tag, out type, out subtype);
                //判斷是否為Program群組
                if (type != UFConstants.UF_machining_task_type)
                {
                    continue;
                }

                foreach (NXOpen.CAM.Operation item in OperationAry)
                {
                    //取得父層的群組(回傳:NCGroup XXXX)
                    string NCProgramTag = item.GetParent(CAMSetup.View.ProgramOrder).ToString();
                    NCProgramTag = Regex.Replace(NCProgramTag, "[^0-9]", "");
                    if (NCProgramTag == ncGroup.Tag.ToString())
                    {
                        bool   cheValue;
                        string OperName = "";
                        cheValue = DicNCData.TryGetValue(ncGroup.Name, out OperName);
                        if (!cheValue)
                        {
                            OperName = item.Name;
                            DicNCData.Add(ncGroup.Name, OperName);
                        }
                        else
                        {
                            OperName = OperName + "," + item.Name;
                            DicNCData[ncGroup.Name] = OperName;
                        }
                    }
                }
            }
            #endregion

            //將DicProgName的key存入程式群組下拉選單中
            comboBoxNCgroup.Items.AddRange(DicNCData.Keys.ToArray());

            #region 將控制器名稱填入SuperGridPostPanel

            GridRow row = new GridRow();
            //-----暫時使用版本(路徑指向UG)
            string   TemplateRoot     = string.Format(@"{0}\{1}\{2}\{3}", Environment.GetEnvironmentVariable("UGII_BASE_DIR"), "MACH", "resource", "postprocessor");
            string   TemplatePostPath = string.Format(@"{0}\{1}", TemplateRoot, "template_post.dat");
            string[] TemplatePostData = System.IO.File.ReadAllLines(TemplatePostPath);
            //-----發佈使用版本(Server需有MACH檔案)
            //string[] TemplatePostData = CaxGetDatData.GetTemplatePostData();
            if (TemplatePostData.Length == 0)
            {
                CaxLog.ShowListingWindow("template_post.dat為空,請檢查!");
            }
            string empty = "";
            row = new GridRow(empty);
            PostPanel.Rows.Add(row);
            for (int i = 0; i < TemplatePostData.Length; i++)
            {
                if (i > 6)
                {
                    string PostName = TemplatePostData[i].Split(',')[0];
                    row = new GridRow(PostName);
                    PostPanel.Rows.Add(row);
                }
            }

            #endregion
        }
Exemplo n.º 23
0
        private void OK_Click(object sender, EventArgs e)
        {
            //抓取目前圖紙數量和Tag
            int SheetCount = 0;

            NXOpen.Tag[] SheetTagAry = null;
            theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry);
            //取得最後一顆泡泡的數字
            int MaxBallonNum;

            try
            {
                MaxBallonNum = Convert.ToInt32(workPart.GetStringAttribute(CaxME.DimenAttr.BallonNum));
            }
            catch (System.Exception ex)
            {
                MaxBallonNum = 0;
            }

            if (chb_Regeneration.Checked == true)
            {
                #region 刪除全部泡泡
                IdSymbolCollection BallonCollection = workPart.Annotations.IdSymbols;
                IdSymbol[]         BallonAry        = BallonCollection.ToArray();
                foreach (IdSymbol i in BallonAry)
                {
                    try
                    {
                        i.GetStringAttribute("BalloonAtt");
                    }
                    catch (System.Exception ex)
                    {
                        continue;
                    }
                    CaxPublic.DelectObject(i);
                }
                workPart.DeleteAttributeByTypeAndTitle(NXObject.AttributeType.String, "BALLONNUM");
                #endregion

                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    CurrentSheet.Open();
                    if (i == 0)
                    {
                        Variables.FirstDrawingSheet = CurrentSheet;
                    }

                    int        BallonNum = 0;
                    NXObject[] SheetObj  = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                    foreach (NXObject singleObj in SheetObj)
                    {
                        string diCount = "", fixDiemnsion = "";
                        #region 刪除尺寸數量產生的文字(ex:a-c)
                        try
                        {
                            diCount = singleObj.GetStringAttribute(CaxME.DimenAttr.DiCount);
                        }
                        catch (System.Exception ex)
                        {
                            diCount = "";
                        }
                        try
                        {
                            fixDiemnsion = singleObj.GetStringAttribute(CaxME.DimenAttr.FixDimension);
                        }
                        catch (System.Exception ex)
                        {
                            fixDiemnsion = "";
                        }
                        if (diCount != "" && fixDiemnsion == "")
                        {
                            CaxPublic.DelectObject(singleObj);
                        }
                        #endregion

                        string AssignExcelType = "";
                        #region 判斷是否有屬性,沒有屬性就跳下一個
                        try { AssignExcelType = singleObj.GetStringAttribute(CaxME.DimenAttr.FixDimension); }
                        catch (System.Exception ex) { continue; }
                        #endregion


                        //事先塞入該尺寸所在Sheet
                        singleObj.SetAttribute("SheetName", CurrentSheet.Name);

                        CaxME.BoxCoordinate cBoxCoordinate = new CaxME.BoxCoordinate();
                        CaxME.GetTextBoxCoordinate(singleObj.Tag, out cBoxCoordinate);

                        #region 計算泡泡座標
                        CaxME.DimenData sDimenData = new CaxME.DimenData();
                        sDimenData.Obj          = singleObj;
                        sDimenData.CurrentSheet = CurrentSheet;
                        CaxME.CalculateBallonCoordinate(cBoxCoordinate, ref sDimenData);
                        #endregion

                        sDimenData.CurrentSheet.Open();

                        Point3d BallonLocation = new Point3d();
                        BallonLocation.X = sDimenData.LocationX;
                        BallonLocation.Y = sDimenData.LocationY;

                        BallonNum++;
                        InsertBalloon(BallonNum, diCount, BallonLocation);
                        singleObj.SetAttribute(CaxME.DimenAttr.BallonNum, BallonNum.ToString());
                    }


                    //將最後一顆泡泡的數字插入零件中
                    workPart.SetAttribute(CaxME.DimenAttr.BallonNum, BallonNum.ToString());
                }
            }
            else if (chb_keepOrigination.Checked == true)
            {
                for (int i = 0; i < SheetCount; i++)
                {
                    //打開Sheet並記錄所有OBJ
                    DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]);
                    CurrentSheet.Open();
                    if (i == 0)
                    {
                        Variables.FirstDrawingSheet = CurrentSheet;
                    }

                    NXObject[] SheetObj = CaxME.FindObjectsInView(CurrentSheet.View.Tag).ToArray();
                    foreach (NXObject singleObj in SheetObj)
                    {
                        //判斷是否取到舊的尺寸,如果是就跳下一個
                        string OldBallonNum = "";
                        try
                        {
                            OldBallonNum = singleObj.GetStringAttribute(CaxME.DimenAttr.BallonNum);
                            continue;
                        }
                        catch (System.Exception ex) { }

                        string AssignExcelType = "";
                        #region 判斷是否有屬性,沒有屬性就跳下一個
                        try { AssignExcelType = singleObj.GetStringAttribute(CaxME.DimenAttr.FixDimension); }
                        catch (System.Exception ex) { continue; }
                        #endregion

                        //事先塞入該尺寸所在Sheet
                        singleObj.SetAttribute("SheetName", CurrentSheet.Name);

                        CaxME.BoxCoordinate cBoxCoordinate = new CaxME.BoxCoordinate();
                        CaxME.GetTextBoxCoordinate(singleObj.Tag, out cBoxCoordinate);

                        #region 計算泡泡座標
                        CaxME.DimenData sDimenData = new CaxME.DimenData();
                        sDimenData.Obj          = singleObj;
                        sDimenData.CurrentSheet = CurrentSheet;
                        CaxME.CalculateBallonCoordinate(cBoxCoordinate, ref sDimenData);
                        #endregion

                        sDimenData.CurrentSheet.Open();

                        Point3d BallonLocation = new Point3d();
                        BallonLocation.X = sDimenData.LocationX;
                        BallonLocation.Y = sDimenData.LocationY;

                        MaxBallonNum++;
                        string diCount = "";
                        try
                        {
                            diCount = singleObj.GetStringAttribute(CaxME.DimenAttr.DiCount);
                        }
                        catch (System.Exception ex)
                        {
                            diCount = "1";
                        }

                        InsertBalloon(MaxBallonNum, diCount, BallonLocation);
                        singleObj.SetAttribute(CaxME.DimenAttr.BallonNum, MaxBallonNum.ToString());
                    }
                    //將最後一顆泡泡的數字插入零件中
                    workPart.SetAttribute(CaxME.DimenAttr.BallonNum, MaxBallonNum.ToString());
                }
            }

            MessageBox.Show("完成!");
        }
Exemplo n.º 24
0
        private void buttonDownload_Click(object sender, EventArgs e)
        {
            //建立Local路徑資料
            //string Local_IP = cMETE_Download_Upload_Path.Local_IP;
            //string Local_ShareStr = cMETE_Download_Upload_Path.Local_ShareStr;
            //Local_Folder_MODEL = cMETE_Download_Upload_Path.Local_Folder_MODEL;
            //Local_Folder_CAM = cMETE_Download_Upload_Path.Local_Folder_CAM;
            //Local_Folder_OIS = cMETE_Download_Upload_Path.Local_Folder_OIS;

            //取代字串成正確路徑
            //Local_ShareStr = Local_ShareStr.Replace("[Local_IP]", Local_IP);
            //Local_ShareStr = Local_ShareStr.Replace("[CusName]", CurrentCusName);
            //Local_ShareStr = Local_ShareStr.Replace("[PartNo]", CurrentPartNo);
            //Local_ShareStr = Local_ShareStr.Replace("[CusRev]", CurrentCusRev);
            //Local_ShareStr = Local_ShareStr.Replace("[OpRev]", CurrentOpRev);
            //Local_Folder_MODEL = Local_Folder_MODEL.Replace("[Local_ShareStr]", Local_ShareStr);
            //Local_Folder_CAM = Local_Folder_CAM.Replace("[Local_ShareStr]", Local_ShareStr);
            //Local_Folder_OIS = Local_Folder_OIS.Replace("[Local_ShareStr]", Local_ShareStr);

            #region (2016.12.30註解)建立Local_Folder_MODEL資料夾

            //if (!File.Exists(Local_Folder_MODEL))
            //{
            //    try
            //    {
            //        System.IO.Directory.CreateDirectory(Local_Folder_MODEL);
            //    }
            //    catch (System.Exception ex)
            //    {
            //        MessageBox.Show(ex.ToString());
            //        return;
            //    }
            //}

            #endregion

            #region (2016.12.30註解)複製Server客戶檔案到Local_Folder_MODEL資料夾內

            /*
             * //判斷客戶檔案是否存在
             * status = System.IO.File.Exists(Server_Folder_MODEL);
             * if (!status)
             * {
             *  MessageBox.Show("指定的檔案不存在,請再次確認");
             *  return;
             * }
             *
             * //建立Local_Folder_MODEL資料夾內客戶檔案路徑
             * string Local_CusPartFullPath = string.Format(@"{0}\{1}", Local_Folder_MODEL, Path.GetFileName(Server_Folder_MODEL));
             *
             * //判斷是否存在,不存在則開始複製
             * if (!File.Exists(Local_CusPartFullPath))
             * {
             *  try
             *  {
             *      File.Copy(Server_Folder_MODEL, Local_CusPartFullPath, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("客戶檔案複製失敗");
             *      this.Close();
             *  }
             * }
             */
            #endregion

            #region (註解)複製ShopDoc.xls到Local_Folder_MODEL資料夾內

            /*
             * //判斷ShopDoc.xls是否存在
             * if (!File.Exists(Server_ShopDoc))
             * {
             *  listBox1.Items.Add("刀具路徑與清單樣板(ShopDoc.xls)不存在,無法下載");
             *  return;
             * }
             *
             * //建立Local_Folder_MODEL資料夾內客戶檔案路徑
             * string Local_ShopDocFullPath = string.Format(@"{0}\{1}", Local_Folder_MODEL, Path.GetFileName(Server_ShopDoc));
             *
             * //判斷是否存在,不存在則開始複製
             * if (!File.Exists(Local_ShopDocFullPath))
             * {
             *  try
             *  {
             *      File.Copy(Server_ShopDoc, Local_ShopDocFullPath, true);
             *  }
             *  catch (System.Exception ex)
             *  {
             *      CaxLog.ShowListingWindow("ShopDoc.xls下載失敗");
             *      this.Close();
             *  }
             * }
             */
            #endregion

            #region 先刪除本機中該製程的OPxxx->CAM資料夾、TEpart檔
            //刪除本機OPxxx資料夾路徑
            foreach (string i in Oper1comboBox.Items)
            {
                if (Oper1comboBox.Text == "全部下載")
                {
                    if (i == "全部下載")
                    {
                        continue;
                    }
                }
                else
                {
                    if (i != Oper1comboBox.Text)
                    {
                        continue;
                    }
                }
                Local_Folder_CAM = sDownUpLoadDat.Local_Folder_CAM;
                Local_Folder_CAM = Local_Folder_CAM.Replace("[Oper1]", i);
                if (Directory.Exists(Local_Folder_CAM))
                {
                    Directory.Delete(Local_Folder_CAM, true);
                }
            }

            /*
             * for (int i = 0; i < Oper1comboBox.Items.Count; i++)
             * {
             *  if (CurrentOper1 != Oper1comboBox.Items[i].ToString() & CurrentOper1 != "全部下載")
             *  {
             *      continue;
             *  }
             *  string Local_OPxxxPath = string.Format(@"{0}\{1}\{2}", Local_ShareStr, "OP" + Oper1comboBox.Items[i].ToString(), "CAM");
             *  if (Directory.Exists(Local_OPxxxPath))
             *  {
             *      Directory.Delete(Local_OPxxxPath, true);
             *  }
             *  string Local_TEpartPath = string.Format(@"{0}\{1}", Local_ShareStr, CurrentPartNo + "_TE_" + Oper1comboBox.Items[i].ToString() + ".prt");
             *  if (File.Exists(Local_TEpartPath))
             *  {
             *      File.Delete(Local_TEpartPath);
             *  }
             * }
             */
            /*
             * string Local_OPxxxPath = string.Format(@"{0}\{1}\{2}", Local_ShareStr, "OP" + CurrentOper1, "CAM");
             * if (Directory.Exists(Local_OPxxxPath))
             * {
             *  Directory.Delete(Local_OPxxxPath, true);
             * }
             * string Local_TEpartPath = string.Format(@"{0}\{1}", Local_ShareStr, CurrentPartNo + "_TE_" + CurrentOper1 + ".prt");
             * if (File.Exists(Local_TEpartPath))
             * {
             *  File.Delete(Local_TEpartPath);
             * }
             */
            #endregion

            #region 建立Local_Folder_CAM、Local_Folder_OIS資料夾

            //暫存一個tempLocal_Folder_CAM、Local_Folder_OIS,目的要讓程式每次都能有[Oper1]可取代
            //tempLocal_Folder_CAM = Local_Folder_CAM;
            //tempLocal_Folder_OIS = Local_Folder_OIS;
            //tempServer_Folder_CAM = Server_Folder_CAM;

            ListDownloadCAMPath = new List <CAMPath>();
            foreach (string i in Oper1comboBox.Items)
            {
                if (Oper1comboBox.Text == "全部下載")
                {
                    if (i == "全部下載")
                    {
                        continue;
                    }
                }
                else
                {
                    if (i != Oper1comboBox.Text)
                    {
                        continue;
                    }
                }
                Local_Folder_CAM = sDownUpLoadDat.Local_Folder_CAM;
                Local_Folder_OIS = sDownUpLoadDat.Local_Folder_OIS;
                Local_Folder_CAM = Local_Folder_CAM.Replace("[Oper1]", i);
                Local_Folder_OIS = Local_Folder_OIS.Replace("[Oper1]", i);
                if (!File.Exists(Local_Folder_CAM))
                {
                    System.IO.Directory.CreateDirectory(Local_Folder_CAM);
                }
                if (!File.Exists(Local_Folder_OIS))
                {
                    System.IO.Directory.CreateDirectory(Local_Folder_OIS);
                }

                Server_Folder_CAM = sDownUpLoadDat.Server_Folder_CAM;
                Server_Folder_CAM = Server_Folder_CAM.Replace("[Oper1]", i.ToString());
                CAMPath sCAMPath = new CAMPath();
                sCAMPath.L_CAM_Path = Local_Folder_CAM;
                sCAMPath.S_CAM_Path = Server_Folder_CAM;
                ListDownloadCAMPath.Add(sCAMPath);
            }

            /*
             * if (CurrentOper1 == "全部下載")
             * {
             *  for (int i = 0; i < Oper1comboBox.Items.Count; i++)
             *  {
             *      if (Oper1comboBox.Items[i].ToString() == "全部下載")
             *      {
             *          continue;
             *      }
             *      Local_Folder_CAM = tempLocal_Folder_CAM;
             *      Local_Folder_OIS = tempLocal_Folder_OIS;
             *      Local_Folder_CAM = Local_Folder_CAM.Replace("[Oper1]", Oper1comboBox.Items[i].ToString());
             *      Local_Folder_OIS = Local_Folder_OIS.Replace("[Oper1]", Oper1comboBox.Items[i].ToString());
             *      if (!File.Exists(Local_Folder_CAM))
             *      {
             *          try
             *          {
             *              System.IO.Directory.CreateDirectory(Local_Folder_CAM);
             *          }
             *          catch (System.Exception ex)
             *          {
             *              MessageBox.Show(ex.ToString());
             *              return;
             *          }
             *      }
             *      if (!File.Exists(Local_Folder_OIS))
             *      {
             *          try
             *          {
             *              System.IO.Directory.CreateDirectory(Local_Folder_OIS);
             *          }
             *          catch (System.Exception ex)
             *          {
             *              MessageBox.Show(ex.ToString());
             *              return;
             *          }
             *      }
             *      Server_Folder_CAM = tempServer_Folder_CAM;
             *      Server_Folder_CAM = Server_Folder_CAM.Replace("[Oper1]", Oper1comboBox.Items[i].ToString());
             *      CAMPath sCAMPath = new CAMPath();
             *      sCAMPath.L_CAM_Path = Local_Folder_CAM;
             *      sCAMPath.S_CAM_Path = Server_Folder_CAM;
             *      ListDownloadCAMPath.Add(sCAMPath);
             *  }
             * }
             * else
             * {
             *  Local_Folder_CAM = tempLocal_Folder_CAM;
             *  Local_Folder_OIS = tempLocal_Folder_OIS;
             *  Local_Folder_CAM = Local_Folder_CAM.Replace("[Oper1]", CurrentOper1);
             *  Local_Folder_OIS = Local_Folder_OIS.Replace("[Oper1]", CurrentOper1);
             *  if (!File.Exists(Local_Folder_CAM))
             *  {
             *      try
             *      {
             *          System.IO.Directory.CreateDirectory(Local_Folder_CAM);
             *      }
             *      catch (System.Exception ex)
             *      {
             *          MessageBox.Show(ex.ToString());
             *          return;
             *      }
             *  }
             *  if (!File.Exists(Local_Folder_OIS))
             *  {
             *      try
             *      {
             *          System.IO.Directory.CreateDirectory(Local_Folder_OIS);
             *      }
             *      catch (System.Exception ex)
             *      {
             *          MessageBox.Show(ex.ToString());
             *          return;
             *      }
             *  }
             *  Server_Folder_CAM = tempServer_Folder_CAM;
             *  Server_Folder_CAM = Server_Folder_CAM.Replace("[Oper1]", CurrentOper1);
             *  CAMPath sCAMPath = new CAMPath();
             *  sCAMPath.L_CAM_Path = Local_Folder_CAM;
             *  sCAMPath.S_CAM_Path = Server_Folder_CAM;
             *  ListDownloadCAMPath.Add(sCAMPath);
             * }
             */
            /*
             * //DicSeleOper1(Key = 製程序,Value = ServerPartPath)
             * foreach (KeyValuePair<string, string> kvp in DicSeleOper1)
             * {
             *  Local_Folder_CAM = tempLocal_Folder_CAM;
             *  Local_Folder_OIS = tempLocal_Folder_OIS;
             *  Local_Folder_CAM = Local_Folder_CAM.Replace("[Oper1]", kvp.Key);
             *  Local_Folder_OIS = Local_Folder_OIS.Replace("[Oper1]", kvp.Key);
             *  if (!File.Exists(Local_Folder_CAM))
             *  {
             *      try
             *      {
             *          System.IO.Directory.CreateDirectory(Local_Folder_CAM);
             *      }
             *      catch (System.Exception ex)
             *      {
             *          MessageBox.Show(ex.ToString());
             *          return;
             *      }
             *  }
             *  if (!File.Exists(Local_Folder_OIS))
             *  {
             *      try
             *      {
             *          System.IO.Directory.CreateDirectory(Local_Folder_OIS);
             *      }
             *      catch (System.Exception ex)
             *      {
             *          MessageBox.Show(ex.ToString());
             *          return;
             *      }
             *  }
             * }
             */
            #endregion

            #region 複製Server製程序檔案到Local資料夾內

            foreach (string i in ListDownloadPartPath)
            {
                //刪除本機TEpart
                string Local_TEpart = string.Format(@"{0}\{1}", sDownUpLoadDat.Local_ShareStr, Path.GetFileName(i));
                if (File.Exists(Local_TEpart))
                {
                    File.Delete(Local_TEpart);
                }

                //判斷Part檔案是否存在
                if (!File.Exists(i))
                {
                    CaxLog.ShowListingWindow("製程序檔案" + Path.GetFileName(i) + "不存在,請再次確認");
                    this.Close();
                }
                //建立Local_ShareStr資料夾內製程序檔案路徑
                string Local_Oper1PartFullPath = string.Format(@"{0}\{1}", sDownUpLoadDat.Local_ShareStr, Path.GetFileName(i));
                //開始複製
                try
                {
                    File.Copy(i, Local_Oper1PartFullPath, true);
                }
                catch (System.Exception ex)
                {
                    CaxLog.ShowListingWindow(Path.GetFileName(i) + "下載失敗");
                    this.Close();
                }
            }

            /*
             * foreach (KeyValuePair<string, string> kvp in DicSeleOper1)
             * {
             *  //判斷製程序檔案是否存在
             *  Server_TEDownloadPart = tempServer_TEDownloadPart;
             *  Server_TEDownloadPart = Server_TEDownloadPart.Replace("[Oper1]", kvp.Key);
             *  status = System.IO.File.Exists(Server_TEDownloadPart);
             *  if (!status)
             *  {
             *      MessageBox.Show("製程序檔案" + Path.GetFileName(Server_TEDownloadPart) + "不存在,請再次確認");
             *      return;
             *  }
             *
             *  //建立Local_ShareStr資料夾內製程序檔案路徑
             *  string Local_Oper1PartFullPath = string.Format(@"{0}\{1}", Local_ShareStr, Path.GetFileName(Server_TEDownloadPart));
             *
             *  //開始複製
             *  File.Copy(Server_TEDownloadPart, Local_Oper1PartFullPath, true);
             * }
             */

            #endregion

            #region 複製ServerCAM資料夾到Local資料夾內
            foreach (CAMPath i in ListDownloadCAMPath)
            {
                status = CaxPublic.DirectoryCopy(i.S_CAM_Path, i.L_CAM_Path, true);
                if (!status)
                {
                    MessageBox.Show("CAM資料夾複製失敗,請聯繫開發工程師");
                    this.Close();
                }
            }
            #endregion

            MessageBox.Show("下載完成!");


            this.Close();
        }