Exemplo n.º 1
0
        public static void CloseSelected(List <Drawing> drawings)
        {
            WindowController2.BringAutoCadToTop();
            AutoCad.Command.Prepare();

            AutoCad.Db.Database.SetFileDialogMode(false);

            foreach (var drawing in drawings)
            {
                WindowController2.BringDrawingToTop(drawing.WindowHandle);
                AutoCad.Command.Prepare();

                try
                {
                    while (true)
                    {
                        //closeコマンドはスクリプトを使わないと、保存を確かめるダイアログが出て処理が止まってしまう。
                        AutoCad.Command.SendLineEsc(@"script C:\UnitWiring\Scripts\Close.scr");

                        var currentHandle = WindowController2.GetTopDrawingHandle();

                        if (drawing.WindowHandle != currentHandle)
                        {
                            break;
                        }
                    }
                }
                catch
                { //取得に失敗したということは開いている図面が無いということなので抜けて良し
                }
            }

            AutoCad.Db.Database.SetFileDialogMode(true);
        }
Exemplo n.º 2
0
        private void DrawFrame()
        {
            AutoCad.Db.Database.SetFileDialogMode(false);

            foreach (var drawing in this.drawings)
            {
                WindowController2.BringDrawingToTop(drawing.WindowHandle);

                var layout = this.GetLayout(drawing);
                if (layout == null)
                {
                    throw new ApplicationException("Failed to get template file.");
                }

                this.InsertLayoutTemplate(layout);

                this.SetLayer();

                //ビューポートの縮尺を設定してからこれを呼ばないと、図枠の縮尺が正しく記入されない
                this.InsertLayoutTexts(drawing, layout);

                AutoCad.Command.ZoomAll();
                AutoCad.Command.RefreshExEx();
            }
        }
Exemplo n.º 3
0
        public static int SaveAll(string savePath)
        {
            if (!savePath.EndsWith(@"\"))
            {
                savePath += @"\";
            }

            WindowController2.BringAutoCadToTop();
            AutoCad.Command.Prepare();

            if (!System.IO.Directory.Exists(savePath + Static.ConstructionCode))
            {
                System.IO.Directory.CreateDirectory(savePath + Static.ConstructionCode);
            }

            var drawings = Drawing.GetAll(true);

            drawings.AddRange(Drawing.GetAllForSocketPlan(null));

            AutoCad.Db.Database.SetFileDialogMode(false);

            foreach (var drawing in drawings)
            {
                WindowController2.BringDrawingToTop(drawing.WindowHandle);

                string fileName = Static.Drawing.Prefix + "-" +
                                  Static.Drawing.ConstructionCodePlanRevisionNo + "-" +
                                  drawing.FloorCode + ".dwg";

                if (drawing.IsSocketPlan)
                {
                    fileName = drawing.FileName;
                }

                string filePath = savePath + Static.ConstructionCode + "\\" + fileName;

                var overwrite = false; //別の場所から同名のファイルを持ってきて保存する時は上書き確認する
                if (drawing.FullPath.ToUpper() != filePath.ToUpper() &&
                    drawing.FileName.ToUpper() == fileName.ToUpper())
                {
                    overwrite = true;
                }

                AutoCad.File.Save(filePath, overwrite);

                drawing.FullPath = filePath;
            }

            var groundFloor = drawings.Find(p => p.Floor == 1);

            if (groundFloor != null)
            {
                WindowController2.BringDrawingToTop(groundFloor.WindowHandle);
            }

            AutoCad.Db.Database.SetFileDialogMode(true);

            return(drawings.Count);
        }
Exemplo n.º 4
0
        public static void Bring1FDrawingToTop()
        {
            var drawings    = Drawing.GetAll(false);
            var groundFloor = drawings.Find(p => p.Floor == 1);

            if (groundFloor != null)
            {
                WindowController2.BringDrawingToTop(groundFloor.WindowHandle);
            }
        }
Exemplo n.º 5
0
        public void SaveDrawings()
        {
            WindowController2.BringAutoCadToTop();
            AutoCad.Command.Prepare();
            AutoCad.Db.Database.SetFileDialogMode(false);

            foreach (var dwg in this.socketPlanDrawings)
            {
                WindowController2.BringDrawingToTop(dwg.WindowHandle);

                AutoCad.File.Save(this.directoryPath + dwg.FileName, true);
            }

            AutoCad.Db.Database.SetFileDialogMode(true);
        }
        //加工依頼後で、回路図面が存在しない場合警告
        public static void WarnNotExistsKairoFrame(List <Drawing> drawings)
        {
            var messageId = @"There is no 提案HEMS回路図面. Please create a 提案HEMS回路図面 before do the option picking.";
            var validator = new Validator();

            validator.Validate = delegate()
            {
                //加工依頼前はノーチェック
                using (var server = new SocketPlanServiceNoTimeout())
                {
                    if (server.IsBeforeProcessRequest(Static.ConstructionCode))
                    {
                        return(null);
                    }
                }

                var error = new ErrorDialog(messageId, 0);

                //回路図面が見つからなかったらエラー
                var kairoLayoutName = "提案HEMS回路図面";
                foreach (var drawing in drawings)
                {
                    if (drawing.Floor < 1 || drawing.Floor > 3)
                    {
                        continue;
                    }

                    WindowController2.BringDrawingToTop(drawing.WindowHandle);
                    AutoCad.Command.SetCurrentLayoutToModel();
                    var modelLayout = AutoCad.Db.Layout.GetCurrent();
                    AutoCad.Command.SetCurrentLayout(kairoLayoutName);
                    var kairoLayout = AutoCad.Db.Layout.GetCurrent();
                    if (modelLayout == kairoLayout)
                    {
                        return(error);
                    }
                }
                return(null);
            };

            validator.Run(messageId);
        }
Exemplo n.º 7
0
        public static void Bring1FDrawingToTop(SocketPlanType type)
        {
            var drawings = Drawing.GetAll(false);

            Drawing groundFloor;

            if (type == SocketPlanType.Individual)
            {
                groundFloor = drawings.Find(p => p.Floor == 1 && p.Name.Contains("Individual"));
            }
            else if (type == SocketPlanType.Pattern)
            {
                groundFloor = drawings.Find(p => p.Floor == 1 && p.Name.Contains("Pattern"));
            }
            else
            {
                throw new ApplicationException("Invalid socket plan type is selected.");
            }

            if (groundFloor != null)
            {
                WindowController2.BringDrawingToTop(groundFloor.WindowHandle);
            }
        }
Exemplo n.º 8
0
 /// <summary>この図面をAutoCADの最前面に持ってくる</summary>
 public void Focus()
 {
     WindowController2.BringDrawingToTop(this.WindowHandle);
 }