private void PartInformationDlg_Load(object sender, EventArgs e) { //取得DraftingData CaxGetDatData.GetDraftingConfigData(out cDraftingConfig); //預設開啟範圍區分checkbox chb_Region.Checked = true; //取得零件料號 PartNumberText.Text = workPart.JournalIdentifier; //取得單位,1=Metric, 2=English int UnitsNum; theUfSession.Part.AskUnits(workPart.Tag, out UnitsNum); if (UnitsNum == 1) { PartUnitText.Text = "mm"; } else { PartUnitText.Text = "inch"; } //載入圖片 }
private static bool GetToolListPath(out string ToolListPath) { ToolListPath = ""; try { cMETE_Download_Upload_Path = new METE_Download_Upload_Path(); Is_Local = Environment.GetEnvironmentVariable("UGII_ENV_FILE"); if (Is_Local != null) { //取得Server的ToolListPath.xls路徑 ToolListPath = string.Format(@"{0}\{1}\{2}\{3}", CaxEnv.GetGlobaltekEnvDir(), "TE_Config", "Config", "ToolList.xls"); //取得METEDownload_Upload.dat status = CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path); if (!status) { MessageBox.Show("取得METEDownload_Upload.dat失敗"); return(false); } } else { ToolListPath = string.Format(@"{0}\{1}", "D:", "ToolList.xls"); } } catch (System.Exception ex) { return(false); } return(true); }
public static string label900BilletPath = ""; //900胚料檔路徑 public TEOpenTaskDlg() { InitializeComponent(); panel = superGridPanel.PrimaryGrid; //取得METEDownload_Upload.dat資料 status = CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path); if (!status) { MessageBox.Show("取得METEDownload_Upload.dat資料失敗"); return; } //更新客戶資料 IniSearchCus(); //關閉下拉選單-料號&版次 comboBoxPartNo.Enabled = false; comboBoxCusVer.Enabled = false; //關閉groupBox groupBox001.Enabled = false; groupBoxW.Enabled = false; groupBox900.Enabled = false; button001SelPart.Enabled = false; buttonWSelPart.Enabled = false; //初始化labelBox label001.Text = ""; labelW.Text = ""; }
private void MainProgramDlg_Load(object sender, EventArgs e) { AddButton.BackgroundImage = MainProgram.Properties.Resources.圖片1; //取得所有GroupAry,用來判斷Group的Type決定是NC、Tool、Geometry NCGroupAry = displayPart.CAMSetup.CAMGroupCollection.ToArray(); //取得所有operationAry OperationAry = displayPart.CAMSetup.CAMOperationCollection.ToArray(); #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()); //取得METEDownload_Upload資料 status = CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path); if (!status) { MessageBox.Show("取得METEDownload_Upload失敗"); return; } }
public MEDownloadDlg() { InitializeComponent(); #region 客戶資料填入 string[] S_Task_CusName = Directory.GetDirectories(CaxEnv.GetGlobaltekTaskDir()); foreach (string item in S_Task_CusName) { comboBoxCusName.Items.Add(Path.GetFileNameWithoutExtension(item));//走訪每個元素只取得目錄名稱(不含路徑)並加入dirlist集合中 } PartNocomboBox.Enabled = false; CusRevcomboBox.Enabled = false; OpRevcomboBox.Enabled = false; Oper1comboBox.Enabled = false; #endregion /* * //取得METEDownloadData資料 * status = CaxGetDatData.GetMETEDownloadData(out cMETEDownloadData); * if (!status) * { * MessageBox.Show("取得METEDownloadData失敗"); * return; * } * * //存入下拉選單-客戶 * for (int i = 0; i < cMETEDownloadData.EntirePartAry.Count; i++) * { * comboBoxCusName.Items.Add(cMETEDownloadData.EntirePartAry[i].CusName); * } * PartNocomboBox.Enabled = false; * CusRevcomboBox.Enabled = false; * Oper1comboBox.Enabled = false; */ //取得METEDownload_Upload資料 status = CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path); if (!status) { MessageBox.Show("取得METEDownload_Upload_New失敗"); return; } }
public MainProgramDlg() { InitializeComponent(); ButtonShape.RightArrowBtn(AddButton); ButtonShape.LeftArrowBtn(RemoveButton); ButtonShape.UpArrowBtn(UpButton); ButtonShape.DownArrowBtn(DownButton); chb_M98.Enabled = false; chb_M198.Enabled = false; NCGroup.Enabled = false; AddCondition.Enabled = false; //listView1.ListViewItemSorter = new ListViewIndexComparer(); //取得控制器配置資料(暫時註解,發布使用) CaxGetDatData.GetControlerConfigData(out cControlerConfig); //測試使用 //string ControlerConfig_dat = "ControlerConfig.dat"; //string ControlerConfigPath = string.Format(@"{0}\{1}", "D:", ControlerConfig_dat); //CaxPublic.ReadControlerConfig(ControlerConfigPath, out cControlerConfig); //取得使用者自定義的txt UserDefineTxtPath = string.Format(@"{0}\{1}\{2}", "D:", "CaxUserDefine", "MainProgram"); if (!Directory.Exists(UserDefineTxtPath)) { UserDefineTxt.Items.Add("尚未定義"); } else { string[] UserDefineTxtAry = System.IO.Directory.GetFileSystemEntries(UserDefineTxtPath, "*.txt"); if (UserDefineTxtAry.Length == 0) { UserDefineTxt.Items.Add("尚未定義"); } else { foreach (string i in UserDefineTxtAry) { UserDefineTxt.Items.Add(Path.GetFileNameWithoutExtension(i)); } } } }
public MEDownloadDlg() { InitializeComponent(); //取得METEDownloadData資料 status = CaxGetDatData.GetMETEDownloadData(out cMETEDownloadData); if (!status) { MessageBox.Show("取得METEDownloadData失敗"); return; } //存入下拉選單-客戶 for (int i = 0; i < cMETEDownloadData.EntirePartAry.Count; i++) { comboBoxCusName.Items.Add(cMETEDownloadData.EntirePartAry[i].CusName); } //存入下拉選單-料號 //for (int i = 0; i < cME_TE_Download.EntirePartAry.Count;i++ ) //{ // PartNocomboBox.Items.Add(cME_TE_Download.EntirePartAry[i].PartNo); //} PartNocomboBox.Enabled = false; CusRevcomboBox.Enabled = false; Oper1comboBox.Enabled = false; //取得METEDownload_Upload資料 status = CaxGetDatData.GetMETEDownload_Upload(out cMETE_Download_Upload_Path); if (!status) { MessageBox.Show("取得METEDownload_Upload失敗"); return; } }
private void PostProcessorDlg_Load(object sender, EventArgs e) { int module_id; theUfSession.UF.AskApplicationModule(out module_id); if (module_id != UFConstants.UF_APP_CAM) { MessageBox.Show("請先轉換為加工模組後再執行!"); this.Close(); } //取得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 取得相關資訊,填入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"); //TemplatePostData = System.IO.File.ReadAllLines(TemplatePostPath); //-----發佈使用版本(Server需有MACH檔案) 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 }
//------------------------------------------------------------------------------ // 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); }
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()); } }
private void OK_Click(object sender, EventArgs e) { if (chb_keepOrigination.Checked == false && chb_Regeneration.Checked == false && chb_UserDefine.Checked == false) { this.Hide(); UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Information, "請先選擇一個選項"); this.Show(); return; } if (chb_keepOrigination.Checked == true) { Is_Keep = true; this.DialogResult = DialogResult.Yes; this.Close(); } if (chb_Regeneration.Checked == true) { Is_Keep = false; this.DialogResult = DialogResult.Yes; this.Close(); } 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(); } //(NXOpen.Drawings.DrawingSheet)workPart.DrawingSheets.FindObject(ListSheet.Text) //((NXOpen.Drawings.DrawingSheet)workPart.DrawingSheets.FindObject("S1")).Open(); this.Close(); } }
private void AssignGaugeDlg_Load(object sender, EventArgs e) { /* * //取回目前泡泡最大值 * try * { * BallonNum = Convert.ToInt32(workPart.GetStringAttribute(CaxME.DimenAttr.BallonNum)); * } * catch (System.Exception ex) * { * BallonNum = 0; * } */ //預設關閉選擇物件 SelectObject.Enabled = false; //取得AssignGaugeData string[] AGData = new string[] { }; status = CaxGetDatData.GetAssignGaugeData(out AGData); if (!status) { CaxLog.ShowListingWindow("GetAssignGaugeData失敗,請檢查MEConfig是否有檔案"); return; } #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 //填檢具到IQC、IPQC下拉選單中 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%Check" }; Freq_Units.Items.AddRange(CheckUnits.ToArray()); SelfCheck_Units.Items.AddRange(CheckUnits.ToArray()); //取得圖紙範圍資料Data CaxGetDatData.GetDraftingCoordinateData(out cCoordinateData); }
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("完成!"); }
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 }