Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Балиев от 21-04-2020, 20:31:12

Название: Перемещение геометрического объекта между системами координат.
Отправлено: Балиев от 21-04-2020, 20:31:12
Существует ли метод (или утилита)  позволяющий перемещать геометрический объект из одной системы координат в другую?
Заранее благодарен.
Название: Re: Перемещение геометрического объекта между системами координат.
Отправлено: Александр Ривилис от 21-04-2020, 20:41:06
Балиев,
Метод TransformBy
Название: Re: Перемещение геометрического объекта между системами координат.
Отправлено: Александр Ривилис от 21-04-2020, 21:46:26
Пример:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. using Autodesk.AutoCAD.Runtime;
  5.  
  6. [assembly: CommandClass(typeof(TransformEntity.MyCommands))]
  7.  
  8. namespace TransformEntity
  9. {
  10.   public class MyCommands
  11.   {
  12.     [CommandMethod("TransEnt")]
  13.     public void TransEntHandler()
  14.     {
  15.       Document doc = Application.DocumentManager.MdiActiveDocument;
  16.       if (doc == null) return;
  17.       Editor ed = doc.Editor;
  18.       PromptEntityResult rs = ed.GetEntity("\nВыберите примитив: ");
  19.       if (rs.Status != PromptStatus.OK) return;
  20.       using (Transaction tr = doc.TransactionManager.StartTransaction())
  21.       {
  22.         Entity ent = tr.GetObject(rs.ObjectId, OpenMode.ForWrite) as Entity;
  23.         ent.TransformBy(ed.CurrentUserCoordinateSystem.Inverse());
  24.         tr.Commit();
  25.       }
  26.     }
  27.   }
  28. }