KlassenKlassenKlassenKlassen | | | | Operatoren

connection_object_model_3dT_connection_object_model_3dConnectionObjectModel3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3d (Operator)

Name

connection_object_model_3dT_connection_object_model_3dConnectionObjectModel3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3d — Berechnen der Zusammenhangskomponenten eines 3D-Objektmodells.

Signatur

connection_object_model_3d( : : ObjectModel3D, Feature, Value : ObjectModel3DConnected)

Herror T_connection_object_model_3d(const Htuple ObjectModel3D, const Htuple Feature, const Htuple Value, Htuple* ObjectModel3DConnected)

Herror connection_object_model_3d(const HTuple& ObjectModel3D, const HTuple& Feature, const HTuple& Value, HTuple* ObjectModel3DConnected)

HTuple HObjectModel3D::ConnectionObjectModel3d(const HTuple& Feature, const HTuple& Value) const

void ConnectionObjectModel3d(const HTuple& ObjectModel3D, const HTuple& Feature, const HTuple& Value, HTuple* ObjectModel3DConnected)

static HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HTuple& Feature, const HTuple& Value)

HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const HString& Feature, double Value) const

HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const char* Feature, double Value) const

void HOperatorSetX.ConnectionObjectModel3d(
[in] VARIANT ObjectModel3D, [in] VARIANT Feature, [in] VARIANT Value, [out] VARIANT* ObjectModel3DConnected)

IHObjectModel3DX* HObjectModel3DX.ConnectionObjectModel3d(
[in] VARIANT Feature, [in] VARIANT Value)

static void HOperatorSet.ConnectionObjectModel3d(HTuple objectModel3D, HTuple feature, HTuple value, out HTuple objectModel3DConnected)

static HObjectModel3D[] HObjectModel3D.ConnectionObjectModel3d(HObjectModel3D[] objectModel3D, HTuple feature, HTuple value)

HObjectModel3D[] HObjectModel3D.ConnectionObjectModel3d(string feature, double value)

Beschreibung

connection_object_model_3dconnection_object_model_3dConnectionObjectModel3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3d berechnet innerhalb des 3D-Objektmodells ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D die Zusammenhangskomponenten. Der Zusammenhang zweier Komponenten wird mithilfe eines Attributs und einem darauf definierten Distanzmaß ermittelt, das durch den Parameter FeatureFeatureFeatureFeatureFeaturefeature festgelegt wird:

'distance_3d'"distance_3d""distance_3d""distance_3d""distance_3d""distance_3d":

Alle Punkte, deren euklidischer Abstand zueinander kleiner als ValueValueValueValueValuevalue ist, werden als zusammenhängend angesehen.

'angle'"angle""angle""angle""angle""angle":

Punkte werden als zusammenhängend angesehen, falls der Winkel zwischen den Normalen der Punkte kleiner als ValueValueValueValueValuevalue ist. ValueValueValueValueValuevalue 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_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3d berechnet werden.

'distance_mapping'"distance_mapping""distance_mapping""distance_mapping""distance_mapping""distance_mapping":

Punkte werden als zusammenhängend angesehen, falls der Abstand zwischen den im Pixel-Mapping gespeicherten Pixel kleiner ist als ValueValueValueValueValuevalue. Um das gleiche Verhalten wie im Operator connectionconnectionConnectionconnectionConnectionConnection zu erhalten und eine 8-er Nachbarschaft zu erhalten, sollte für ValueValueValueValueValuevalue 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_3dxyz_to_object_model_3dXyzToObjectModel3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3d erstellt wurde.

'mesh'"mesh""mesh""mesh""mesh""mesh":

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_3dtriangulate_object_model_3dTriangulateObjectModel3dtriangulate_object_model_3dTriangulateObjectModel3dTriangulateObjectModel3d erreicht werden kann. Falls das 3D-Objektmodell schon ein Pixel-Mapping enthält, kann alternativ auch prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3d genutzt werden, um das 3D-Objekt schnell zu triangulieren. Hierbei ist der Parameter Purpose auf den Wert 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation" zu setzen.

'lines'"lines""lines""lines""lines""lines":

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_3dintersect_plane_object_model_3dIntersectPlaneObjectModel3dintersect_plane_object_model_3dIntersectPlaneObjectModel3dIntersectPlaneObjectModel3d berechnet werden.

Die benötigten Attribute können auch manuell mit set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib oder set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribMod gesetzt werden. Es ist möglich, dass 3D-Objektmodell bereits die benötigten Attribute enthält, insbesondere, wenn es mit read_object_model_3dread_object_model_3dReadObjectModel3dread_object_model_3dReadObjectModel3dReadObjectModel3d eingelesen wurde, oder mit deserialize_object_model_3ddeserialize_object_model_3dDeserializeObjectModel3ddeserialize_object_model_3dDeserializeObjectModel3dDeserializeObjectModel3d deserialisiert wurde. Um zu überprüfen, ob das benötigte Attribut vorhanden ist, kann get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParams genutzt werden.

Wenn ein 3D-Objektmodell überschrieben werden soll oder es nicht länger benötigt wird, muss der Speicher durch Aufrufen des Operators clear_object_model_3dclear_object_model_3dClearObjectModel3dclear_object_model_3dClearObjectModel3dClearObjectModel3d freigegeben werden.

Parallelisierung

Parameter

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D (input_control)  object_model_3d(-array) HObjectModel3D, HTupleHTupleHObjectModel3D, HTupleHObjectModel3DX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle eines 3D-Objektmodells.

FeatureFeatureFeatureFeatureFeaturefeature (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Attribut, aufgrund dessen die Zusammenhangskomponenten berechnet werden.

Defaultwert: 'distance_3d' "distance_3d" "distance_3d" "distance_3d" "distance_3d" "distance_3d"

Werteliste: 'angle'"angle""angle""angle""angle""angle", 'distance_3d'"distance_3d""distance_3d""distance_3d""distance_3d""distance_3d", 'distance_mapping'"distance_mapping""distance_mapping""distance_mapping""distance_mapping""distance_mapping", 'lines'"lines""lines""lines""lines""lines", 'mesh'"mesh""mesh""mesh""mesh""mesh"

ValueValueValueValueValuevalue (input_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Obere Schranke für den Abstand zweier Zusammenhangskomponenten.

Defaultwert: 1.0

Wertevorschläge: 1.0, 1.1, 1.5, 10.0, 100.0

ObjectModel3DConnectedObjectModel3DConnectedObjectModel3DConnectedObjectModel3DConnectedObjectModel3DConnectedobjectModel3DConnected (output_control)  object_model_3d-array HObjectModel3D, HTupleHTupleHObjectModel3D, HTupleHObjectModel3DX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle der 3D-Objektmodelle der Zusammenhangskomponenten.

Beispiel (HDevelop)

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)

Ergebnis

connection_object_model_3dconnection_object_model_3dConnectionObjectModel3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3d liefert den Wert 2 (H_MSG_TRUE) wenn alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_object_model_3dread_object_model_3dReadObjectModel3dread_object_model_3dReadObjectModel3dReadObjectModel3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3d, select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3d

Nachfolger

project_object_model_3dproject_object_model_3dProjectObjectModel3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyz

Siehe auch

select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3d

Modul

3D Metrology


KlassenKlassenKlassenKlassen | | | | Operatoren