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

30/05/2013

Создание новой ViewTableRecord с камерой и целью

Этот пример на C# запрашивает точки цели и камеры. Положение камеры может быть вычислено как сумма вектора направления ViewTableRecord и точки цели.

Код - C#: [Выделить]
  1. [CommandMethod("sampleCameraView", CommandFlags.Transparent)]
  2. public static void CmdViewCamera()
  3. {
  4.   Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  5.  
  6.   // Выбираем точку цели
  7.   PromptPointOptions ppoView =
  8.     new PromptPointOptions("\nУкажите точку цели: ");
  9.   PromptPointResult pprView = ed.GetPoint(ppoView);
  10.   if (pprView.Status != PromptStatus.OK) return;
  11.   Point3d viewPoint = pprView.Value;
  12.  
  13.   // Выбираем точку камеры
  14.   PromptPointOptions ppoCamera =
  15.     new PromptPointOptions("\nУкажите точку камеры: ");
  16.   PromptPointResult pprCamera = ed.GetPoint(ppoCamera);
  17.   if (pprView.Status != PromptStatus.OK) return;
  18.   Point3d cameraPoint = pprView.Value;
  19.  
  20.   // Создаём
  21.   ViewTableRecord viewTBR = new ViewTableRecord();
  22.   viewTBR.Target = viewPoint;
  23.   viewTBR.ViewDirection =
  24.     viewPoint.GetVectorTo(cameraPoint);
  25.   viewTBR.Height = 50.0;
  26.   viewTBR.CenterPoint = Point2d.Origin;
  27.  
  28.   // Показываем новый вид
  29.   ed.SetCurrentView(viewTBR);
  30.  
  31. #if DEBUG
  32.   // для отладки...
  33.   // http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx
  34.   Point3d cameraPoint3d = viewTBR.Target.Add(viewTBR.ViewDirection);
  35.   ed.WriteMessage("\nCamera X = {0:0.00}", cameraPoint3d.X);
  36.   ed.WriteMessage("\nCamera Z = {0:0.00}", cameraPoint3d.Y);
  37.   ed.WriteMessage("\nCamera Z = {0:0.00}", cameraPoint3d.Z);
  38. #endif
  39. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/07/create-new-viewtablerecord-with-camera-and-target.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=83.0

Опубликовано 30.05.2013
Отредактировано 08.06.2013 в 02:22:34