add_metrology_object_genericT_add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic (Operator)

Name

add_metrology_object_genericT_add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic — Hinzufügen eines Metrology-Messobjekts zu einem Messmodell.

Signatur

add_metrology_object_generic( : : MetrologyHandle, Shape, ShapeParam, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue : Index)

Herror T_add_metrology_object_generic(const Htuple MetrologyHandle, const Htuple Shape, const Htuple ShapeParam, const Htuple MeasureLength1, const Htuple MeasureLength2, const Htuple MeasureSigma, const Htuple MeasureThreshold, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Index)

void AddMetrologyObjectGeneric(const HTuple& MetrologyHandle, const HTuple& Shape, const HTuple& ShapeParam, const HTuple& MeasureLength1, const HTuple& MeasureLength2, const HTuple& MeasureSigma, const HTuple& MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Index)

Hlong HMetrologyModel::AddMetrologyObjectGeneric(const HTuple& Shape, const HTuple& ShapeParam, const HTuple& MeasureLength1, const HTuple& MeasureLength2, const HTuple& MeasureSigma, const HTuple& MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const

Hlong HMetrologyModel::AddMetrologyObjectGeneric(const HString& Shape, const HTuple& ShapeParam, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const

Hlong HMetrologyModel::AddMetrologyObjectGeneric(const char* Shape, const HTuple& ShapeParam, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const

Hlong HMetrologyModel::AddMetrologyObjectGeneric(const wchar_t* Shape, const HTuple& ShapeParam, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const   (Nur Windows)

static void HOperatorSet.AddMetrologyObjectGeneric(HTuple metrologyHandle, HTuple shape, HTuple shapeParam, HTuple measureLength1, HTuple measureLength2, HTuple measureSigma, HTuple measureThreshold, HTuple genParamName, HTuple genParamValue, out HTuple index)

int HMetrologyModel.AddMetrologyObjectGeneric(HTuple shape, HTuple shapeParam, HTuple measureLength1, HTuple measureLength2, HTuple measureSigma, HTuple measureThreshold, HTuple genParamName, HTuple genParamValue)

int HMetrologyModel.AddMetrologyObjectGeneric(string shape, HTuple shapeParam, double measureLength1, double measureLength2, double measureSigma, double measureThreshold, HTuple genParamName, HTuple genParamValue)

def add_metrology_object_generic(metrology_handle: HHandle, shape: MaybeSequence[str], shape_param: Sequence[Union[int, float]], measure_length_1: Union[int, float], measure_length_2: Union[int, float], measure_sigma: Union[int, float], measure_threshold: Union[int, float], gen_param_name: Sequence[str], gen_param_value: Sequence[Union[float, int, str]]) -> int

Beschreibung

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic fügt ein Metrology-Messobjekt vom Typ ShapeShapeShapeShapeshapeshape zu einem Messmodell hinzu und bereitet die rechteckigen Messregionen vor.

Das Konzept der 2D-Messtechnik ist bei der Einleitung zu Kapitel 2D-Messtechnik beschrieben.

Das Handle des Messmodells wird in MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandlemetrology_handle übergeben. ShapeShapeShapeShapeshapeshape definiert den Typ des Objekts der zum Messmodell hinzugefügt werden soll. add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic gibt den Index des hinzugefügten Metrology-Messobjekts im Parameter IndexIndexIndexIndexindexindex zurück. Beachten Sie, dass add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic die Funktionalität der Operatoren add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureadd_metrology_object_circle_measure, add_metrology_object_ellipse_measureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureadd_metrology_object_ellipse_measure, add_metrology_object_rectangle2_measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measureadd_metrology_object_rectangle2_measure und add_metrology_object_line_measureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureadd_metrology_object_line_measure in einem Operator zusammenfasst.

Liste der geometrischen Formen

Mittels ShapeShapeShapeShapeshapeshape wird spezifiziert, welche Art von Metrology-Messobjekt dem Messmodell hinzugefügt wird. Abhängig vom Wert von ShapeShapeShapeShapeshapeshape werden folgende Werte erwartet:

'circle'"circle""circle""circle""circle""circle":

Die geometrische Form des Metrology-Messobjekts vom Typ Kreis oder Kreisbogen wird durch seinen Mittelpunkt (Row, Column) und den Radius beschrieben.

ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[Row, Column, Radius]

'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2""rectangle2":

Die geometrische Form des Metrology-Messobjekts vom Typ Rechteck wird durch seinen Mittelpunkt (Row, Column), die Orientierung der Hauptachse Phi und die halben Kantenlängen Length1 und Length2 beschrieben. Der Eingabewert für Phi wird automatisch auf das Intervall abgebildet.

ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[Row, Column, Phi, Length1, Length2]

'ellipse'"ellipse""ellipse""ellipse""ellipse""ellipse":

Die geometrische Form des Metrology-Messobjekts vom Typ Ellipse wird durch ihren Mittelpunkt (Row, Column), die Orientierung der Hauptachse Phi und die Länge der großen und kleinen Halbachsen Radius1 und Radius2 beschrieben. Der Eingabewert für Phi wird automatisch auf das Intervall abgebildet.

ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[Row, Column, Phi, Radius1, Radius2]

'line'"line""line""line""line""line":

Die geometrische Form des Metrology-Messobjekts vom Typ Linie wird durch die Koordinaten des Startpunkts (RowBegin, ColumnBegin) und die Koordinaten des Endpunkts (RowEnd, ColumnEnd) beschrieben.

ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[RowBegin, ColumnBegin, RowEnd, ColumnEnd]

Definition der Messregionen

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic bereitet die rechteckigen Messregionen vor. Die Messregionen liegen senkrecht zur Objektkontur. Die halben Kantenlängen der Messregionen senkrecht und tangential zur Objektkontur werden jeweils in MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1measure_length_1 und in MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2measure_length_2 gesetzt. Die Mittelpunkte der Messregionen liegen auf dem Rand der Objektkontur. Der Parameter MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigmameasure_sigma legt eine Standardabweichung für die Glättung der Grauwerte im Bild durch den Operator apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModelapply_metrology_model fest. Auffällige Kanten können mit dem Parameter MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThresholdmeasure_threshold, der einen Schwellenwert für die Kantenamplitude, d.h. den Absolutbetrag der ersten Ableitung, angibt, selektiert werden.

Generische Parameter

In GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value können generische Parameter übergeben werden. Setzbar sind alle generischen Parameter, die auch im Operator set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParamset_metrology_object_param zur Verfügung stehen. In den meisten Fällen reichen die Standardwerte aus, so dass keine Anpassung nötig ist. Zusätzlich sind die folgenden generischen Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und die dazugehörigen Werte GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value zur Festlegung eines Kreis- oder Ellipsenbogens nur für ShapeShapeShapeShapeshapeshape = 'circle' oder 'ellipse' verfügbar:

'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi":

Der Parameter legt den Anfangswinkel des Kreis- bzw. Ellipsenbogens fest. Für eine Ellipse wird der Anfangswinkel relativ zur positiven großen Halbachse gemessen und bezieht sich auf den kleinsten die Ellipse umgebenden Kreis. Der tatsächliche Anfangspunkt der Ellipse ergibt sich aus dem Schnittpunkt der Ellipse mit der Orthogonalprojektion des entsprechenden Kreispunktes auf die große Halbachse. Um einen geschlossenen Kreis bzw. eine geschlossene Ellipse zu erhalten, müssen der Wert des Parameters 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" auf 0 und der Wert des Parameters 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" auf gesetzt sein (bei positivem Umlaufsinn). Die Eingabewerte werden automatisch auf das Intervall abgebildet.

Wertevorschläge: 0.0, 0.78, 6.28318

Defaultwert: 0.0

'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi":

Der Parameter legt den Endwinkel des Kreis- bzw. Ellipsenbogens fest. Für eine Ellipse wird der Endwinkel relativ zur positiven großen Halbachse gemessen und bezieht sich auf den kleinsten die Ellipse umgebenden Kreis. Der tatsächliche Endpunkt der Ellipse ergibt sich aus dem Schnittpunkt der Ellipse mit der Orthogonalprojektion des entsprechenden Kreispunktes auf die große Halbachse. Um einen geschlossenen Kreis bzw. eine geschlossene Ellipse zu erhalten, müssen der Wert des Parameters 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" auf 0 und der Wert des Parameters 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" auf gesetzt sein (bei positivem Umlaufsinn). Die Eingabewerte werden automatisch auf das Intervall abgebildet.

Wertevorschläge: 0.0, 0.78, 6.28318

Defaultwert: 6.28318

'point_order'"point_order""point_order""point_order""point_order""point_order":

Der Parameter legt die Richtung des Kreis- bzw. Ellipsenbogens fest. Wird der Wert auf 'positive'"positive""positive""positive""positive""positive" gesetzt, ist der Bogen zwischen 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" und 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" im mathematisch positiven Sinn (gegen den Uhrzeigersinn) definiert. Wird der Wert auf 'negative'"negative""negative""negative""negative""negative" gesetzt, ist der Bogen zwischen 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" und 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" im mathematisch negativen Sinn (im Uhrzeigersinn) definiert.

Wertevorschläge: 'positive'"positive""positive""positive""positive""positive", 'negative'"negative""negative""negative""negative""negative"

Defaultwert: 'positive'"positive""positive""positive""positive""positive"

Ausführungsinformationen

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.

Parameter

MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandlemetrology_handle (input_control, Zustand wird modifiziert)  metrology_model HMetrologyModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Messmodells.

ShapeShapeShapeShapeshapeshape (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Typ des zu erstellenden Metrology-Messobjekts.

Defaultwert: 'circle' "circle" "circle" "circle" "circle" "circle"

Werteliste: 'circle'"circle""circle""circle""circle""circle", 'ellipse'"ellipse""ellipse""ellipse""ellipse""ellipse", 'line'"line""line""line""line""line", 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2""rectangle2"

ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param (input_control)  attribute.value-array HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Parameter des zu erstellenden Metrology-Messobjekts.

MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1measure_length_1 (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Halbe Länge der Messregionen senkrecht zum Rand.

Defaultwert: 20.0

Wertevorschläge: 10.0, 20.0, 30.0

Typischer Wertebereich: 1.0 ≤ MeasureLength1 MeasureLength1 MeasureLength1 MeasureLength1 measureLength1 measure_length_1 ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2measure_length_2 (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Halbe Länge der Messregionen tangential zum Rand.

Defaultwert: 5.0

Wertevorschläge: 3.0, 5.0, 10.0

Typischer Wertebereich: 1.0 ≤ MeasureLength2 MeasureLength2 MeasureLength2 MeasureLength2 measureLength2 measure_length_2 ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigmameasure_sigma (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Sigma der Gaußfunktion für die Glättung.

Defaultwert: 1.0

Wertevorschläge: 0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0

Typischer Wertebereich: 0.4 ≤ MeasureSigma MeasureSigma MeasureSigma MeasureSigma measureSigma measure_sigma ≤ 100 (lin)

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThresholdmeasure_threshold (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Minimale Amplitude einer Kante.

Defaultwert: 30.0

Wertevorschläge: 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0

Typischer Wertebereich: 1 ≤ MeasureThreshold MeasureThreshold MeasureThreshold MeasureThreshold measureThreshold measure_threshold ≤ 255 (lin)

Minimale Schrittweite: 0.5

Empfohlene Schrittweite: 2

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name-array HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter.

Defaultwert: []

Werteliste: 'distance_threshold'"distance_threshold""distance_threshold""distance_threshold""distance_threshold""distance_threshold", 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi", 'instances_outside_measure_regions'"instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions", 'max_num_iterations'"max_num_iterations""max_num_iterations""max_num_iterations""max_num_iterations""max_num_iterations", 'measure_distance'"measure_distance""measure_distance""measure_distance""measure_distance""measure_distance", 'measure_interpolation'"measure_interpolation""measure_interpolation""measure_interpolation""measure_interpolation""measure_interpolation", 'measure_select'"measure_select""measure_select""measure_select""measure_select""measure_select", 'measure_transition'"measure_transition""measure_transition""measure_transition""measure_transition""measure_transition", 'min_score'"min_score""min_score""min_score""min_score""min_score", 'num_instances'"num_instances""num_instances""num_instances""num_instances""num_instances", 'num_measures'"num_measures""num_measures""num_measures""num_measures""num_measures", 'point_order'"point_order""point_order""point_order""point_order""point_order", 'rand_seed'"rand_seed""rand_seed""rand_seed""rand_seed""rand_seed", 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value-array HTupleSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Werte der generischen Parameter.

Defaultwert: []

Wertevorschläge: 1, 2, 3, 4, 5, 10, 20, 'all'"all""all""all""all""all", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'first'"first""first""first""first""first", 'last'"last""last""last""last""last", 'positive'"positive""positive""positive""positive""positive", 'negative'"negative""negative""negative""negative""negative", 'uniform'"uniform""uniform""uniform""uniform""uniform", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic"

IndexIndexIndexIndexindexindex (output_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Index des erstellten Metrology-Messobjekts.

Beispiel (HDevelop)

create_metrology_model (MetrologyHandle)
read_image (Image, 'fabrik')
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
LinePar := [45,360,415,360]
RectPar1 := [270,232,rad(0),30,25]
RectPar2 := [360,230,rad(0),30,25]
LinePar := [45,360,415,360]
RectPar3 := [245,320,rad(-90),70,35]
* Add two rectangles
add_metrology_object_generic (MetrologyHandle, 'rectangle2', \
                             [RectPar1,RectPar2], 20, 5, 1, 30, [], [], \
                             Indices)
* Add a rectangle and a line
add_metrology_object_generic (MetrologyHandle, ['rectangle2','line'], \
                             [RectPar3,LinePar], 20, 5, 1, 30, [], [], \
                             Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all', \
                                    'all', 1.5)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeset_metrology_model_image_size, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParamset_metrology_model_param

Nachfolger

align_metrology_modelalign_metrology_modelAlignMetrologyModelAlignMetrologyModelAlignMetrologyModelalign_metrology_model, apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModelapply_metrology_model, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParamset_metrology_model_param

Siehe auch

get_metrology_object_model_contourget_metrology_object_model_contourGetMetrologyObjectModelContourGetMetrologyObjectModelContourGetMetrologyObjectModelContourget_metrology_object_model_contour

Modul

2D Metrology