private void btnUpdateFrameSize_Click(object sender, EventArgs e)
        {
            Acad.Document acCurDoc = Acad.Application.DocumentManager.MdiActiveDocument;
            try
            {
                if (cmbDirection.SelectedIndex == -1 || cmbFrameSize.SelectedIndex == -1 || cmbItemType.SelectedIndex == -1)
                {
                    Acad.Application.ShowAlertDialog("类型、方向、图幅参数必须选择!");
                }

                DwgFrameTools dft = new DwgFrameTools(acCurDoc, XmlUtil.getXmlValue("markArea", "value") == "true");

                DwgInfo info = dft.DwgInformation;
                dft.ReplaceFrameBlock(dft.GenerateStandardDwgFileName(
                                          cmbItemType.SelectedIndex == 1,  //1——零件
                                          cmbDirection.SelectedIndex == 0, //0——横向
                                          cmbFrameSize.Text));
                DwgFrameTools dft2 = new DwgFrameTools(acCurDoc, XmlUtil.getXmlValue("markArea", "value") == "true");
                //info.Name += "new";
                //info.DwgNO = "new Dwg no";

                dft2.UpdateDwgInfo(info);
            }
            catch (System.Exception ex)
            {
                acCurDoc.Editor.WriteMessage(ex.ToString());
            }
        }
Beispiel #2
0
        private void ModifyDwgs(Dictionary <String, DataRow> dict)
        {
            try
            {
                foreach (var entry in dict)
                {
                    if (!File.Exists(entry.Key))
                    {
                        continue;                            //文件不存在则跳过
                    }
#if R18
                    Acad.Document doc = Acad.Application.DocumentManager.Open(entry.Key, true);
#elif R19
                    Acad.Document doc = Acad.DocumentCollectionExtension.Open(Acad.Application.DocumentManager, entry.Key, true, "");
#elif R20
                    Acad.Document doc = Acad.DocumentCollectionExtension.Open(Acad.Application.DocumentManager, entry.Key, true, "");
#endif
                    //Thread.Sleep(500);
                    bool drawMarkLine = XmlUtil.getXmlValue("markArea", "value") == "true";
                    var  dft          = new DwgFrameTools(doc, drawMarkLine);

                    Dictionary <DwgInfoTypeEnum, String> info = new Dictionary <DwgInfoTypeEnum, string>();

                    info.Add(DwgInfoTypeEnum.图号, entry.Value["图号"] as string);
                    info.Add(DwgInfoTypeEnum.称, entry.Value["名称"] as string);
                    info.Add(DwgInfoTypeEnum.版本, entry.Value["版本"] as string);
                    info.Add(DwgInfoTypeEnum.比例, entry.Value["比例"] as string);
                    info.Add(DwgInfoTypeEnum.密级, entry.Value["密级"] as string);
                    info.Add(DwgInfoTypeEnum.总张数, (entry.Value["张数"] as string).Split('-')[0]);
                    info.Add(DwgInfoTypeEnum.数, (entry.Value["张数"] as string).Split('-')[1]);
                    info.Add(DwgInfoTypeEnum.重量, entry.Value["重量"] as string);
                    dft.UpdateDwgInfo(info);
                    //doc.CloseAndSave(doc.Name);
                    doc.Database.SaveAs(doc.Name, false, AcDb.DwgVersion.Current, doc.Database.SecurityParameters);

#if R18
                    doc.CloseAndDiscard();
#elif R19
                    Acad.DocumentExtension.CloseAndDiscard(doc);
#elif R20
                    Acad.DocumentExtension.CloseAndDiscard(doc);
#endif

                    //doc.CloseAndDiscard();
                }
            }
            catch
            {
                throw;
            }
        }
Beispiel #3
0
        private void SingleDwgInfo_Load(object sender, EventArgs e)
        {
            //acCurDoc.Editor.WriteMessage(acCurDoc.Database.Filename + "解析数据中。。。\r\n");
            try
            {
                acCurDoc = Acad.Application.DocumentManager.MdiActiveDocument;
                dft      = new DwgFrameTools(acCurDoc, XmlUtil.getXmlValue("markArea", "value") == "true");
                InitParameters();

                //切换文件自动加载,容易抛异常,不用
                //Acad.Application.DocumentManager.DocumentActivated += InitParameters;
            }
            catch (System.Exception ex)
            {
                Acad.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\r\n发生错误:" + ex + "\r\n");
            }
        }
Beispiel #4
0
        private void UpdateFrameSize()
        {
            //未更改则不改图框
            if (ckForceUpdateFrame.Checked == false && this.size == cmbFrameSize.Text && cmbDirection.Text == this.dft.DwgInformation.Direction && cmbItemType.Text == this.dft.DwgInformation.DwgType)
            {
                Acad.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\r\n跳过更新图框。。。\r\n");
                return;
            }
            if (cmbDirection.SelectedIndex == -1 || cmbFrameSize.SelectedIndex == -1 || cmbItemType.SelectedIndex == -1)
            {
                Acad.Application.ShowAlertDialog("类型、方向、图幅参数必须选择!");
            }

            DwgFrameTools dft = new DwgFrameTools(acCurDoc, XmlUtil.getXmlValue("markArea", "value") == "true");

            DwgInfo info = dft.DwgInformation;

            dft.ReplaceFrameBlock(dft.GenerateStandardDwgFileName(
                                      cmbItemType.SelectedIndex == 1,               //1——零件
                                      cmbDirection.SelectedItem.ToString() == "横向", //0——横向
                                      cmbFrameSize.Text));
        }