Exemplo n.º 1
0
        public static List <Drawing> GetAll(bool withElevationPlan)
        {
            //AutoCAD2013でレイヤ管理画面を表示したまま、図面を切り替えるとエラーになる。
            //対策としてここでやっときゃいいっしょ。
            AutoCad.Command.CloseLayerManager();

            var drawingHandles = WindowController2.GetDrawingHandles();

            //MDIの子画面のサイズを小さくされていると、図面のファイル名を正しく取れないことがある。それ対策。
            if (drawingHandles.Count != 0)
            {
                WindowController2.Maximize(drawingHandles[0]);
            }

            var drawings = new List <Drawing>();

            foreach (var handle in drawingHandles)
            {
                var    title    = WindowController2.GetWindowTitle(handle);
                string fileName = Path.GetFileNameWithoutExtension(title);

                if (!fileName.Contains(Static.ConstructionCode))
                {
                    continue;
                }

                var drawing = new Drawing();
                drawing.WindowHandle = handle;
                drawing.FullPath     = title;

                if (!drawing.IsDenkiPlan)
                {
                    continue;
                }

                if (!withElevationPlan && drawing.IsElevation)
                {
                    continue;
                }

                if (drawing.PlanNo != Static.Drawing.PlanNo)
                {
                    continue;
                }

                if (drawing.RevisionNo != Static.Drawing.RevisionNo)
                {
                    continue;
                }

                drawings.Add(drawing);
            }

            drawings.Sort((p, q) => { return(p.FloorCode.CompareTo(q.FloorCode)); });

            return(drawings);
        }
Exemplo n.º 2
0
        public static int OpenAllForSocketPlan(List <Drawing> drawings)
        {
            var drawingHandles = WindowController2.GetDrawingHandles();

            if (drawingHandles.Count == 0)
            { //図面が一枚も開かれていない場合、コマンドラインが表示されず、以降の処理がスカる。それ対策
                //SendCommandだとテンプレートファイル名を入力するまで処理が帰ってこない
                AutoCad.File.Create(".");
            }

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

            AutoCad.Db.Database.SetFileDialogMode(false);

            AutoCad.Command.DisableSDI();

            //AutoCAD2013対応ここから
            AutoCad.Command.SmoothZoomOff();
            AutoCad.Command.SetInsertUnitToMM();
            //ここまで

            AutoCad.Command.SendLineEsc("PICKSTYLE 1");                  //グループ選択必須

            drawings.Sort((p, q) => p.FloorCode.CompareTo(q.FloorCode)); //1階図面を最後に開くために階の降順でソートする

            int count = 0;
            //同ファイル名の図面を開くと、読み取り専用になって動かなくなるので、同名が既に開いていたら開かない。
            var openedDrawings = Drawing.GetAllForSocketPlan(null);

            foreach (var drawing in drawings)
            {
                if (openedDrawings.Exists(p => p.FileName == drawing.FileName))
                {
                    continue;
                }

                AutoCad.File.Open(drawing.FullPath);

                AutoCad.Command.ZoomAll();
                AutoCad.Command.SetCurrentLayoutToModel();
                count++;
            }

            AutoCad.Db.Database.SetFileDialogMode(true);

            return(count);
        }
Exemplo n.º 3
0
        public void GetExportDrawings()
        {
            AutoCad.Command.CloseLayerManager();
            var drawingHandles = WindowController2.GetDrawingHandles();

            if (drawingHandles.Count != 0)
            {
                WindowController2.Maximize(drawingHandles[0]);
            }

            var drawings = new List <Drawing>();

            foreach (var handle in drawingHandles)
            {
                var    title    = WindowController2.GetWindowTitle(handle);
                string fileName = Path.GetFileNameWithoutExtension(title);

                if (!fileName.Contains(Static.ConstructionCode))
                {
                    continue;
                }

                var drawing = new Drawing();
                drawing.WindowHandle = handle;
                drawing.FullPath     = title;

                if (drawing.PlanNo != Static.Drawing.PlanNo)
                {
                    continue;
                }

                if (drawing.RevisionNo != Static.Drawing.RevisionNo)
                {
                    continue;
                }

                if (!drawing.IsSocketPlan)
                {
                    continue;
                }

                this.socketPlanDrawings.Add(drawing);
            }
        }