//计时器,多线程执行全选宏操作 private void timer1_Tick(object sender, EventArgs e) { try { if (((Timer)sender).Tag.ToString() == "全选") { timer1.Stop(); ObjectsInView = NXFun.GetSelectObjects(); NXFun.RemoveAllSelect(); timer1.Interval = 1000; timer1.Tag = "取消全选"; timer1.Start(); } else if (((Timer)sender).Tag.ToString() == "取消全选") { timer1.Stop(); //遍历尺寸 List <NXOpen.Annotations.Dimension> dims = NXFun.GetDimensionInCurrentView(ObjectsInView); List <NXOpen.Annotations.BaseFcf> fcfs = NXFun.GetBaseFcfInCurrentView(ObjectsInView); LabelDimMap.Clear(); foreach (NXOpen.Annotations.Dimension dim in dims) { DimInfor diminfor = NXFun.GetDimInfor(dim); //存入Dictionary LabelDimMap.Add(diminfor.id, diminfor); } LabelFcfMap.Clear(); foreach (NXOpen.Annotations.BaseFcf fcf in fcfs) { DimInfor diminfor = NXFun.GetFcfInfor(fcf); LabelFcfMap.Add(diminfor.id, diminfor); } //转存到 LabelDimList LabelDimList.Clear(); foreach (int k in LabelDimMap.Keys) { foreach (DimInfor diminfor in LabelDimMap[k]) { LabelDimList.Add(diminfor); } } //转存到 LabelFcfList LabelFcfList.Clear(); foreach (int k in LabelFcfMap.Keys) { foreach (DimInfor diminfor in LabelFcfMap[k]) { LabelFcfList.Add(diminfor); } } //刷新显示 RefreshDisplay(); SetStatusLabel("查询结束!", 2); } } catch (System.Exception ex) { NXFun.MessageBox(ex.Message); } }
//查询按钮 private void tsrbtnSearch_Click(object sender, EventArgs e) { try { NXFun.SetHighlight(oldhighlight, false); //确认打开图纸页 NXOpen.Drawings.DrawingSheet ds = NXFun.GetOnShowSheet(); if (ds == null) { SetStatusLabel("请打开图纸页!", 1); return; } IsEdit = true; S_Sheet sheet = NXFun.GetSheetTemplet(ds); OnEidtSheetGuid = sheet.guid; NXFun.Fit(); NXFun.SelectAll(); timer1.Interval = 1000; timer1.Tag = "全选"; timer1.Start(); } catch (System.Exception ex) { NXFun.MessageBox(ex.Message); } }
//形位起始编号改变 private void tsrtxtXingwei_TextChanged(object sender, EventArgs e) { try { int i = System.Convert.ToInt32(tsrtxtXingwei.Text); FcfStartNum = i; RefreshDisplay(); } catch (System.Exception ex) { NXFun.MessageBox(ex.Message); } }
//帮助按钮 private void tsrbtnHelp_Click(object sender, EventArgs e) { string help = "注意事项:\n" + "1、支持继承的三维PMI标注;\n" + "2、编号必须在1~999之间;\n" + "3、如遇警告“试图使用不活动的对象”,请点击查询按钮重新查询;\n" + "4、投影视图如果不是1:1,可能标号尺寸会大小不一,NX手工操作亦然,此问题待解决。\n" + "------------------\n" + "打标号工具 V1.0"; NXFun.MessageBox(help, "帮助", 1); }
//刷新dgv private void RefreshDisplay() { try { tsrbtnSearch.Visible = !IsEdit; tsrbtnOk.Visible = IsEdit; tsrbtnCancel.Visible = IsEdit; bieluandong = true; dgvChicun.Rows.Clear(); for (int i = 0; i < LabelDimList.Count; i++) { string title = ""; if (LabelDimList[i].isLabel == "是") { title = (i + DimStartNum).ToString(); DimInfor temp = LabelDimList[i]; temp.id = i + DimStartNum; LabelDimList[i] = temp; } dgvChicun.Rows.Add(title); dgvChicun[1, i].Value = LabelDimList[i].text; dgvChicun[2, i].Value = LabelDimList[i].value; dgvChicun[3, i].Value = LabelDimList[i].up; dgvChicun[4, i].Value = LabelDimList[i].low; dgvChicun[5, i].Value = NXFun.string2bool(LabelDimList[i].isLabel); DataGridViewCheckBoxCell a = (DataGridViewCheckBoxCell)dgvChicun[5, i]; } dgvXingwei.Rows.Clear(); for (int i = 0; i < LabelFcfList.Count; i++) { string title = ""; if (LabelFcfList[i].isLabel == "是") { title = "J" + (i + FcfStartNum).ToString(); DimInfor temp = LabelFcfList[i]; temp.id = i + FcfStartNum; LabelFcfList[i] = temp; } dgvXingwei.Rows.Add(title); dgvXingwei[1, i].Value = LabelFcfList[i].text; dgvXingwei[2, i].Value = LabelFcfList[i].value; dgvXingwei[3, i].Value = NXFun.string2bool(LabelFcfList[i].isLabel); } bieluandong = false; } catch (System.Exception ex) { NXFun.MessageBox(ex.Message); } }
//打开或新建工艺时初始化 private void OpenOrCreateProjectInit() { //变量值 IsProjectOpen = true; //控件状态 pnlWelcome.Hide(); pnlMain.Show(); this.Text = ProPath + "\\" + ProName + ".3dppm"; //更新会签 if (NXFun.isFileExist(ToFullPath(NXFun.SignOffXML))) { bool result = XML3DPPM.UpdateSignOff(XmlFile, ToFullPath(NXFun.SignOffXML)); if (result) { NXFun.MessageBox("更新会签信息成功,请在\"编辑图纸->二维图表\"模块点击\"更新表头\"来刷新会签信息。"); } else { NXFun.MessageBox("更新会签信息失败,请确认会签文件是否有效!"); } } //操作 ProcessEdit.ProPath = ProPath; ProcessEdit.ProName = ProName; ProcessEdit.Init(); ModelEdit.ProPath = ProPath; ModelEdit.ProName = ProName; ModelEdit.Init(); SheetEdit.ProPath = ProPath; SheetEdit.ProName = ProName; SheetEdit.Init(); }