Практический семинар Tekla Structures 2017

API, проблемы и решения в Tekla Structures

AndrejjerdnA
Сообщения: 103
Регистрация: 18 сен 2014, 07:20

Re: API, проблемы и решения в Tekla Structures

Сообщение AndrejjerdnA » 07 янв 2017, 19:05

Никто не сможет подсказать как получить вот эти значения? (см. выделенное на приложенном файле) Что-то никак не соображу...
Вложения
Скриншот 07-01-2017 190056.png

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 08 фев 2017, 00:47

Доброго времени суток!
С Текловским Open Api работаю уже несколько лет, в данный момент пишу плагин для работы с Tekla Analysis.
Столкнулся со следующей проблемой - вытягиваю из модели AnalysisPart, далее фрагмент кода (TSA заменил Tekla::Structures::Analysis для упрощения):

TSA::Analysis^ _analysis = gcnew TSA::Analysis();

TSA::AnalysisObjectSelector^ _analysisObjectSelector = _analysis->GetAnalysisObjectSelector();

TSA::AnalysisObjectEnumerator^ analysisObjectEnumerator =
_analysisObjectSelector->GetAllObjectsWithType(TSA::AnalysisObject::AnalysisObjectEnum::ANALYSIS_PART, _analysisModelName);

if (analysisObjectEnumerator != nullptr)
{
for each (TSA::AnalysisPart^ nextPart in analysisObjectEnumerator)
{
nextPart->AnalysisPartBarAttributes->BarStartCondition->EccentricityMode =
TSA::AnalysisPartEnd::EccentricityModeEnum::ECCENTRICITY_MODE_MANUAL;

nextPart->AnalysisPartBarAttributes->BarStartCondition->Eccentricity->X = 1.23;

nextPart->Modify();

}
}
то-есть - перебираю каждый и устанавливаю для них определенные параметры, для упрощения понимания оставил два.
Затем, естественно каждому делаю Modify.
Странность состоит в том, что после отработки плагина в AnalysisPart данные не появляются.
Или я что-то неправильно делаю, или Текловцы API не дописали почеловечески.
Во всяком случае для физической модели я делаю нечто подобное и там данные обновляются.
Посоветуйте, пожалуйста где я допустил ошибку?
Последний раз редактировалось smonder 10 фев 2017, 01:07, всего редактировалось 1 раз.

Аватара пользователя
Danila_ZLT
Сообщения: 589
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 09 фев 2017, 16:32

И работает данный код?
"
}
nextPart->Modify();
}"
это точно тут?
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 10 фев 2017, 01:10

Вы правы, пытался упростить код и допустил опечатку.
Уже исправил в своем предыдущем сообщении, спасибо.

Montag
Сообщения: 5
Регистрация: 14 фев 2017, 09:07

Re: API, проблемы и решения в Tekla Structures

Сообщение Montag » 15 фев 2017, 00:33

подскажите плиз как найти пересечение сегмента LineSegment с Part?

Аватара пользователя
CuPo>I<a
Сообщения: 783
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 15 фев 2017, 07:44

как-то так...
Intersect.PNG

Montag
Сообщения: 5
Регистрация: 14 фев 2017, 09:07

Re: API, проблемы и решения в Tekla Structures

Сообщение Montag » 15 фев 2017, 10:50

здесь пересечение с Plane и BoundingBox. Мне нужно получить массив точек пересеченик отрезка с любым объектом типа Part. Есть идея через GetSolid().GeFaceEnmerator() пробежть по всем Face. По проще варианта никто не знает?

Аватара пользователя
CuPo>I<a
Сообщения: 783
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 15 фев 2017, 11:19

чем BB не устраивает?

Montag
Сообщения: 5
Регистрация: 14 фев 2017, 09:07

Re: API, проблемы и решения в Tekla Structures

Сообщение Montag » 15 фев 2017, 11:57

мне нужы точки пересечения с деталью а не с BoundingBox этой детали. Решил это так myPart.GetSolid().Intersect(point1, point2)

sergtsw
Сообщения: 1
Регистрация: 26 фев 2017, 20:26

Re: API, проблемы и решения в Tekla Structures

Сообщение sergtsw » 26 фев 2017, 20:33

Подскажите, как средствами API определить, что в Solid есть отверстие (не вырез, выходящий на край элемента). "myPart.GetSolid().Intersect(point1, point2)" отрабатывает пересечение с solid, но не учитывает отверстия, те не учитывает внутренний контур (отверстие).

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 17 апр 2017, 10:40

