У кого нибудь есть опыт применения 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-й версии, если правильно понял - общий. Он абстрактный, конструктор не определен. У кого-нибудь есть пример выполнения трансформаций? Заранее благодарен за ответ.
// Повернуть рабочую плоскость по оси Z
TransformationGroup transform = wp.Transformations.AddBaseTransfGroup();
transform.AddRotateTransf(TransformationCoordinate.Z, 180);