Esempio n. 1
0
        //设置硬度按钮
        private void tsrbtnSetHardness_Click(object sender, EventArgs e)
        {
            IsEditYingdu = true;

            tsrbtnOk.Visible          = true;
            tsrbtnCancel.Visible      = true;
            tsrbtnEdit.Visible        = false;
            tsrbtnSetHardness.Visible = false;
            tvwGongYi.Enabled         = false;
            tsrGongyiTree.Enabled     = false;

            List <S_Yingdu> YingduList = XML3DPPM.GetYingduList(XmlFile);
            int             i          = 0;

            dgvYingdu.Rows.Clear();
            string tempYD = "硬度临时值";

            foreach (S_Yingdu s_yingdu in YingduList)
            {
                if (s_yingdu.yingdu != tempYD)
                {
                    dgvYingdu.Rows.Add();
                    dgvYingdu[0, i].Value = (i + 1).ToString();
                    dgvYingdu[1, i].Value = s_yingdu.gongxuhao;
                    dgvYingdu[2, i].Value = tempYD = s_yingdu.yingdu;
                    i++;
                }
            }
            dgvYingdu.BringToFront();
            SetStatusLabel("提示:仅设置发生硬度更改的工序即可!", 2);
        }
Esempio n. 2
0
        //节点选中变化
        private void tvwSheet_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode sel = tvwSheet.SelectedNode;

            if (sel == null)
            {
                tsrbtnAdd.Enabled  = false;
                tsrbtnDel.Enabled  = false;
                tsrbtnOpen.Enabled = false;
            }
            else if (sel.Tag.ToString() == "Gongyi" || sel.Tag.ToString() == "Gongxu")
            {
                string filename = XML3DPPM.GetModelName(0, sel.Index, XmlFile);
                if (string.IsNullOrEmpty(filename))
                {
                    tsrbtnAdd.Enabled  = false;
                    tsrbtnDel.Enabled  = false;
                    tsrbtnOpen.Enabled = false;
                }
                else
                {
                    tsrbtnAdd.Enabled  = true;
                    tsrbtnDel.Enabled  = false;
                    tsrbtnOpen.Enabled = false;
                }
            }
            else if (sel.Tag.ToString() == "Sheet")
            {
                tsrbtnAdd.Enabled  = false;
                tsrbtnDel.Enabled  = true;
                tsrbtnOpen.Enabled = true;
            }
        }
Esempio n. 3
0
        //新建图纸页按钮
        private void tsrbtnAdd_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwSheet.SelectedNode;

            if (sel == null || (sel.Tag.ToString() != "Gongyi" && sel.Tag.ToString() != "Gongxu"))
            {
                SetStatusLabel("请选中树中工艺或工序节点", 1);
                return;
            }
            int    index    = sel.Index;
            string filename = XML3DPPM.GetModelName(0, index, XmlFile);

            if (string.IsNullOrEmpty(filename))
            {
                SetStatusLabel("选中节点下无模型,请在编辑模型模块中创建模型!", 1);
                return;
            }
            Part prt = NXFun.OpenPrt(ToFullPath(filename));

            if (prt == null)
            {
                SetStatusLabel("打开模型错误!", 1);
                return;
            }
            mainDlg.Enabled = false;    //如果这里不禁用主窗口,再点击一次添加或退出就会出错,而如果直接隐藏主窗口有时会把NX隐藏,奇怪的很。
            // mainDlg.WindowState = FormWindowState.Minimized;
            CreateSheet.MainFun();
            mainDlg.Enabled = true;
            //  mainDlg.WindowState = FormWindowState.Normal;
            SetStatusLabel("添加图纸页返回", 2);
            FreshSheetTree();
        }
Esempio n. 4
0
 //添加工序菜单
 private void cmsGongyiAddGongxu_Click(object sender, EventArgs e)
 {
     AddGongxuFun(-1);
     SetStatusLabel("已添加工序到末尾", 2);
     FreshGongYiTree();
     //编辑工序节点
     OnEditGongxu = XML3DPPM.GetGongxuCount(XmlFile);
     OnEditGongbu = 0;
     IsEdit       = true;
     FreshEditTable();
 }
