Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Базовый класс групп трансформаций, Трансформация 3D элементов
 
У кого нибудь есть опыт применения TransformationGroupBase?
Задача следующая. Написан макрос создания рабочей плоскости, построенной на странице.

Код
using System;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

namespace NewMacroNamespace
{
   public class NewMacroClass
   {
      public static void NewMacro()
      {
         //Получение активного документа
         Document document = TFlex.Application.ActiveDocument;

         //Открытие блока изменений документа
         document.BeginChanges("Создание рабочей плоскости");
         
         //Создание объекта страницы
         Page currentPage = new Page(document);

         // Присвоение странице типа "Рабочая плоскость"
         currentPage.PageType = PageType.Workplane;
   
         // Создание объекта рабочей плоскости
         WP wp = new WP(document, currentPage.Document.ActivePage);

         // Показать рабочую плоскость на 3D
           wp.ShowOn3D = true;
         
         //Закрытие блока изменений документа
         document.EndChanges();
      }
   }

       public class WP : Workplane
    {
        // Сводка:
        //     Конструктор для создания новой рабочей плоскости
        //
        // Параметры:
        //   Doc:
        //     Документ, в котором создаётся новый объект
        //
        // Примечания:
        //     Рабочая плоскость создаётся на активной странице
        public WP(Document Doc)
            : base(Doc)
        {


        }
        //
        // Сводка:
        //     Конструктор для создания новой рабочей плоскости
        //
        // Параметры:
        //   Doc:
        //     Документ, в котором создаётся новый объект
        //
        //   page:
        //     Страница, на которой создаётся рабочая плоскость
        public WP(Document Doc, Page page)
            : base(Doc, page)
        {

        }
    }
}
 
Страница, как это и следовало ожидать, строится согласно своей системе координат, т.е. в плоскости XY глобальной системы координат.

Необходимо развернуть рабочую плоскость по оси Z на 180 градусов. Класс трансформаций в 14-й версии, если правильно понял - общий. Он абстрактный, конструктор не определен. У кого-нибудь есть пример выполнения трансформаций?
Заранее благодарен за ответ.
Изменено: Сергей Максимов - 17.09.2014 17:23:18
 
Нашел сам. Это делается так:

Код
            // Повернуть рабочую плоскость по оси Z
            TransformationGroup transform = wp.Transformations.AddBaseTransfGroup();
            transform.AddRotateTransf(TransformationCoordinate.Z, 180);
 
Страницы: 1