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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Операция "Листовая заготовка"
 
Добрый день! Пытаюсь построить операцию "листовая заготовка" по профилю:
Код
using System;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

namespace NewMacroNamespace
{
   public class NewMacroClass
   {
      public static void NewMacroPrefab()
      {
         Document document = TFlex.Application.ActiveDocument;//Получение активного документа
         document.BeginChanges("Построение и выталкивание");//Открытие блока изменений документа

         PathConstruction pathConstruction = new PathConstruction(document);      

         TFlex.Model.Model2D.Contour cn = pathConstruction.Contour;//контур

          //создание узлов
         FreeNode fn1 = new FreeNode(document, 20, 60);            
         FreeNode fn2 = new FreeNode(document, 120, 60);
         FreeNode fn3 = new FreeNode(document, 20, 20);            
         FreeNode fn4 = new FreeNode(document, 120, 20); 

         //соединяем узлы линиями
         ConstructionOutline l1 = new ConstructionOutline(document, fn1, fn2);
         ConstructionOutline l2 = new ConstructionOutline(document, fn2, fn4);
         ConstructionOutline l3 = new ConstructionOutline(document, fn4, fn3);
         ConstructionOutline l4 = new ConstructionOutline(document, fn3, fn1);

         //отнесение этих линий к контуру 
         OutlineContourSegment s1 = new OutlineContourSegment(cn);
         OutlineContourSegment s2 = new OutlineContourSegment(cn);
         OutlineContourSegment s3 = new OutlineContourSegment(cn);
         OutlineContourSegment s4 = new OutlineContourSegment(cn);      
         s1.Outline = l1; s2.Outline = l2; s3.Outline = l3;s4.Outline = l4;

         //создание штриховки
         Area ar = new Area (document);
         TFlex.Model.Model2D.Contour cn1 = ar.AppendContour();

         //путь
         ConstructionContourSegment seg1 = new ConstructionContourSegment(cn1); 
         seg1.Construction = pathConstruction; 

         StandardWorkplane swp1 = new StandardWorkplane(document, StandardWorkplane.StandardType.Top);

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

         document.ApplyChanges();
         document.EndChanges();

         //-----------------------------------------------------------------

         document.BeginChanges("3Д");

         SheetMetalPart smp = new SheetMetalPart(document);
         smp.Profiles.Add(ap1.Geometry.SheetContour);
         smp.Type = SheetMetalPart.ExtrusionType.Summary;   
         smp.Thickness = 1;

         document.ApplyChanges();
         document.EndChanges();

      }

   }
}

Сам профиль создаётся, операция выталкивания с ним тоже работает. Такое ощущение, что я упускаю какой-то параметр. Подскажите, пожалуйста, что именно тут не так.
 
Dmitry, кажется операция SheetMetalPart сломана... :-( (тестировал на последней сборке)
Операция ThickenExtrusion работает нормально. Я немного изменил код. Построения выполняются по селектору рабочей плоскости.
Код
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

namespace Test
{
    public class SheetBuilder
    {
        public static void Run()
        {
            var document = TFlex.Application.ActiveDocument;
            if (document == null)
                return;

            var objects = document.Selection.GetAllObjects();
            if (objects.Length == 0)
                return;

            var workplane = objects[0] as Workplane;
            if (workplane == null)
                return;

            document.BeginChanges("1");

            var fn1 = new FreeNode(document, 20, 60);
            var fn2 = new FreeNode(document, 120, 60);
            var fn3 = new FreeNode(document, 20, 20);
            var fn4 = new FreeNode(document, 120, 20);

            var co1 = new ConstructionOutline(document, fn1, fn2);
            var co2 = new ConstructionOutline(document, fn2, fn4);
            var co3 = new ConstructionOutline(document, fn4, fn3);
            var co4 = new ConstructionOutline(document, fn3, fn1);

            var profile = new SketchProfile(document) { WorkSurface = workplane };

            profile.Outlines.Add(co1);
            profile.Outlines.Add(co2);
            profile.Outlines.Add(co3);
            profile.Outlines.Add(co4);

            fn1.Page = workplane.Page;
            fn2.Page = workplane.Page;
            fn3.Page = workplane.Page;
            fn4.Page = workplane.Page;

            co1.Page = workplane.Page;
            co2.Page = workplane.Page;
            co3.Page = workplane.Page;
            co4.Page = workplane.Page;

            document.EndChanges();

            // ------------------------------------------------------------- //

            document.BeginChanges("2");

            var smp = new SheetMetalPart(document);
            smp.Profiles.Add(profile.Geometry.SheetContour);
            smp.Type = SheetMetalPart.ExtrusionType.Summary;
            smp.Thickness = new Parameter(1);

            //var te = new ThickenExtrusion(document);
            //te.Profile.Add(profile.Geometry.SheetContour);
            //te.ForwardLength = new Parameter(20);

            document.EndChanges();
        }
    }
}
T-FLEX CAD 17.0.82.0
 
Цитата
vite написал:
Dmitry , кажется операция SheetMetalPart сломана... (тестировал на последней сборке)
У меня версия 17.0.60.0, операция SheetMetalPart так же не работает.

Посему вопрос: можно ли использовать вместо этого операцию ThickenExtrusion без потери функционала в дальнейшем? В перспективе нужно будет сделать операции сгибания и создания отверстий, так же с помощью макроса.
 
Dmitry, я проверил тест на двух версиях CAD (14.0.41.0 и 17.0.65.0) методом построения профиля посредством создания штриховки. В обоих случаях строится профиль но без листовой заготовки. Операция "Выталкивание" использовалась в качестве проверки контура на корректность.
По видимому придется обратиться в техподдержку с этим вопросом. На форуме они не отвечают... :-(
T-FLEX CAD 17.0.82.0
 
Где-то в справке вычитал (если не ошибаюсь), что листовая заготовка строится на проволочном профиле. Не знаю, есть ли в нём отличия от других типов профиля. Попробую покопать в этом направлении.
Из этого возникает вопрос: Проволочный профиль строится на основе рёбер, можно ли как-то OutLine преобразовать в Edge?
 
Цитата
vite написал:
По видимому придется обратиться в техподдержку с этим вопросом. На форуме они не отвечают...
Техподдержка (по крайней мере, в ВК) предложила задать мне вопрос на этом форуме)
 
Цитата
Dmitry написал:
Техподдержка (по крайней мере, в ВК) предложила задать мне вопрос на этом форуме)
Соцсети и форум - это не официальная техподдержка. Здесь делятся опытом пользователи. Писать нужно непосредственно сюда https://www.tflex.ru/mail/, выбрав пункт тех поддержка и указав предприятие и лицензии
 
Цитата
Dmitry написал:
Из этого возникает вопрос: Проволочный профиль строится на основе рёбер, можно ли как-то OutLine преобразовать в Edge?
Ничего преобразовывать не нужно. После создания профиля, структура объекта "GeometryData" уже содержит данные "ModelEdges" (см. вложение).
T-FLEX CAD 17.0.82.0
Страницы: 1