Esempio n. 5
0
        //向下移动按钮
        private void tsrbtnMoveDown_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwGongYi.SelectedNode;

            if (sel == null)
            {
                SetStatusLabel("请选中工序或工步节点", 1);
                return;
            }
            if (sel.Tag.ToString() == "Gongyi")
            {
                SetStatusLabel("请选中工序或工步节点", 1);
                return;
            }
            else if (sel.Tag.ToString() == "Gongxu")
            {
                if (sel.NextNode != null)
                {
                    int a = sel.Index;
                    XML3DPPM.MoveNode(a + 1, 0, false, XmlFile);
                    SetStatusLabel("已成功向下移动工序", 2);
                    FreshGongYiTree();
                    tvwGongYi.SelectedNode = GetIndexedTreeNode(a + 2, 0);
                }
                else
                {
                    SetStatusLabel("该工序已置尾", 1);
                }
            }
            else if (sel.Tag.ToString() == "Gongbu")
            {
                if (sel.NextNode != null)
                {
                    int a = sel.Parent.Index;
                    int b = sel.Index;
                    XML3DPPM.MoveNode(a + 1, b + 1, false, XmlFile);
                    SetStatusLabel("已成功向下移动工步", 2);
                    FreshGongYiTree();
                    tvwGongYi.SelectedNode = GetIndexedTreeNode(a + 1, b + 2);
                }
                else
                {
                    SetStatusLabel("该工步已置尾", 1);
                }
            }
            return;
        }
Esempio n. 6
0
        //打开图纸页按钮
        private void tsrbtnOpen_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwSheet.SelectedNode;

            if (sel == null || sel.Tag.ToString() != "Sheet")
            {
                SetStatusLabel("请选中树中图纸节点", 1);
                return;
            }
            string prtfullpath = ToFullPath(XML3DPPM.GetModelName(0, sel.Parent.Index, XmlFile));
            string guid        = sel.Name;

            NXFun.OpenPrt(prtfullpath);
            NXFun.ShowSheetByGuid(prtfullpath, guid);
            SetStatusLabel("已显示图纸页", 2);
            //FreshSheetTree();
        }
Esempio n. 7
0
 //双击打开模型
 private void tvwSheet_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         System.Drawing.Point clickPoint = new System.Drawing.Point(e.X, e.Y);
         TreeNode             sel        = tvwSheet.GetNodeAt(clickPoint);
         //判断点击的是否是一个节点
         if (sel != null && sel.Tag.ToString() == "Sheet")
         {
             string prtfullpath = ToFullPath(XML3DPPM.GetModelName(0, sel.Parent.Index, XmlFile));
             string guid        = sel.Name;
             NXFun.OpenPrt(prtfullpath);
             NXFun.ShowSheetByGuid(prtfullpath, guid);
             SetStatusLabel("已显示图纸页", 2);
         }
     }
 }
Esempio n. 8
0
 //读取控件的值
 /// <summary>
 /// 读取控件的值   (0,0)表示工艺   (N,0)表示第N个工序 (N,M)表示第N个工序的第M个工步
 /// </summary>
 /// <param name="a">第几个工序</param>
 /// <param name="b">第几个工步</param>
 private void InitializeInputBox(int a, int b)
 {
     if (a == 0 && b == 0)
     {
         //读取并刷新工艺面板
         foreach (Control control in tlpGongyiNormal.Controls)
         {
             if (control is TextBox)
             {
                 ((TextBox)control).Text = XML3DPPM.GetIndexAttr(a, b, control.Name, XmlFile);
             }
         }
     }
     else if (a > 0 && b == 0)
     {
         //读取并刷新工序面板
         foreach (Control control in tlpGongxuNormal.Controls)
         {
             if (control is TextBox)
             {
                 ((TextBox)control).Text = XML3DPPM.GetIndexAttr(a, b, control.Name, XmlFile);
             }
             else if (control is CheckBox)
             {
                 bool check = NXFun.string2bool(XML3DPPM.GetIndexAttr(a, b, control.Name, XmlFile));
                 ((CheckBox)control).CheckState = check?CheckState.Checked:CheckState.Unchecked;
             }
         }
     }
     else if (a > 0 && b > 0)
     {
         //读取并刷新工步面板
         foreach (Control control in tlpGongbu.Controls)
         {
             if (control is TextBox)
             {
                 ((TextBox)control).Text = XML3DPPM.GetIndexAttr(a, b, control.Name, XmlFile);
             }
         }
         //读取并刷新子工步面板
         UpdateZigongbu(a, b, true);
     }
 }
