Ejemplo n.º 1
0
        public static List <Polyline> SetMultiObjs(string Msg)
        {
            Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView();

            #region 키워드 받기
            PromptKeywordOptions pKeyOpts = new PromptKeywordOptions("");
            pKeyOpts.Message = "\n도면 번호를 입력하세요.";
            pKeyOpts.Keywords.Add("P01");
            pKeyOpts.Keywords.Add("P02");
            pKeyOpts.Keywords.Add("P03");
            pKeyOpts.Keywords.Add("P04");
            pKeyOpts.Keywords.Add("P05");
            pKeyOpts.Keywords.Add("P06");
            pKeyOpts.Keywords.Add("P07");
            pKeyOpts.Keywords.Add("P08");
            pKeyOpts.Keywords.Add("P09");
            pKeyOpts.Keywords.Add("P10");
            pKeyOpts.Keywords.Add("P11");
            pKeyOpts.Keywords.Add("P12");
            pKeyOpts.Keywords.Add("Test");

            pKeyOpts.AllowNone = false;
            pKeyOpts.AppendKeywordsToMessage = true;

            PromptResult pKeyRes = AC.Editor.GetKeywords(pKeyOpts);
            #endregion

            #region 폴리라인 선택
            PromptSelectionOptions opt = new PromptSelectionOptions();
            opt.MessageForAdding = Msg;
            PromptSelectionResult acPSR = AC.Editor.GetSelection(opt);
            #endregion

            #region 입력
            if (acPSR.Status != PromptStatus.OK)
            {
                AC.Editor.WriteMessage("\n취소");
                return(new List <Polyline>());
            }
            else
            {
                var A = acPSR.Value;
                var B = Get.Objects <Polyline>(A);
                //var R = from b in B select new iRoom(b);

                //if (R.Any())
                //{
                //    //switch (pKeyRes.StringResult)
                //    //{
                //    //    case "P01":
                //    //        PLANDB.P01.Add(R.ToList()); break;
                //    //    case "P02":
                //    //        PLANDB.P02.Add(R.ToList()); break;
                //    //    case "P03":
                //    //        PLANDB.P03.Add(R.ToList()); break;
                //    //    case "P04":
                //    //        PLANDB.P04.Add(R.ToList()); break;
                //    //    case "P05":
                //    //        PLANDB.P05.Add(R.ToList()); break;
                //    //    case "P06":
                //    //        PLANDB.P06.Add(R.ToList()); break;
                //    //    case "P07":
                //    //        PLANDB.P07.Add(R.ToList()); break;
                //    //    case "P08":
                //    //        PLANDB.P08.Add(R.ToList()); break;
                //    //    case "P09":
                //    //        PLANDB.P09.Add(R.ToList()); break;
                //    //    case "P10":
                //    //        PLANDB.P10.Add(R.ToList()); break;
                //    //    case "P11":
                //    //        PLANDB.P11.Add(R.ToList()); break;
                //    //    case "P12":
                //    //        PLANDB.P12.Add(R.ToList()); break;
                //    //}
                //}

                return(B);
            }
            #endregion
        }
Ejemplo n.º 2
0
        // View / Hide / Clear / Select / Reset
        void LCG_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
        {
            ReadData();

            var lcg = sender as LayoutControlGroup;

            ISOLayers = new List <string>();

            var lstBox    = new DevExpress.XtraEditors.ListBoxControl();
            var lstLayers = new StringCollection();

            switch (lcg.Items[0].CustomizationFormText)
            {
            case "AllLayers": lstBox = lst_L; break;

            case "Layer 1": lstBox = lst_L1; break;

            case "Layer 2": lstBox = lst_L2; break;

            case "Layer 3": lstBox = lst_L3; break;

            case "Layer 4": lstBox = lst_L4; break;

            case "Layer 5": lstBox = lst_L5; break;

            case "Layer 6": lstBox = lst_L6; break;

            case "Layer 7": lstBox = lst_L7; break;

            case "Layer 8": lstBox = lst_L8; break;

            case "Layer 9": lstBox = lst_L9; break;

            case "Layer 10": lstBox = lst_L10; break;
            }

            ISOLayers.AddRange(lstBox.Items.Cast <string>());

            //MessageBox.Show(ISOLayers[0] + "\n" + e.Button.Properties.Caption);

            if (e.Button.Properties.Caption == "V")
            {
                // View
                // 레이어 켜기
                ISOLayers.ForEach(layer =>
                {
                    Utils.Layer.TurnOff(layer, false);
                    //CAD.TurnOnLayer(layer);
                });
            }
            else if (e.Button.Properties.Caption == "H")
            {
                // Hide
                // 레이어 끄기
                ISOLayers.ForEach(layer =>
                {
                    Utils.Layer.TurnOff(layer, true);
                    //CAD.TurnOffLayer(layer);
                });
            }
            else if (e.Button.Properties.Caption == "I")
            {
                // Isolate
                // 레이어 ISO
                Utils.Layer.ISO(ISOLayers, true);
            }
            else if (e.Button.Properties.Caption == "C")
            {
                // Clear
                // 리스트 Clear
                lst_L.Items.AddRange(ISOLayers.Cast <object>().ToArray());
                lst_L.SortOrder = SortOrder.Ascending;

                lstBox.Items.Clear();
            }
            else if (e.Button.Properties.Caption == "S")
            {
                // Select
                // 객체 선택
                Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView();

                bool B = true;

                while (B)
                {
                    var Ids = select.MultiObjs().GetObjectIds().ToList();

                    var LayerNames = Get.Entities(Ids).Select(x => x.Layer).Distinct().ToList();

                    //var LayerNames = CADUtil.SelectObjectLayers();

                    if (LayerNames.Count == 0)
                    {
                        B = false;
                    }

                    LayerNames.ForEach(layer =>
                    {
                        if (lst_L.Items.Contains(layer))
                        {
                            lst_L.Items.Remove(layer);
                        }
                        if (!lstBox.Items.Contains(layer))
                        {
                            lstBox.Items.Add(layer);
                            ISOLayers.Add(layer);
                        }
                    });
                }
            }
            else if (e.Button.Properties.Caption == "L")
            {
            }

            else if (e.Button.Properties.Caption == "R")
            {
                // Reset
                ResetListBox();
            }

            ReadData();
        }