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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
[ Закрыто ] Как получить количество копий массива через API T-FLEX CAD, Помощь и обсуждение
 
Не могли бы Вы подсказать, ка с помощью API узнать или получить массив в который входит 3D фрагмент, что бы считать параметры этого массива (в данном случае интересует параметр "количество") ?
 
Цитата
Fanta написал:
Не могли бы Вы подсказать, ка с помощью API узнать или получить массив в который входит 3D фрагмент, что бы считать параметры этого массива (в данном случае интересует параметр "количество") ?
Можно так.
Код
using System;
using System.Collections.Generic;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;
using TFlex.Model.Model3D.Geometry;

namespace NewMacroNamespace
{
   public class NewMacroClass
   {
      public static Parameter GetCountArray(ArrayOperation array)
      {
         LinearArrayOperation lArray = array as LinearArrayOperation;
         if(lArray != null)
         {
            return lArray.Direction1Number;   
         }
         /*...*/
         return null;
      }

      public static ArrayOperation GetArray(Document document, ObjectId id)
      {
         foreach(Operation operation in document.GetOperations())
         {
            if(operation is ArrayOperation)
            {
               ArrayOperation array = (ArrayOperation)operation;
               foreach(Operation o in array.Operations)
               {
                  if(o.ObjectId == id)
                  {
                     return array;      
                  }
               }
            }
         }
         return null;
      }

      public static void Test()
      {                                  
         var document = Application.ActiveDocument;
         if(document != null)
         {
            Fragment3D fragment = document.GetObjectById(0xD6000001) as Fragment3D;
            if(fragment != null)
            {
               Parameter number = GetCountArray(GetArray(document, fragment.ObjectId));
               /*...*/
            }
         }
      }
   }
}

Страницы: 1