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


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

Страницы: 1
[ Закрыто] Import STEP модели в TFlexAPI, Как импортировать модель формата STEP с помощью T-FLEX API
 
Существует необходимость импортировать STEM модель с помощью макроса. Был написан следующий код. После вывода MessageBox на экране появляется значение false. Кто-нибудь знает в чем проблема??[CODE]/* Создать новый документ */
Document newDoc = TFlex.Application.NewDocument();

/* Сохраним под каким-то именем */  
newDoc.SaveAs("C:\\test\\StepImport\\123.grb");

/* Создадим объект импорта */    
ImportFromSTEP import = new ImportFromSTEP(newDoc);

/* Сделаем импорт по заданному пути */    
MessageBox.Show(import.Import("C:\\test\\T-Flex\\CRB3M72.step".ToString());
[/CODE]
Import Exel данных в спецификацию данных проекта
 
[QUOTE]Vite написал:
Макрос "Экспорт данных спецификации в Excel" отрабатывает, если спецификация создана из прототипа в отдельном файле. Что касается спецификации, созданной из прототипа "Отчеты/Спецификации" в модели, тут нужен другой подход. Если бы разработчики прояснили ситуацию, дали бы пример, но боюсь что их этот вопрос мало интересует.[/QUOTE]

[QUOTE]Vite написал:
Макрос "Экспорт данных спецификации в Excel" отрабатывает, если спецификация создана из прототипа в отдельном файле. Что касается спецификации, созданной из прототипа "Отчеты/Спецификации" в модели, тут нужен другой подход. Если бы разработчики прояснили ситуацию, дали бы пример, но боюсь что их этот вопрос мало интересует.[/QUOTE]
Как доделаю выложу)
Import Exel данных в спецификацию данных проекта
 
[QUOTE]Vite написал:
Если следовать логике примера "Экспорт данных спецификации в Excel", то пример кода ниже, на момент выполнения, должен отобразить диалог с сообщением, но этого не происходит.
[CODE] using System;
using System.Windows.Forms;

using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;

namespace Test
{
   public class Class1
   {
       public static void Run() {

           Document document = TFlex.Application.ActiveDocument;
           foreach (Text textobj in document.Texts)
           {
               if (textobj is BOMObject) // Условие на соответствие типа данных
               {
                   MessageBox.Show("Test");
               }
           }
       }
   }
}
[/CODE]Если выполнить макрос "Экспорт данных спецификации в Excel", то спецификация не сохраняется. Диалог с предложением сохранить файл появляется, но также не выполняется условие на соответствие типа данных. Свойство "Texts" является устаревшим и возможно, необходимо заменить на метод "GetTexts()".

Либо макрос "Экспорт данных спецификации в Excel" является не рабочим примером, либо косяк в модели. Проверьте, пожалуйста, экспортируются данные спецификации на вашей модели?[/QUOTE]
Спасибо за комметарии!) Я нашел способ записи данных , как доделаю покажу что получилось!)
Import Exel данных в спецификацию данных проекта
 
[QUOTE]Vite написал:
Вы можете использовать для отладки  [URL=https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx]Visual Studio Express[/URL]

1. Установите среду разработки Express 2013 for Windows Desktop
2. Создайте новый проект ( Visual C# / Class Library )
3. В свойствах проекта, раздел "Build" задайте путь "C:\Program Files\T-FLEX CAD 14 x64\Program\"
4. В свойствах проекта, раздел "Debug" области "Start Action", установите опцию "Start external program" и укажите путь к программе "C:\Program Files\T-FLEX CAD 14 x64\Program\TFlex.exe"
5. Добавьте ссылку на сборку "TFlexAPI.dll" ( в свойствах ссылки, для параметра "Copy Local" установите "False" )
6. Запустите отладку F5 ( должен запуститься T-FLEX CAD )
7. Создайте модель, и новый модуль макрокоманды.
8. В редакторе макрокоманд добавьте ссылку на сборку ( в моем случае, я использовал наименование проекта "Test" ), и введите следующий код:[CODE] using System;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

using Test;

namespace NewMacroNamespace
{
  public class NewMacroClass
  {
     public static void NewMacro()
     {
        Class1.Run();
       
     }

  }
}
[/CODE]9. Выполните макрос.

Если все сделано правильно, отладчик должен остановиться на точке останова[/QUOTE]
Спасибо!! Дебаг заработал.. Во только так и не удается записать значение в спецификацию(( any ideas !?:)
Import Exel данных в спецификацию данных проекта
 
[QUOTE]Vite написал:
Что пишет отладчик?

Я не могу найти этот пример...мне не понятно, где определение "BOMObjectName"?[/QUOTE]
string [COLOR=#696969]BOMObject; Вообще в отладчике не работают точки останова. Поэтому я использовал MessageBox. Из которого видно что [/COLOR][COLOR=#000080]UpdateStandardFieldValue и последующим считыванием [/COLOR][COLOR=#696969]GetStandardFieldValue значение не поменялось.. Очень странно все это :([/COLOR][COLOR=#696969](((([/COLOR]
Import Exel данных в спецификацию данных проекта
 
Добрый день, решаю задачу записи данных в спецификацию T-FLex файлов. Для этого использовал пример "Экспорт данных спецификации в Excel.grb", после некоторых модификаций получил следующий код:[CODE]
public static void NewMacro()
{
Document document = TFlex.Application.ActiveDocument;
             foreach (Text textobj in document.Texts)
             {
                   if (textobj is BOMObject)
                   {
BOMObjectName = ((BOMObject)textobj).FriendlyName;
MessageBox.Show(BOMObjectName);
document.BeginChanges("Тест");
ModelObject textobject = document.GetObjectByID(((BOMObject)textobj).ReportID);

BOMObject bomobj = (BOMObject)textobject;
bomobj.Refresh(true);
bomobj.BeginEdit();
if (bomobj.MoveToFrontRecord())
        {
           do
           {
  bomobj.EditRecord();
          BOMObjectName = "Тест";
  bomobj.UpdateStandardFieldValue(BOMObject.StandardField.Desc, "123");  
  bomobj.EditRecord();
  BOMObjectName = bomobj.GetStandardFieldValue(BOMObject.StandardField.Desc);
                          MessageBox.Show(BOMObjectName);
  bomobj.UpdateRecord();
           }
           while (bomobj.MoveToNextRecord());
    }
bomobj.EndEdit();
    bomobj.Refresh(false);
document.EndChanges();
}
 }
         MessageBox.Show("Закрыт!");
}
[/CODE]После команды [COLOR=#000080]UpdateStandardFieldValue текущая запись должна обновиться, но этого не происходит.. Как работает механизм обновления или записи данных в спецификацию??[/COLOR]
Страницы: 1