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


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

Страницы: 1
Обход дерева фрагментов 3d модели
 
Зачем именно "данные для спецификации" не знаю....мне дали эту задачу на собесодовании, в терминалогии не разбираюсь. Вообще с TFLEX 3 день знаком...нашел пример макроса C:\Program Files\T-FLEX\T-FLEX CAD 11\Program\BOMExport\Экспорт данных спецификации в Excel.grb

foreach (Text textobj in document.Texts)
                   {
                       if (textobj is BOMObject)
                       {
                           BOMObjectName = ((BOMObject)textobj).FriendlyName;
                           if (!((BOMObject)textobj).ReportFileLink.IsEmpty)
                           {
X Document doc = TFlex.Application.OpenDocument(((BOMObject)textobj).ReportFileLink);
X if (doc != null)
X {
X doc.BeginChanges("Получение данных из полей спецификации связанного документа и экспорт их в Microsoft Excel");
X ModelObject textobject = doc.GetObjectByID(((BOMObject)textobj).ReportID);
X if (textobject is BOMObject)
X {
X SetFieldsValues((BOMObject)textobject, resultsFile);
X }
X doc.EndChanges();
X }
                           }
                           else
                           {
X SetFieldsValues((BOMObject)textobj, resultsFile);
                           }
                       }
я заполнил данные для спецификации, а количество document.Texts равно 0.
Почему так?
Может это вообще не тот пример?
2D: Измерение расстояний, Как измерить расстояние от оси до сплайна
 
В топку VB, шарп гораздо грациозней и развивается лучше в рамках VS
Обход дерева фрагментов 3d модели
 
по 3d.
Спасибо посмотрю.
Запись макроса
 
Доброго времени суток, дамы и господа,скажите существует ли возможность записи макроса в TFLEX cad последней версии, как это реализовано в EXCEL? Еще вопросик, есть ли какой-нить аналог профайлера к TFLEX cad?
2D: Измерение расстояний, Как измерить расстояние от оси до сплайна
 
Я с C# уже 3 год...он мне родной))...сложнее с TFLEX)) с ним я только пару дней, НО АПИ функционал уже оценил, особенно "полноту" справки и ОГРМНОЕ наличие примеров))
А если ближе к телу...с чертежами вообще дел не имел..так что...
Вообще с TFLEX связался только потому что отправил резюме в одну фирму мне дали задачку:

1. Необходимо пройти по дереву фрагментов (дерево отображается
слева в окне 3D модели), собрать данные для спецификации из всех элементов
во всех уровнях дерева, с учетом параметрического функционала T-Flex
2. И вывести в отдельную форму отчета в T-Flex и в файл Word/Excel

Если решу - шансы получить работу увеличаться))
С точки зрения программирования примерно представляю как ее рашать...НО нехватка знаний в области TFLEX сказывается))

Может посоветуйте что-нить?))
Обход дерева фрагментов 3d модели
 
По фрагментам бегу следующим образом:

doc = TFlex.Application.OpenDocument("d:\\TFLEX\\2_1.grb");
foreach(Fragment fr in doc.Fragments)
{
}

вопрос: как по фрагменту определить данные для спецификации?

в TFlex они находятся: Сервис->Спецификации->Данные

может в АПИ функционале есть как-то метод, позволющий по фрагменту вытащить эти данные?
2D: Измерение расстояний, Как измерить расстояние от оси до сплайна
 
Может быть компилятор ругается потому что переменные FO1 и FO2 в некоторых случаях не проинициализированы (в случае если не сработает хотя бы одно из условий в цикле), попробуйте при объявлении переменных проинициализировать их.


Document document = TFlex.Application.ActiveDocument;

Construction FO1=null;//инициализируем
Construction FO2=null;
document.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, "---"));
foreach (Construction CO in document.Constructions)
{
if (CO.ID == 0x100001F) { FO1 = CO; document.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, FO1.ID.ToString())); }
if (CO.ID == 0x100001B) { FO2 = CO; document.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, FO2.ID.ToString())); }
}

//если значение не было присвоено, ничего не делаем иначе:
if (FO1 != null && FO2 != null)
{
IntersectionNode IN = new IntersectionNode(document, FO1, FO2);
document.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, IN.AbsX.ToString()));
document.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, IN.AbsY.ToString()));
}


как-то так)))
Обход дерева фрагментов 3d модели
 
Доброго времени суток, дамы и господа. Есть следующая задачка
1. Необходимо пройти по дереву фрагментов (дерево отображается
слева в окне 3D модели), собрать данные для спецификации из всех элементовт во всех уровнях дерева, с учетом параметрического функционала T-Flex
2. И вывести в отдельную форму отчета в T-Flex и в файл Word/Excel

Установил T-FLEX CAD11.С T-FLEX не работал никогда.
Посоветуйте, в каком направлении двигаться, как лучше решить эту проблему: используя API и создать свое приложение или используя макросы?...может есть еще варианты?

Вообще что есть Дерево фрагментов, данные для спецификации?
Что есть отдельная форма отчета? Как вообще принято составлять подобные отчеты?

Как реализовывать с помощью API функционала или с помощью макросов?

Я программирую на VS 2008 (C#).

Заранее благодарен.
Страницы: 1