Esempio n. 9
0
        //添加工序按钮
        private void tsrbtnAddGongxu_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwGongYi.SelectedNode;

            if (sel == null)
            {
                SetStatusLabel("请先选中树节点", 1);
                return;
            }
            if (sel.Tag.ToString() == "Gongyi")
            {
                AddGongxuFun(-1);
                SetStatusLabel("已创建新工序到末尾", 2);
                FreshGongYiTree();
                //编辑工序节点
                OnEditGongxu = XML3DPPM.GetGongxuCount(XmlFile);
                OnEditGongbu = 0;
                IsEdit       = true;
                FreshEditTable();
                return;
            }
            else if (sel.Tag.ToString() == "Gongxu")
            {
                int index = sel.Index;
                AddGongxuFun(index);
                SetStatusLabel("已插入新工序在选中节点前", 2);
                FreshGongYiTree();
                //编辑工序节点
                OnEditGongxu = index + 1;
                OnEditGongbu = 0;
                IsEdit       = true;
                FreshEditTable();
                return;
            }
            else if (sel.Tag.ToString() == "Gongbu")
            {
                SetStatusLabel("请选中工艺或工序节点", 2);
                return;
            }
            return;
        }
Esempio n. 10
0
        //添加工步菜单
        private void cmsGongxuAddGongbu_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwGongYi.SelectedNode;

            if (sel == null || sel.Tag.ToString() != "Gongxu")
            {
                SetStatusLabel("请选中工序节点", 1);
                return;
            }
            int index = sel.Index;

            AddGongbuFun(index, -1);
            SetStatusLabel("已插入新工步在选中工序末尾", 2);
            FreshGongYiTree();
            //编辑工序节点
            OnEditGongxu = index + 1;
            OnEditGongbu = XML3DPPM.GetGongbuCount(index + 1, XmlFile);
            IsEdit       = true;
            FreshEditTable();
            return;
        }
Esempio n. 11
0
        //添加工步按钮
        private void tsrbtnAddGongbu_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwGongYi.SelectedNode;

            if (sel == null || sel.Tag.ToString() == "Gongyi")
            {
                SetStatusLabel("请选中工序或工步节点", 1);
                return;
            }
            else if (sel.Tag.ToString() == "Gongxu")
            {
                int index = sel.Index;
                AddGongbuFun(index, -1);
                SetStatusLabel("已插入新工步在选中工序末尾", 2);
                FreshGongYiTree();
                //编辑工序节点
                OnEditGongxu = index + 1;
                OnEditGongbu = XML3DPPM.GetGongbuCount(index + 1, XmlFile);
                IsEdit       = true;
                FreshEditTable();
                return;
            }
            else if (sel.Tag.ToString() == "Gongbu")
            {
                int a = sel.Parent.Index;
                int b = sel.Index;
                AddGongbuFun(a, b);
                SetStatusLabel("已插入新工步在选中节点前", 2);
                FreshGongYiTree();
                //编辑工序节点
                OnEditGongxu = a + 1;
                OnEditGongbu = b + 1;
                IsEdit       = true;
                FreshEditTable();
                return;
            }
            FreshGongYiTree();
            return;
        }
Esempio n. 12
0
        //恢复工艺
        private void RecoverProject()
        {
            folderBrowserDialog.Description         = "请选择要打开的工艺临时文件夹:";
            folderBrowserDialog.ShowNewFolderButton = false;
            DialogResult result = folderBrowserDialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                string path = folderBrowserDialog.SelectedPath;
                //判断合法性
                string root     = Path.GetPathRoot(path);
                string pathname = Path.GetDirectoryName(path);
                string filename = Path.GetFileName(path);
                if (path.Equals(root) && string.IsNullOrEmpty(pathname) && string.IsNullOrEmpty(filename))
                {
                    MessageBox.Show("请不要选择根目录!");
                    return;
                }
                else if (NXFun.IsChina(path))
                {
                    MessageBox.Show("NX不支持中文路径,请修改路径!");
                    return;
                }
                else if (!NXFun.isFileExist(path + "\\" + NXFun.ProcessXML))
                {
                    MessageBox.Show("所选路径非工艺临时数据包");
                    return;
                }
                else
                {
                    ProPath = pathname;
                    ProName = filename;
                    XmlFile = ToFullPath(NXFun.ProcessXML);
                    XML3DPPM.Update3dppm(XmlFile, TemplateXML);
                    OpenOrCreateProjectInit();
                }
            }
        }
