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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Пробую нарисовать шайбу с помощью макросов))
 
Всем доброго времени суток, пытаюсь нарисовать шайбу с помощью макросов в t-flex. Процентов 90%, как мне кажется сделано, но есть проблемка.  Как видно на скрине, у меня есть обе окружности и обе я выталкиваю. Чтобы получилась шайба, мне нужно создать профиль между меньшей и большей окружностью и вытолкнуть уже его, но как это сделать, пока не могу додуматься)) Пробовал найти информацию, как сделать операцию вычитания с помощью макросов и просто вычесть одно тело из другого, но пока тоже не нашел(Таким образом, я бы избежал необходимость создания профиля между окружностями и получил бы шайбу).
Листинг кода: [CODE]using System;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;
using System.IO;

namespace NewMacroNamespace1
{
public class NewMacroClass1
{
public static void NewMacro1()
{
// Выбираем текущий документ
Document tfdoc = TFlex.Application.ActiveDocument;


// Открываем блок изменений
tfdoc.BeginChanges("Пытаемся нарисовать шайбу");

// Создаем свободные узлы нашего контура
FreeNode n1 = new FreeNode(tfdoc,1,1);



// Замыкаем контур линиями

CircleConstruction circle = new CircleConstruction(tfdoc);
circle.SetCenterAndRadius(n1,8.5);
CircleConstruction circle1 = new CircleConstruction(tfdoc);
circle1.SetCenterAndRadius(n1,13);



// Создаем штриховку и ее контур
Area ar1 = new Area (tfdoc);
Contour cn = ar1.AppendContour();
Area ar2 = new Area (tfdoc);
Contour cn1 = ar2.AppendContour();
// Описываем контур штриховки сегментами

ConstructionContourSegment seg1 = new
ConstructionContourSegment(cn);
seg1.Construction = circle;

ConstructionContourSegment seg2 = new
ConstructionContourSegment(cn1);
seg2.Construction = circle1;






// Создаем стандартную рабочую плоскость
// Top - вид спереди, Front - вид спереди, Left - вид слева и др
StandardWorkplane swp1 = new
StandardWorkplane(tfdoc, StandardWorkplane.StandardType.Top);

StandardWorkplane swp2 = new
StandardWorkplane(tfdoc, StandardWorkplane.StandardType.Top);


// Создаем 3D-профиль на основе штриховки и рабочей плоскости
AreaProfile ap1 = new AreaProfile(tfdoc);
ap1.Area = ar1;
ap1.WorkSurface = swp1;

AreaProfile ap2 = new AreaProfile(tfdoc);
ap2.Area = ar2;
ap2.WorkSurface = swp2;

// Создаем операцию выталкивания
ThickenExtrusion extr = new ThickenExtrusion(tfdoc);

//extr.LenghtType = ThickenExtrusion.LenghtValue.AutoValue;

// Длина выталкивания для первого направления
extr.Thickness1 = 5;

// Профиль для выталкивания
extr.Profile.Add(ap2.Geometry.SheetContour);
extr.Profile.Add(ap1.Geometry.SheetContour);



// Закрываем блок изменений
tfdoc.EndChanges();
}
}
}
[/CODE]
Выталкивание окружности используя макрос
 
[QUOTE]FRei написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=85980]T-flexer T-flexer[/URL],

А пример из справки чем не понравился?
  [/QUOTE]
скиньте текстом этот код пожалуйста, на картинке качество ужасное, не разобрать
Выталкивание окружности используя макрос
 
[QUOTE]FRei написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=85980]T-flexer T-flexer[/URL],

А пример из справки чем не понравился?
  [/QUOTE]
У меня нету примеров, возможно версии отличаются, у меня 17 учебная((
Выталкивание окружности используя макрос
 
Здравствуйте, пытаюсь нарисовать окружность и применить к ней операцию выталкивания, но пока ничего не выходит. У кого есть какие идеи по этому поводу, поделитесь пожалуйста. Цель пока что, хотя бы научиться выводить окружность на плоскость, мой код пока и этого не выполняет((
Вот код, но после успешной компиляции ничего не появляется на плоскости:[CODE]using System;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

namespace NewMacroNamespace1
{
public class NewMacroClass1
{
public static void NewMacro1()
{
// Выбираем текущий документ
Document tfdoc = TFlex.Application.ActiveDocument;

LineText text = new LineText(tfdoc);

// Открываем блок изменений
tfdoc.BeginChanges("Пытаемся нарисовать окружность");

// Создаем свободные узлы нашего контура
FreeNode node1 = new FreeNode(tfdoc,150,10);
FreeNode node2 = new FreeNode(tfdoc,150,70);


// Замыкаем контур линиями

CircleConstruction circle = new CircleConstruction(tfdoc);
circle.SetCenterAndNode(node1,node2);



// Создаем штриховку и ее контур
Area ar1 = new Area (tfdoc);
Contour cn = ar1.AppendContour();

// Описываем контур штриховки сегментами
// StartNode - начальный узел
// EndNode - конечный узел
ConstructionContourSegment ccs1 = new
ConstructionContourSegment(cn);
ccs1.StartNode = node1;
ccs1.EndNode = node2;



// Создаем стандартную рабочую плоскость
// Top - вид спереди, Front - вид спереди, Left - вид слева и др
StandardWorkplane swp1 = new
StandardWorkplane(tfdoc, StandardWorkplane.StandardType.Top);

// Создаем 3D-профиль на основе штриховки и рабочей плоскости
AreaProfile ap1 = new AreaProfile(tfdoc);
ap1.Area = ar1;
ap1.WorkSurface = swp1;

// Создаем операцию выталкивания
ThickenExtrusion extr = new ThickenExtrusion(tfdoc);

// Длина выталкивания для первого направления
extr.Thickness1 = 50;

// Профиль для выталкивания
extr.Profile.Add(ap1.Geometry.SheetContour);

// Закрываем блок изменений
tfdoc.EndChanges();
}
}
}
[/CODE]
Страницы: 1