Skip to content

modify_component_relationsModifyComponentRelationsModifyComponentRelationsmodify_component_relationsT_modify_component_relationsπŸ”—

Short descriptionπŸ”—

modify_component_relationsModifyComponentRelationsModifyComponentRelationsmodify_component_relationsT_modify_component_relations β€” Modify the relations within a training result.

WarningπŸ”—

modify_component_relationsModifyComponentRelations is obsolete and is only provided for reasons of backward compatibility. The operator will be removed with HALCON 26.11.

SignatureπŸ”—

modify_component_relations( component_training ComponentTrainingID, string ReferenceComponent, string ToleranceComponent, real PositionTolerance, angle.rad AngleTolerance )void ModifyComponentRelations( const HTuple& ComponentTrainingID, const HTuple& ReferenceComponent, const HTuple& ToleranceComponent, const HTuple& PositionTolerance, const HTuple& AngleTolerance )static void HOperatorSet.ModifyComponentRelations( HTuple componentTrainingID, HTuple referenceComponent, HTuple toleranceComponent, HTuple positionTolerance, HTuple angleTolerance )def modify_component_relations( component_training_id: HHandle, reference_component: MaybeSequence[Union[int, str]], tolerance_component: MaybeSequence[Union[int, str]], position_tolerance: MaybeSequence[float], angle_tolerance: MaybeSequence[float] ) -> None

Herror T_modify_component_relations( const Htuple ComponentTrainingID, const Htuple ReferenceComponent, const Htuple ToleranceComponent, const Htuple PositionTolerance, const Htuple AngleTolerance )

void HComponentTraining::ModifyComponentRelations( const HTuple& ReferenceComponent, const HTuple& ToleranceComponent, const HTuple& PositionTolerance, const HTuple& AngleTolerance ) const

void HComponentTraining::ModifyComponentRelations( const HString& ReferenceComponent, const HString& ToleranceComponent, double PositionTolerance, double AngleTolerance ) const

void HComponentTraining::ModifyComponentRelations( const char* ReferenceComponent, const char* ToleranceComponent, double PositionTolerance, double AngleTolerance ) const

void HComponentTraining::ModifyComponentRelations( const wchar_t* ReferenceComponent, const wchar_t* ToleranceComponent, double PositionTolerance, double AngleTolerance ) const (Windows only)

void HComponentTraining.ModifyComponentRelations( HTuple referenceComponent, HTuple toleranceComponent, HTuple positionTolerance, HTuple angleTolerance )

void HComponentTraining.ModifyComponentRelations( string referenceComponent, string toleranceComponent, double positionTolerance, double angleTolerance )

DescriptionπŸ”—

modify_component_relationsModifyComponentRelations modifies the relations between the model components within the component training result ComponentTrainingIDcomponentTrainingIDcomponent_training_id. The selection of the relation(s) that should be changed is performed by setting ReferenceComponentreferenceComponentreference_component and ToleranceComponenttoleranceComponenttolerance_component, respectively. This means that the relative movement of component ToleranceComponenttoleranceComponenttolerance_component with respect to the component ReferenceComponentreferenceComponentreference_component is modified.

The size of the change is specified as follows: By specifying a position tolerance PositionTolerancepositionToleranceposition_tolerance, the semi-axes of the rectangle that describes the reference point’s movement (see train_model_componentsTrainModelComponents) are enlarged by PositionTolerancepositionToleranceposition_tolerance pixels. Accordingly, by specifying an orientation tolerance AngleToleranceangleToleranceangle_tolerance, the angle range that describes the variation of the relative orientation (see train_model_componentsTrainModelComponents) is enlarged by AngleToleranceangleToleranceangle_tolerance to both sides. Consequently, negative tolerance values lead to a decreased size of the relations. The operator modify_component_relationsModifyComponentRelations is particularly useful when the training images that were used during the training do not cover the entire spectrum of the relative movements.

In order to select the relations that should be modified, values for ReferenceComponentreferenceComponentreference_component and ToleranceComponenttoleranceComponenttolerance_component can be passed in one of the following ways: For each of both parameters either one value, several values, or the string 'all'"all" can be passed. The following table summarizes the different possibilities by giving the affected relations for different combinations of parameter values. Here, four model components are assumed (0, 1, 2, and 3). If, for example, ReferenceComponentreferenceComponentreference_component is set to 00 and ToleranceComponenttoleranceComponenttolerance_component is set to 11, then the relation (0,1), which corresponds to the relative movement of component 1 with respect to component 0, will be modified.

ReferenceComponentreferenceComponentreference_component ToleranceComponenttoleranceComponenttolerance_component Affected Relation(s)
β€˜all’ β€˜all’ (0,1) (0,2) (0,3)
(1,0) (1,2) (1,3)
(2,0) (2,1) (2,3)
(3,0) (3,1) (3,2)
β€˜all’ [1,2] (0,1) (0,2)
(1,2)
(2,1)
(3,1) (3,2)
[0,1] β€˜all’ (0,1) (0,2) (0,3)
(1,0) (1,2) (1,3)
0 1 (0,1)
0 [1,2] (0,1) (0,2)
[0,1] 2 (0,2) (1,2)
[0,1,2] [1,2,3] (0,1) (1,2) (2,3)

The number of tolerance values passed in PositionTolerancepositionToleranceposition_tolerance and AngleToleranceangleToleranceangle_tolerance must be either 1 or be equal to the number of affected relations. In the former case all affected relations are modified by the same value, whereas in the latter case each relation can be modified individually by passing different values within a tuple.

Execution informationπŸ”—

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.

ParametersπŸ”—

ComponentTrainingIDcomponentTrainingIDcomponent_training_id (input_control, state is modified) component_training β†’ (handle)HTuple (HHandle)HComponentTraining, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the training result.

ReferenceComponentreferenceComponentreference_component (input_control) string(-array) β†’ (string / integer)HTuple (HString / Hlong)HTuple (string / int / long)MaybeSequence[Union[int, str]]Htuple (char* / Hlong)

Model component(s) relative to which the movement(s) should be modified.

Default: 'all'"all"
Suggested values: 'all', 0, 1, 2, 3, 4, 5, 6"all", 0, 1, 2, 3, 4, 5, 6

ToleranceComponenttoleranceComponenttolerance_component (input_control) string(-array) β†’ (string / integer)HTuple (HString / Hlong)HTuple (string / int / long)MaybeSequence[Union[int, str]]Htuple (char* / Hlong)

Model component(s) of which the relative movement(s) should be modified.

Default: 'all'"all"
Suggested values: 'all', 0, 1, 2, 3, 4, 5, 6"all", 0, 1, 2, 3, 4, 5, 6

PositionTolerancepositionToleranceposition_tolerance (input_control) real(-array) β†’ (real)HTuple (double)HTuple (double)MaybeSequence[float]Htuple (double)

Change of the position relation in pixels.

Suggested values: 1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 20.0, 30.01.0, 2.0, 3.0, 4.0, 5.0, 10.0, 20.0, 30.0

AngleToleranceangleToleranceangle_tolerance (input_control) angle.rad(-array) β†’ (real)HTuple (double)HTuple (double)MaybeSequence[float]Htuple (double)

Change of the orientation relation in radians.

Suggested values: 0.017, 0.035, 0.052, 0.070, 0.087, 0.175, 0.3490.017, 0.035, 0.052, 0.070, 0.087, 0.175, 0.349

ResultπŸ”—

If the handle of the training result is valid, the operator modify_component_relationsModifyComponentRelations returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

ModuleπŸ”—

Matching