connection_object_model_3d
— Berechnen der Zusammenhangskomponenten eines 3D-Objektmodells.
connection_object_model_3d( : : ObjectModel3D, Feature, Value : ObjectModel3DConnected)
connection_object_model_3d
berechnet innerhalb des
3D-Objektmodells ObjectModel3D
die
Zusammenhangskomponenten. Der Zusammenhang zweier Komponenten
wird mithilfe eines Attributs und einem darauf definierten Distanzmaß
ermittelt, das durch den Parameter Feature
festgelegt wird:
Alle Punkte, deren euklidischer Abstand zueinander kleiner als
Value
ist, werden als zusammenhängend angesehen.
Punkte werden als zusammenhängend angesehen, falls der Winkel
zwischen den Normalen der Punkte kleiner als Value
ist.
Value
wird in Bogenmaß angegeben und muss
zwischen 0 und pi liegen.
Voraussetzung: Das 3D-Objektmodell muss Normalen
enthalten. Diese können mit surface_normals_object_model_3d
berechnet werden.
Punkte werden als zusammenhängend angesehen, falls der Abstand
zwischen den im Pixel-Mapping gespeicherten Pixel kleiner ist als
Value
. Um das gleiche Verhalten wie im
Operator connection
zu erhalten und eine 8-er Nachbarschaft
zu erhalten, sollte für Value
ein Wert größer als 1.5 angegeben
werden.
Voraussetzung: Das 3D-Objektmodell muss Pixel-Mapping enthalten.
Das ist der Fall, wenn das 3D-Objektmodell mit
xyz_to_object_model_3d
erstellt wurde.
Bestimmt die Zusammenhangskomponenten in der Vermaschung des 3D-Objektmodells. Ein Dreieck oder Polygon verbindet hierbei mehrere 3D-Punkte zu einer Zusammenhangskomponente. Gibt es zwei Polygone, die den selben Punkt enthalten, werden alle Punkte beider Polygone zu einer Zusammenhangskomponente zusammengefasst.
Voraussetzung: Das 3D-Objektmodell muss trianguliert worden sein, was
mit triangulate_object_model_3d
erreicht werden kann. Falls das
3D-Objektmodell schon ein Pixel-Mapping enthält, kann alternativ auch
prepare_object_model_3d
genutzt werden, um das 3D-Objekt schnell
zu triangulieren. Hierbei ist der Parameter Purpose
auf den Wert 'segmentation' zu setzen.
Bestimmt die Zusammenhangskomponenten bezüglich der enthaltenen Linienzüge des 3D-Objektmodells.
Voraussetzung: Das 3D-Objektmodell muss Linienzüge enthalten. Diese
können mit intersect_plane_object_model_3d
berechnet werden.
Die benötigten Attribute können auch manuell mit
set_object_model_3d_attrib
oder
set_object_model_3d_attrib_mod
gesetzt werden. Es ist möglich, dass
3D-Objektmodell bereits die benötigten Attribute enthält, insbesondere,
wenn es mit read_object_model_3d
eingelesen wurde, oder mit
deserialize_object_model_3d
deserialisiert wurde. Um zu überprüfen,
ob das benötigte Attribut vorhanden ist, kann
get_object_model_3d_params
genutzt werden.
Dieser Operator unterstützt Cancel-Timeouts und Interrupts.
ObjectModel3D
(input_control) object_model_3d(-array) →
(handle)
Handle eines 3D-Objektmodells.
Feature
(input_control) string(-array) →
(string)
Attribut, aufgrund dessen die Zusammenhangskomponenten berechnet werden.
Defaultwert: 'distance_3d'
Werteliste: 'angle' , 'distance_3d' , 'distance_mapping' , 'lines' , 'mesh'
Value
(input_control) number(-array) →
(real / integer)
Obere Schranke für den Abstand zweier Zusammenhangskomponenten.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.5, 10.0, 100.0
ObjectModel3DConnected
(output_control) object_model_3d-array →
(handle)
Handle der 3D-Objektmodelle der Zusammenhangskomponenten.
gen_object_model_3d_from_points (rand(100), rand(100),\ rand(100), ObjectModel3D) connection_object_model_3d (ObjectModel3D, 'distance_3d', 0.2,\ ObjectModel3DConnected) dev_get_window (WindowHandle) visualize_object_model_3d (WindowHandle, [ObjectModel3DConnected], [], [],\ ['colored'], [12], [], [], [], PoseOut)
connection_object_model_3d
liefert den Wert 2 (H_MSG_TRUE) wenn alle
Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung
durchgeführt.
read_object_model_3d
,
xyz_to_object_model_3d
,
select_points_object_model_3d
project_object_model_3d
,
object_model_3d_to_xyz
3D Metrology