smonder писал(а):
08 фев 2017, 00:47
Доброго времени суток!
С Текловским Open Api работаю уже несколько лет, в данный момент пишу плагин для работы с Tekla Analysis.
Столкнулся со следующей проблемой - вытягиваю из модели AnalysisPart, далее фрагмент кода (TSA заменил Tekla::Structures::Analysis для упрощения):

TSA::Analysis^ _analysis = gcnew TSA::Analysis();

TSA::AnalysisObjectSelector^ _analysisObjectSelector = _analysis->GetAnalysisObjectSelector();

TSA::AnalysisObjectEnumerator^ analysisObjectEnumerator =
_analysisObjectSelector->GetAllObjectsWithType(TSA::AnalysisObject::AnalysisObjectEnum::ANALYSIS_PART, _analysisModelName);

if (analysisObjectEnumerator != nullptr)
{
for each (TSA::AnalysisPart^ nextPart in analysisObjectEnumerator)
{
nextPart->AnalysisPartBarAttributes->BarStartCondition->EccentricityMode =
TSA::AnalysisPartEnd::EccentricityModeEnum::ECCENTRICITY_MODE_MANUAL;

nextPart->AnalysisPartBarAttributes->BarStartCondition->Eccentricity->X = 1.23;

nextPart->Modify();

}
}
то-есть - перебираю каждый и устанавливаю для них определенные параметры, для упрощения понимания оставил два.
Затем, естественно каждому делаю Modify.
Странность состоит в том, что после отработки плагина в AnalysisPart данные не появляются.
Или я что-то неправильно делаю, или Текловцы API не дописали почеловечески.
Во всяком случае для физической модели я делаю нечто подобное и там данные обновляются.
Посоветуйте, пожалуйста где я допустил ошибку?
Уже разобрался со своей проблемой, описанной выше: оказывается предварительно нужно обязательно удалять модель анализа

String^ analysisModelName = _analysisModel->AnalysisModelName;

String^ analysisEngineName = _analysisModel->AnalysisEngine;

_analysisModel->Delete();


и затем создать новую с таким-же именем и необходимыми параметрами (сохранив их предварительно)


_analysisModel = gcnew Tekla::Structures::Analysis::AnalysisModel();

_analysisModel->AnalysisModelName = analysisModelName;

_analysisModel->AnalysisEngine = analysisEngineName;

_analysisModel->AnalysisObjectType = Tekla::Structures::Analysis::AnalysisObject::AnalysisObjectEnum::ANALYSIS_MODEL;

_analysisModel->MemberAxislocation = Tekla::Structures::Analysis::AnalysisModel::AxisLocationEnum::REFERENCE_AXIS;

_analysisModel->Insert();

теперь данные в AnalysisPart появляются стабильно.

meart
Сообщения: 396
Регистрация: 04 мар 2013, 18:09

Re: API, проблемы и решения в Tekla Structures

Сообщение meart » 30 июн 2017, 08:17

подскажите пожалуйста, есть ли возможность создать
несколько кнопок на панели инструментов для одного плагина (или макроса) с вызовом разных его функций?
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Pavel Karpovich
Сообщения: 1
Регистрация: 09 дек 2017, 11:47
Откуда: Минск
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Pavel Karpovich » 09 дек 2017, 12:17

Добрый день! Буду рад вашей помощи.
Есть простой макрос подтягивания стен/колонн к плите перекрытия. Всё отлажено и всё работает.
Захотелось закинуть код в плагин. Но появилось одно, но! Как сделать простой независимый плагин, т.е. чтобы форма открывалась, можно было выделить элементы и выполнить действия над ними, но плагин в модели не создавался (аналог exe приложения)
Поковырял свойство [InputObjectDependency(PluginBase.InputObjectDependency.NOT_DEPENDENT)] - оно не позволяет выделить элементы в модели (могу ошибаться)
Может быть есть мысли по этому поводу, какие свойства плагина ещё можно посмотреть? Или делать exe. и вызывать его через макрос?

Аватара пользователя
CuPo>I<a
Сообщения: 783
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 11 дек 2017, 06:33

[InputObjectDependency(PluginBase.InputObjectDependency.NOT_DEPENDENT)]

public override List<InputDefinition> DefineInput()
{
return new List<InputDefinition>();
}

public override bool Run(List<InputDefinition> Input)
{
try
{

}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

return true;
}

На форму можно положить любые кнопки и обработчики для них сделать. Будет работать как приложение

Ответить
phpbb3 styles

Вернуться в «3D моделирование в Tekla Structures»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 0 гостей