NX Open C++ 参考指南 2406 v1.1
载入中...
搜索中...
未找到
Optimization_OptimizationBuilder.hxx
1//--------------------------------------------------------------------------
2// Copyright 2024 Siemens
3//--------------------------------------------------------------------------
4// JA API的C++接口头文件
5//--------------------------------------------------------------------------
6//
7// 源文件:
8// Optimization_OptimizationBuilder.ja
9//
10// 生成工具:
11// apiwrap
12//
13// 警告:
14// 此文件为自动生成,请勿手动编辑
15//
16#pragma once
17#include <NXOpen/NXDeprecation.hxx>
18#include <vector>
19#include <NXOpen/NXString.hxx>
20#include <NXOpen/Callback.hxx>
21#include <NXOpen/Builder.hxx>
22#include <NXOpen/libnxopencpp_optimization_exports.hxx>
23#ifdef _MSC_VER
24#pragma warning(push)
25#pragma warning(disable:4996)
26#endif
27#ifdef __GNUC__
28#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
29#endif
30namespace NXOpen
31{
32 namespace Optimization
33 {
35 }
36 class Builder;
37 class NXObject;
38 namespace Optimization
39 {
40 class _OptimizationBuilderBuilder;
41 class OptimizationBuilderImpl;
45 class NXOPENCPP_OPTIMIZATIONEXPORT OptimizationBuilder : public NXOpen::Builder
46 {
54
61
67
77
85
86 public:
87 struct OptimizationObjective
88 {
92 public: double ObjectiveTargetValue;
93 public: OptimizationObjective() :
96 ObjectiveType((NXOpen::Optimization::OptimizationBuilder::OptimizationAttributeType)0),
98{
99 }
101 public: OptimizationObjective(const NXString &attributeNameInitial ,
102 NXOpen::NXObject * attributeObjectInitial ,
104 double objectiveTargetValueInitial ) :
105 AttributeName(attributeNameInitial),
106 AttributeObject(attributeObjectInitial),
107 ObjectiveType(objectiveTypeInitial),
108 ObjectiveTargetValue(objectiveTargetValueInitial)
109 {
110 }
111 };
112
113 public:
114 struct OptimizationVariable
115 {
121 public: OptimizationVariable() :
124 VariableType((NXOpen::Optimization::OptimizationBuilder::OptimizationAttributeType)0),
127 {
128 }
130 public: OptimizationVariable(const NXString &attributeNameInitial ,
131 NXOpen::NXObject * attributeObjectInitial ,
133 double variableLowerLimitValueInitial ,
134 double variableUpperLimitValueInitial ) :
135 AttributeName(attributeNameInitial),
136 AttributeObject(attributeObjectInitial),
137 VariableType(variableTypeInitial),
138 VariableLowerLimitValue(variableLowerLimitValueInitial),
139 VariableUpperLimitValue(variableUpperLimitValueInitial)
140 {
141 }
142 };
143
144 public:
145 struct OptimizationConstraint
146 {
153 public: OptimizationConstraint() :
156 ConstraintType((NXOpen::Optimization::OptimizationBuilder::OptimizationAttributeType)0),
159 ConstraintLimitType((NXOpen::Optimization::OptimizationBuilder::OptimizationConstraintLimitType)0)
160 {
161 }
163 public: OptimizationConstraint(const NXString &attributeNameInitial ,
164 NXOpen::NXObject * attributeObjectInitial ,
166 double constraintLowerLimitValueInitial ,
167 double constraintUpperLimitValueInitial ,
169 AttributeName(attributeNameInitial),
170 AttributeObject(attributeObjectInitial),
171 ConstraintType(constraintTypeInitial),
172 ConstraintLowerLimitValue(constraintLowerLimitValueInitial),
173 ConstraintUpperLimitValue(constraintUpperLimitValueInitial),
174 ConstraintLimitType(constraintLimitTypeInitial)
175 {
176 }
177 };
178 private: OptimizationBuilderImpl * m_optimizationbuilder_impl;
179 private: friend class _OptimizationBuilderBuilder;
180 protected: OptimizationBuilder();
181 public: ~OptimizationBuilder();
186 (
187 );
191 public: void SetStudyName
192 (
193 const NXString & studyName
194 );
199 (
200 const char * studyName
201 );
206 (
207 );
212 (
214 );
219 (
220 );
224 public: void SetAlgorithmType
225 (
227 );
231 public: void RunOptimization
232 (
233 );
238 (
239 );
244 (
246 );
251 (
252 );
257 (
258 int maxNumberIteration
259 );
263 public: int MaxTime
264 (
265 );
269 public: void SetMaxTime
270 (
271 int maxTime
272 );
277 (
278 );
283 (
284 double absoluteConvergenceCriteria
285 );
290 (
291 );
296 (
297 double relativeConvergenceCriteria
298 );
302 public: bool IsUpdateDisp
303 (
304 );
308 public: void SetUpdateDisp
309 (
310 bool isUpdateDisp
311 );
315 public: bool IsShowGraph
316 (
317 );
321 public: void SetShowGraph
322 (
323 bool isShowGraph
324 );
328 public: std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationObjective> GetOptimizationObjectives
329 (
330 );
335 (
336 std::vector<NXString> & attributeNames ,
337 const std::vector<NXOpen::NXObject *> & attributeObjects ,
338 const std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationAttributeType> & objectiveTypes ,
339 const std::vector<double> & objectiveTargetValues
340 );
344 public: std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationVariable> GetOptimizationVariables
345 (
346 );
351 (
352 std::vector<NXString> & attributeNames ,
353 const std::vector<NXOpen::NXObject *> & attributeObjects ,
354 const std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationAttributeType> & variableTypes ,
355 const std::vector<double> & variableLowerLimitValue ,
356 const std::vector<double> & variableUpperLimitValue
357 );
361 public: std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationConstraint> GetOptimizationConstraints
362 (
363 );
368 (
369 std::vector<NXString> & attributeNames ,
370 const std::vector<NXOpen::NXObject *> & attributeObjects ,
371 const std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationAttributeType> & constraintTypes ,
372 const std::vector<double> & constraintLowerLimitValue ,
373 const std::vector<double> & constraintUpperLimitValue ,
374 const std::vector<NXOpen::Optimization::OptimizationBuilder::OptimizationConstraintLimitType> & constraintLimitType
375 );
380 (
381 );
386 (
387 );
391 public: void BuildAllVariables
392 (
393 );
398 (
399 );
404 (
405 );
410 (
411 );
412 };
413 }
414}
415#ifdef _MSC_VER
416#pragma warning(pop)
417#endif
418#ifdef __GNUC__
419#ifndef NX_NO_GCC_DEPRECATION_WARNINGS
420#pragma GCC diagnostic warning "-Wdeprecated-declarations"
421#endif
422#endif
423#undef EXPORTLIBRARY