コード例 #1
0
            /// <summary>AutoCAD上で図形を選択させ、その図形のObjectIdを返す。(Prompt付き)</summary>
            public static List <int> SelectObjects(string prompt)
            {
                //AutoCADを最前面に持ってくる
                WindowController2.BringAutoCadToTop();

                //Selectの最後(LAST)で選択できる図形をなくす。
                AutoCad.Command.SendLineEsc("point 0.003,0.003");
                AutoCad.Command.SendLineEsc("zoom 0.001,0.001 0.005,0.005");
                AutoCad.Command.SendLineEsc("erase last ");
                AutoCad.Command.SendLineEsc("zoom p");

                //ユーザーに選択を促す
                AutoCad.Command.SendLineEsc("select");
                if (!string.IsNullOrEmpty(prompt))
                {
                    AutoCad.Prompt(prompt);
                }

                AutoCad.Status.WaitFinish();
                if (AutoCad.Status.IsCanceled())
                {
                    return(new List <int>());
                }

                using (var reactor = new AutoCad.Reactor())
                {
                    //移動変位0で移動(リアクタに記録する)
                    AutoCad.Command.SendLineEsc("move p  0,0,0 0,0,0");

                    return(reactor.GetReactor());
                }
            }
コード例 #2
0
            public static List <int> GetLastObjectIds()
            {
                AutoCad.Command.SendLine("select l "); //これで他の図形が選ばれてしまうことがある

                using (var reactor = new AutoCad.Reactor())
                {
                    //移動変位0で移動(リアクタに記録する)
                    AutoCad.Command.SendLineEsc("move p  0,0,0 0,0,0");

                    return(reactor.GetReactor());
                }
            }
コード例 #3
0
            /// <summary>選択している図形のObjectIdを取得する</summary>
            public static List <int> GetSelectedObjectIds()
            {
                using (var reactor = new AutoCad.Reactor())
                {
                    //移動変位0で移動(リアクタに記録する)
                    AutoCad.Command.SendLine("move");

                    if (!AutoCad.Status.ContainTextInLastHistory("認識された数:", "found"))
                    {
                        AutoCad.Command.Prepare();
                        return(new List <int>());
                    }

                    AutoCad.Command.SendLine("0,0,0 0,0,0");

                    return(reactor.GetReactor());
                }
            }