Esempio n. 13
0
        //关闭工艺
        private bool CloseProject(bool isSave)
        {
            bool           result    = false;
            List <S_Model> ModelList = XML3DPPM.GetModelList(XmlFile);

            //关闭所有并保存压缩
            foreach (S_Model model in ModelList)
            {
                if (!String.IsNullOrEmpty(model.filename))
                {
                    NXFun.ClosePrt(ToFullPath(model.filename), isSave);
                }
            }
            if (isSave)
            {
                //压缩
                string tempZip = ProPath + "\\" + ProName + ".tmp";
                bool   isSaved = Compress.RAR(NXFun.TDPPMPath + NXFun.RarEXE, tempZip, ProPath + "\\" + ProName);
                if (isSaved)
                {
                    File.Copy(tempZip, ProPath + "\\" + ProName + ".3dppm", true);
                    File.Delete(tempZip);
                    NXFun.DeleteDirectory(ProPath + "\\" + ProName);
                    SetStatusLabel("保存工艺成功!", 2);
                    result = true;
                }
                else
                {
                    result = false;
                }
            }
            else
            {
                result = true;
            }
            return(result);
        }
Esempio n. 14
0
 //更新或保存子工步信息
 /// <summary>
 /// 更新或保存子工步信息
 /// </summary>
 /// <param name="a">工序</param>
 /// <param name="b">工步</param>
 /// <param name="isRead">true为读xml到控件,flase为写控件到xml</param>
 private void UpdateZigongbu(int a, int b, bool isRead)
 {
     if (isRead)
     {
         S_ChildStep[] childsteps = XML3DPPM.GetChildStepList(a, b, XmlFile);
         dgvZigongbu.Rows.Clear();
         for (int i = 0; i < childsteps.Length; i++)
         {
             dgvZigongbu.Rows.Add();
             dgvZigongbu[0, i].Value = i;
             dgvZigongbu[1, i].Value = childsteps[i].name;
             dgvZigongbu[2, i].Value = childsteps[i].renju;
             dgvZigongbu[3, i].Value = childsteps[i].liangju;
             dgvZigongbu[4, i].Value = childsteps[i].beizhu;
         }
     }
     else
     {
         List <S_ChildStep> childsteps = new List <S_ChildStep>();
         S_ChildStep        childstep;
         for (int i = 0; i < dgvZigongbu.Rows.Count; i++)
         {
             childstep.name    = (string)dgvZigongbu[1, i].Value;
             childstep.renju   = (string)dgvZigongbu[2, i].Value;
             childstep.liangju = (string)dgvZigongbu[3, i].Value;
             childstep.beizhu  = (string)dgvZigongbu[4, i].Value;
             if (!(string.IsNullOrEmpty(childstep.name) &&
                   string.IsNullOrEmpty(childstep.renju) &&
                   string.IsNullOrEmpty(childstep.liangju) &&
                   string.IsNullOrEmpty(childstep.beizhu)))
             {
                 childsteps.Add(childstep);
             }
         }
         XML3DPPM.SetChildStepList(a, b, childsteps, XmlFile, TemplateXML);
     }
 }
Esempio n. 15
0
        //打开或新建工艺时初始化
        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();
        }
