본문으로 바로가기

① 첫번째 방법(View Object를 사용하여 이동하는 방법)

 

 private void ZoomWin(Editor ed, Point3d min, Point3d max)
        {
            Point2d min2d = new Point2d(min.X, min.Y);
            Point2d max2d = new Point2d(max.X, max.Y);

            ViewTableRecord view = new ViewTableRecord(); // 뷰 Object이다.
            view.CenterPoint = min2d + ((max2d - min2d) / 2.0); // 이동할 지점의 중심점.

            view.Height = 50; //임의로 정해준 높이 ( 해당아이템 max에서 min까지 거리를 정해서 줘도 괜찮음)

            view.Width = 50;  //임의로 정해준 넓이 ( 해당아이템 max에서 min까지 거리를 정해서 줘도 괜찮음)

            ed.SetCurrentView(view);
        }

 

 

 

② 두번째 방법(Com의 Zoom을 이용한 방법)

 

 private void ZoomWin2(Editor ed, Point3d min, Point3d max)
        {
            object obj = app.Application.AcadApplication;
            AcadApplication acad = obj as AcadApplication;
            double[] lower = new double[3] { min.X - 25, min.Y - 25, min.Z }; // 보여질 화면의 민 값(Left)
            double[] upper = new double[3] { max.X + 25, max.Y + 25, max.Z }; // 보여질 화면의 맥스 값(Right)

                                                                                                       나는 임의로 50 을 잡아 25씩 빼주고 더해줌
           

            acad.ZoomWindow(lower, upper); // COM  Zoom 메서드
        }

 

 

 

 

③ 세번째 방법(명령어 Zoom을 이용한 방법)

 

 private void ZoomWin3(Editor ed, Point3d min, Point3d max)
        {

            min = new Point3d(min.X - 25, min.Y - 25, min.Z);
            max = new Point3d(max.X + 25, max.Y + 25, max.Z);

            string lower = min.ToString().Substring(1, min.ToString().Length - 2); // 보여질 화면의 민 값(Left)
            string upper = max.ToString().Substring(1, max.ToString().Length - 2); // 보여질 화면의 맥스 값(Right)

                                                                                                       나는 임의로 50 을 잡아 25씩 빼주고 더해줌

            string cmd = "_.ZOOM _W " + lower + " " + upper + " ";

            object obj = app.Application.AcadApplication;
            AcadApplication acad = obj as AcadApplication;
            acad.ActiveDocument.SendCommand(cmd); // 명령어 전송

 

            //async command calling:
            //ed.Document.SendStringToExecute(cmd, true, false, true);
        }

 

'플러그인프로그래밍 > AUTOCAD(2014)' 카테고리의 다른 글

c# 오토캐드 범위로 객체 검색  (0) 2016.06.07