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

AndrejjerdnA
Сообщения: 102
Регистрация: 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
Сообщения: 576
Регистрация: 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
Сообщения: 764
Регистрация: 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
Сообщения: 764
Регистрация: 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 появляются стабильно.

Ответить
phpbb3 styles

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

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

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