Esempio n. 16
0
        //删除图纸页按钮
        private void tsrbtnDel_Click(object sender, EventArgs e)
        {
            TreeNode sel = tvwSheet.SelectedNode;

            if (sel == null || sel.Tag.ToString() != "Sheet")
            {
                SetStatusLabel("请选中树中图纸节点", 1);
                return;
            }
            DialogResult dialogResult = MessageBox.Show("是否删除选中图纸?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dialogResult != DialogResult.Yes)
            {
                return;
            }
            string prtfullpath = ToFullPath(XML3DPPM.GetModelName(0, sel.Parent.Index, XmlFile));
            string guid        = sel.Name;

            NXFun.OpenPrt(prtfullpath);
            NXOpen.Drawings.DrawingSheet ds = NXFun.GetSheetByGuid(prtfullpath, guid);
            NXFun.DeleteObject(ds);
            SetStatusLabel("已删除图纸页", 2);
            FreshSheetTree();
        }
Esempio n. 17
0
 //右击菜单
 private void tvwSheet_MouseClick(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Right)
     {
         System.Drawing.Point clickPoint = new System.Drawing.Point(e.X, e.Y);
         TreeNode             sel        = tvwSheet.GetNodeAt(clickPoint);
         if (sel != null)
         {
             tvwSheet.SelectedNode = sel;
             if (sel.Tag.ToString() == "Gongyi" || sel.Tag.ToString() == "Gongxu")
             {
                 string filename = XML3DPPM.GetModelName(0, sel.Index, XmlFile);
                 if (!string.IsNullOrEmpty(filename))
                 {
                     sel.ContextMenuStrip = cmsModel;
                 }
             }
             else if (sel.Tag.ToString() == "Sheet")
             {
                 sel.ContextMenuStrip = cmsSheet;
             }
         }
     }
 }
Esempio n. 18
0
        //刷新图纸树
        public void FreshSheetTree()
        {
            tvwSheet.Nodes.Clear();
            tvwSheet.ImageIndex         = 3;
            tvwSheet.SelectedImageIndex = 3;
            //第一个为工艺节点
            TreeNode gyTreeNode = new TreeNode();
            string   filename   = XML3DPPM.GetModelName(0, 0, XmlFile);

            gyTreeNode.Text =
                XML3DPPM.GetIndexAttr(0, 0, "gongyi_jianming", XmlFile) +
                " (" +
                filename +
                ")";
            gyTreeNode.Tag = "Gongyi";
            bool IsNull = string.IsNullOrEmpty(filename);

            gyTreeNode.ImageIndex         = IsNull?1:0;
            gyTreeNode.SelectedImageIndex = IsNull ? 1 : 0;
            tvwSheet.Nodes.Add(gyTreeNode);
            if (!string.IsNullOrEmpty(filename))
            {
                List <S_Sheet> SheetTempletList = NXFun.GetSheetTempletList(ToFullPath(filename));
                foreach (S_Sheet sheet in SheetTempletList)
                {
                    TreeNode sheetTreeNode = new TreeNode();
                    sheetTreeNode.Text               = sheet.SheetName + "_" + sheet.Remark;
                    sheetTreeNode.Tag                = "Sheet";
                    sheetTreeNode.Name               = sheet.guid; //利用guid标识图纸
                    sheetTreeNode.ImageIndex         = 2;
                    sheetTreeNode.SelectedImageIndex = 2;
                    gyTreeNode.Nodes.Add(sheetTreeNode);
                }
            }
            //之后为工序节点
            int gxNum = XML3DPPM.GetGongxuCount(XmlFile);

            for (int i = 0; i < gxNum; i++)
            {
                TreeNode gxTreeNode = new TreeNode();
                filename        = XML3DPPM.GetModelName(0, i + 1, XmlFile);
                gxTreeNode.Text =
                    XML3DPPM.GetIndexAttr(i + 1, 0, "gongxu_gongxuhao", XmlFile) +
                    "_" +
                    XML3DPPM.GetIndexAttr(i + 1, 0, "gongxu_gongxumingcheng", XmlFile) +
                    " (" +
                    filename +
                    ")";
                gxTreeNode.Tag                = "Gongxu";
                IsNull                        = string.IsNullOrEmpty(filename);
                gxTreeNode.ImageIndex         = IsNull ? 1 : 0;
                gxTreeNode.SelectedImageIndex = IsNull ? 1 : 0;
                tvwSheet.Nodes.Add(gxTreeNode);
                if (!string.IsNullOrEmpty(filename))
                {
                    List <S_Sheet> SheetTempletList = NXFun.GetSheetTempletList(ToFullPath(filename));
                    foreach (S_Sheet sheet in SheetTempletList)
                    {
                        TreeNode sheetTreeNode = new TreeNode();
                        sheetTreeNode.Text               = sheet.SheetName + "_" + sheet.Remark;
                        sheetTreeNode.Tag                = "Sheet";
                        sheetTreeNode.Name               = sheet.guid; //利用guid标识图纸
                        sheetTreeNode.ImageIndex         = 2;
                        sheetTreeNode.SelectedImageIndex = 2;
                        gxTreeNode.Nodes.Add(sheetTreeNode);
                    }
                }
            }
            tvwSheet.ExpandAll();
            CharEdit.RefreshSheet();
        }
