Анна, пример ниже включает вариант активизации страницы, если активный вид 3D, но метод
Activate почему то не работает. Если активный вид 2D, все нормально...
Код |
---|
using TFlex.Model;
using TFlex.Model.Model2D;
using System.Windows.Forms;
namespace Test
{
public class TestMacro
{
public static void Run()
{
Document document = TFlex.Application.ActiveDocument;
Page activePage = null;
if (document == null)
return;
foreach (var i in document.GetPages())
{
if (document.ActivePage == null)
{
activePage = i; // если нет активной страницы, сохраняем первую страницу из коллекции
foreach (var v in document.Views)
{
if (v is View2D)
{
v.Activate(); // что-то случилось с методом Activate...
break;
}
}
}
else if (activePage == null)
activePage = document.ActivePage; // в противном случае, сохраняем активную страницу
switch (i.PageType) // определение типа страницы
{
case PageType.Normal: // Обычная
if (document.ActiveView is View2D)
{
document.ActiveView.Page = i; // активизируем страницу
MessageBox.Show(i.Name);
}
break;
case PageType.BillOfMaterials: // Спецификация
if (document.ActiveView is View2D)
{
document.ActiveView.Page = i; // активизируем спецификацию
MessageBox.Show(i.Name);
}
break;
}
}
if (document.ActivePage != null && activePage != null)
{
// активизируем ранее сохраненную страницу
document.ActiveView.Page = activePage;
MessageBox.Show(activePage.Name);
}
}
}
}
|