01/08/2021
Метод Editor.Snap для изменения режима привязки точки
При использовании метода Editor.GetEntity часто требуется получить в точности все координаты точки указания, используемые для выбора объекта.
Например, рассмотрим следующую ситуацию. Построим окружность с центром в точке point (0,0,5) и радиусом 5 в плоскости XY МСК при виде сверху.
При выборе точке на окружности с использованием Editor.GetEntity, PromptEntityResult.PickedPoint вернул:
(3.50064192661003 , 3.35618169844321 , 0)
Чтобы получить все координаты, можно воспользоваться методом получения ближайшей точки с использованиемEditor.Snap, которая вернет так же и координату Z выбранной точки.
Код:
Код - C#: [Выделить]
- [CommandMethod("getEntityPickPoint")]
- public static void getEntityPickPoint()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- PromptEntityOptions peo = new PromptEntityOptions("\nВыберите объект: ");
- PromptEntityResult per = ed.GetEntity(peo);
- if (per.Status == PromptStatus.OK)
- {
- Point3d pickedPoint = per.PickedPoint;
- Point3d pickedPtOsnap = ed.Snap("_near", pickedPoint);
- ed.WriteMessage("\n Указанная точка: {0}", pickedPoint.ToString());
- ed.WriteMessage("\n Указанная точка с учетом привязки Ближайшая: {0}", pickedPtOsnap);
- }
- }
Результат:
Команда: GETENTITYPICKPOINT
Выберите объект:
Указанная точка: (3.50064192661003,3.35618169844321,0)
Указанная точка с учетом привязки Ближайшая: (3.60921996485993,3.46027907043009,5)
Автор перевода: Александр Ривилис
Опубликовано 01.08.2021
Опубликовано 01.08.2021