Esempio n. 19
0
 //删除工序或者工步
 //  0 0 工艺    不可用
 //  N 0 第N个工序
 //  N M 第N个工序的第M个工步
 /// <summary>
 /// 删除工序或者工步
 /// </summary>
 /// <param name="gongxu_index">工序坐标</param>
 /// <param name="gongbu_index">工步坐标</param>
 private bool DelNodeFun(int gongxu_index, int gongbu_index)
 {
     return(XML3DPPM.DelNode(gongxu_index, gongbu_index, XmlFile));
 }
Esempio n. 20
0
 //添加工序节点的函数
 //插入节点坐标的位置:
 //原    新(index)
 //		0
 //0-------
 //		1
 //1-------
 //		2
 //2-------
 //		3 or -1
 //--------
 /// <summary>
 /// 添加工序节点
 /// </summary>
 /// <param name="index">插入节点坐标的位置</param>
 private void AddGongxuFun(int index)
 {
     XML3DPPM.AddGongxu(index, "普通工序", XmlFile, TemplateXML);
 }
Esempio n. 21
0
 //添加工步节点的函数
 //插入节点坐标的位置:
 //原    新(index)
 //		0
 //0-------
 //		1
 //1-------
 //		2
 //2-------
 //		3 or -1
 //--------
 /// <summary>
 /// 添加工步节点
 /// </summary>
 /// <param name="gongxu_index">工序位置 从0算起 </param>
 /// <param name="gongbu_index">新工步位置  0  为首 …… -1为末</param>
 private void AddGongbuFun(int gongxu_index, int gongbu_index)
 {
     XML3DPPM.AddGongbu(gongxu_index, gongbu_index, XmlFile, TemplateXML);
 }
Esempio n. 22
0
 //确定按钮
 private void tsrbtnOk_Click(object sender, EventArgs e)
 {
     if (IsEditYingdu)
     {
         //编辑硬度
         dgvYingdu.EndEdit();
         List <S_Yingdu> YingduList = new List <S_Yingdu>();
         S_Yingdu        s_yingdu;
         for (int i = 0; i < dgvYingdu.Rows.Count; i++)
         {
             s_yingdu.gongxuhao = (string)dgvYingdu[1, i].Value;
             s_yingdu.yingdu    = (string)dgvYingdu[2, i].Value;
             YingduList.Add(s_yingdu);
         }
         bool result = XML3DPPM.SetYingduList(YingduList, XmlFile);
         if (!result)
         {
             SetStatusLabel("硬度设置失败!请检查输入工序号正确与否。", 1);
             return;
         }
         tsrbtnSetHardness.Visible = true;
         IsEditYingdu = false;
         dgvYingdu.SendToBack();
         FreshEditTable();
         SetStatusLabel("硬度设置成功", 2);
         return;
     }
     else
     {
         //编辑工艺
         dgvZigongbu.EndEdit();
         IsEdit = false;
         //保存
         if (OnEditGongxu == 0 && OnEditGongbu == 0)
         {
             //保存工艺界面
             foreach (Control control in tlpGongyiNormal.Controls)
             {
                 if (control is TextBox)
                 {
                     XML3DPPM.SetIndexAttr(OnEditGongxu, OnEditGongbu, control.Name, ((TextBox)control).Text, XmlFile);
                 }
             }
         }
         else if (OnEditGongxu > 0 && OnEditGongbu == 0)
         {
             //保存工序界面
             foreach (Control control in tlpGongxuNormal.Controls)
             {
                 if (control is TextBox)
                 {
                     XML3DPPM.SetIndexAttr(OnEditGongxu, OnEditGongbu, control.Name, ((TextBox)control).Text, XmlFile);
                 }
                 else if (control is CheckBox)
                 {
                     bool check = ((CheckBox)control).CheckState == CheckState.Checked;
                     XML3DPPM.SetIndexAttr(OnEditGongxu, OnEditGongbu, control.Name, NXFun.bool2string(check), XmlFile);
                 }
             }
         }
         else if (OnEditGongxu > 0 && OnEditGongbu > 0)
         {
             //保存工步界面
             foreach (Control control in tlpGongbu.Controls)
             {
                 if (control is TextBox)
                 {
                     XML3DPPM.SetIndexAttr(OnEditGongxu, OnEditGongbu, control.Name, ((TextBox)control).Text, XmlFile);
                 }
             }
             UpdateZigongbu(OnEditGongxu, OnEditGongbu, false);
         }
         FreshEditTable();
         FreshGongYiTree();
         SetStatusLabel("已保存编辑", 2);
     }
 }
