add_metrology_object_genericT_add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGeneric (Operator)

Name

add_metrology_object_genericT_add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGeneric — 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)

Beschreibung

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric fügt ein Metrology-Messobjekt vom Typ ShapeShapeShapeShapeshape 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 MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle übergeben. ShapeShapeShapeShapeshape definiert den Typ des Objekts der zum Messmodell hinzugefügt werden soll. add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric gibt den Index des hinzugefügten Metrology-Messobjekts im Parameter IndexIndexIndexIndexindex zurück. Beachten Sie, dass add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric die Funktionalität der Operatoren add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure, add_metrology_object_ellipse_measureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasure, add_metrology_object_rectangle2_measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measure und add_metrology_object_line_measureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasure in einem Operator zusammenfasst.

Liste der geometrischen Formen

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

'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.

ShapeParamShapeParamShapeParamShapeParamshapeParam=[Row, Column, Radius]

'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 ]-PI,PI] abgebildet.

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

'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 ]-PI,PI] abgebildet.

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

'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.

ShapeParamShapeParamShapeParamShapeParamshapeParam=[RowBegin, ColumnBegin, RowEnd, ColumnEnd]

Definition der Messregionen

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric 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 MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1 und in MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2 gesetzt. Die Mittelpunkte der Messregionen liegen auf dem Rand der Objektkontur. Der Parameter MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigma legt eine Standardabweichung für die Glättung der Grauwerte im Bild durch den Operator apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel fest. Auffällige Kanten können mit dem Parameter MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThreshold, der einen Schwellwert für die Kantenamplitude, d.h. den Absolutbetrag der ersten Ableitung, angibt, selektiert werden.

Generische Parameter

In GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue können generische Parameter übergeben werden. Setzbar sind alle generischen Parameter, die auch im Operator set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParam 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 GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und die dazugehörigen Werte GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue zur Festlegung eines Kreis- oder Ellipsenbogens nur für ShapeShapeShapeShapeshape = 'circle' oder 'ellipse' verfügbar:

'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" auf 0 und der Wert des Parameters '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":

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" auf 0 und der Wert des Parameters '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":

Der Parameter legt die Richtung des Kreis- bzw. Ellipsenbogens fest. Wird der Wert auf 'positive'"positive""positive""positive""positive" gesetzt, ist der Bogen zwischen 'start_phi'"start_phi""start_phi""start_phi""start_phi" und '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" gesetzt, ist der Bogen zwischen 'start_phi'"start_phi""start_phi""start_phi""start_phi" und 'end_phi'"end_phi""end_phi""end_phi""end_phi" im mathematisch negativen Sinn (im Uhrzeigersinn) definiert.

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

Defaultwert: '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

MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle (input_control, Zustand wird modifiziert)  metrology_model HMetrologyModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Messmodells.

ShapeShapeShapeShapeshape (input_control)  attribute.name(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Typ des zu erstellenden Metrology-Messobjekts.

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

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

ShapeParamShapeParamShapeParamShapeParamshapeParam (input_control)  attribute.value-array HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Parameter des zu erstellenden Metrology-Messobjekts.

MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1 (input_control)  number HTupleHTupleHtuple (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 ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2 (input_control)  number HTupleHTupleHtuple (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 ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigma (input_control)  number HTupleHTupleHtuple (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 ≤ 100 (lin)

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: 0.4 <= MeasureSigma && MeasureSigma <= 100

MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThreshold (input_control)  number HTupleHTupleHtuple (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 ≤ 255 (lin)

Minimale Schrittweite: 0.5

Empfohlene Schrittweite: 2

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter.

Defaultwert: []

Werteliste: 'distance_threshold'"distance_threshold""distance_threshold""distance_threshold""distance_threshold", '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", '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_interpolation'"measure_interpolation""measure_interpolation""measure_interpolation""measure_interpolation", 'measure_select'"measure_select""measure_select""measure_select""measure_select", 'measure_transition'"measure_transition""measure_transition""measure_transition""measure_transition", 'min_score'"min_score""min_score""min_score""min_score", 'num_instances'"num_instances""num_instances""num_instances""num_instances", 'num_measures'"num_measures""num_measures""num_measures""num_measures", 'point_order'"point_order""point_order""point_order""point_order", 'rand_seed'"rand_seed""rand_seed""rand_seed""rand_seed", 'start_phi'"start_phi""start_phi""start_phi""start_phi"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value-array HTupleHTupleHtuple (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", 'true'"true""true""true""true", 'false'"false""false""false""false", 'first'"first""first""first""first", 'last'"last""last""last""last", 'positive'"positive""positive""positive""positive", 'negative'"negative""negative""negative""negative", 'uniform'"uniform""uniform""uniform""uniform", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", 'bilinear'"bilinear""bilinear""bilinear""bilinear", 'bicubic'"bicubic""bicubic""bicubic""bicubic"

IndexIndexIndexIndexindex (output_control)  integer HTupleHTupleHtuple (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_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeSetMetrologyModelImageSize, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParam

Nachfolger

align_metrology_modelalign_metrology_modelAlignMetrologyModelAlignMetrologyModelAlignMetrologyModel, apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParam

Siehe auch

get_metrology_object_model_contourget_metrology_object_model_contourGetMetrologyObjectModelContourGetMetrologyObjectModelContourGetMetrologyObjectModelContour

Modul

2D Metrology