Esempio n. 23
0
    //------------------------------------------------------------------------------
    //Callback Name: dialogShown_cb
    //------------------------------------------------------------------------------
    public void dialogShown_cb()
    {
        try
        {
            //读取SheetTemplet.xml中的模板信息
            string xmlpath = NXFun.TDPPMPath + "SheetTemplet.xml";
            List <S_SheetTemplet> SheetTempletList = XML3DPPM.GetSheetTempletList(xmlpath);
            //分类存储
            SheetTempletListA3.Clear();
            SheetTempletListA4.Clear();
            SheetTempletListOther.Clear();
            foreach (S_SheetTemplet SheetTemplet in SheetTempletList)
            {
                if (SheetTemplet.type == "A3")
                {
                    SheetTempletListA3.Add(SheetTemplet);
                }
                else if (SheetTemplet.type == "A4")
                {
                    SheetTempletListA4.Add(SheetTemplet);
                }
                else
                {
                    SheetTempletListOther.Add(SheetTemplet);
                }
            }
            stringA3 = new string[SheetTempletListA3.Count];
            for (int i = 0; i < SheetTempletListA3.Count; i++)
            {
                stringA3[i] = SheetTempletListA3[i].chinese;
            }
            stringA4 = new string[SheetTempletListA4.Count];
            for (int i = 0; i < SheetTempletListA4.Count; i++)
            {
                stringA4[i] = SheetTempletListA4[i].chinese;
            }
            stringOther = new string[SheetTempletListOther.Count];
            for (int i = 0; i < SheetTempletListOther.Count; i++)
            {
                stringOther[i] = SheetTempletListOther[i].chinese;
            }
            //设置初始显示状态
            enum0.GetProperties().SetEnumAsString("Value", "A3");
            list_box0.GetProperties().SetStrings("ListItems", stringA3);

            //取得当前的图纸名称列表
            NXOpen.Drawings.DrawingSheet[] ds = theSession.Parts.Work.DrawingSheets.ToArray();
            SheetNames = new string[ds.Length];
            for (int i = 0; i < ds.Length; i++)
            {
                SheetNames[i] = ds[i].Name;
            }
            list_box02.GetProperties().SetStrings("ListItems", SheetNames);
            //设置图纸名
            string name;
            int    n = 1;
            do
            {
                name = "SHT" + n.ToString();
                n++;
            } while (NXFun.isFindInList(SheetNames, name));
            string0.GetProperties().SetString("Value", name);
        }
        catch (Exception ex)
        {
            theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
        }
    }
Esempio n. 24
0
        //打开工艺
        private void OpenProject()
        {
            openFileDialog.Title    = "请选择要打开的工艺文件:";
            openFileDialog.Filter   = "3DPPM 文件 (*.3dppm)|*.3dppm";
            openFileDialog.FileName = "";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filename = openFileDialog.FileName;
                if (NXFun.IsChina(filename))
                {
                    MessageBox.Show("NX不支持中文路径,请将工艺文件放到英文路径下再打开.");
                    return;
                }
                else
                {
                    //得到工艺路径和文件名;
                    ProPath = Path.GetDirectoryName(filename);
                    ProName = Path.GetFileNameWithoutExtension(filename);
                    XmlFile = ToFullPath(NXFun.ProcessXML);
                    //删除文件夹;
                    bool result = NXFun.DeleteDirectory(ProPath + "\\" + ProName);
                    if (!result)
                    {
                        MessageBox.Show("文件夹" + ProPath + "\\" + ProName + "无法删除,请手动关闭可能已打开的文件并删除该目录。");
                        return;
                    }
                    //判断是否是压缩文件
                    int type = GetFileRealType(filename);
                    switch (type)
                    {
                    case -1:
                        MessageBox.Show("读取文件出错,请确认文件是否有效!");
                        return;

                    case 0:
                        break;

                    case 1:
                        break;

                    default:
                        MessageBox.Show("读取文件出错,请确认文件是否有效!");
                        return;
                    }
                    //解压
                    bool isUnZip = true;
                    if (type == 0)
                    {
                        //按zip格式解压
                        isUnZip = Compress.UnZipFileDictory(filename, "");
                    }
                    else if (type == 1)
                    {
                        //按rar格式解压
                        isUnZip = Compress.UnRAR(NXFun.TDPPMPath + NXFun.RarEXE, filename, ToFullPath(""));
                    }
                    if (!isUnZip)
                    {
                        MessageBox.Show(
                            "工艺文件打开失败!请确认以下几项:\r\n" +
                            "1:文件有是否有效;\r\n" +
                            "2:工艺临时文件夹或其中文件若处于打开状态请关闭。");
                        return;
                    }
                    //检测文件有效性
                    if (!NXFun.isFileExist(XmlFile))
                    {
                        MessageBox.Show("工艺数据文件丢失!请确认文件有效!");
                    }
                    //检测版本有效性,若旧版则自动升级
                    XML3DPPM.Update3dppm(XmlFile, TemplateXML);


                    OpenOrCreateProjectInit();
                    //打开所有模型
                    List <S_Model> ModelList = XML3DPPM.GetModelList(XmlFile);
                    foreach (S_Model model in ModelList)
                    {
                        if (!String.IsNullOrEmpty(model.filename))
                        {
                            NXFun.OpenPrtQuiet(ToFullPath(model.filename));
                        }
                    }
                    SetStatusLabel("工艺打开成功!", 2);
                }
            }
        }
Esempio n. 25
0
 //保存工艺
 private bool SaveProject(bool isQuit)
 {
     try
     {
         bool           result    = false;
         List <S_Model> ModelList = XML3DPPM.GetModelList(XmlFile);
         if (isQuit)
         {
             //关闭所有并保存压缩
             foreach (S_Model model in ModelList)
             {
                 if (!String.IsNullOrEmpty(model.filename))
                 {
                     NXFun.ClosePrt(ToFullPath(model.filename), true);
                 }
             }
             //压缩
             string tempZip = ProPath + "\\" + ProName + ".tmp";
             bool   isSaved = Compress.RAR(NXFun.TDPPMPath + NXFun.RarEXE, tempZip, ProPath + "\\" + ProName);
             if (isSaved)
             {
                 File.Copy(tempZip, ProPath + "\\" + ProName + ".3dppm", true);
                 File.Delete(tempZip);
                 NXFun.DeleteDirectory(ProPath + "\\" + ProName);
                 SetStatusLabel("保存工艺成功!", 2);
                 result = true;
             }
             else
             {
                 SetStatusLabel("工艺保存失败!", 1);
                 MessageBox.Show("工艺保存失败!");
                 result = false;
             }
         }
         else
         {
             //仅保存
             foreach (S_Model model in ModelList)
             {
                 if (!String.IsNullOrEmpty(model.filename))
                 {
                     NXFun.SavePrt(ToFullPath(model.filename));
                 }
             }
             //压缩
             string tempZip = ProPath + "\\" + ProName + ".tmp";
             bool   isSaved = Compress.RAR(NXFun.TDPPMPath + NXFun.RarEXE, tempZip, ProPath + "\\" + ProName);
             if (isSaved)
             {
                 File.Copy(tempZip, ProPath + "\\" + ProName + ".3dppm", true);
                 File.Delete(tempZip);
                 SetStatusLabel("保存工艺成功!", 2);
                 result = true;
             }
             else
             {
                 SetStatusLabel("工艺保存失败!", 1);
                 MessageBox.Show("工艺保存失败!");
                 result = false;
             }
         }
         return(result);
     }
     catch (System.Exception ex)
     {
         MessageBox.Show(ex.Message);
         return(false);
     }
 }