volume_object_model_3d_relative_to_planeT_volume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane (Operator)

Name

volume_object_model_3d_relative_to_planeT_volume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane — Berechnen des Volumens eines 3D-Objektmodells.

Signatur

volume_object_model_3d_relative_to_plane( : : ObjectModel3D, Plane, Mode, UseFaceOrientation : Volume)

Herror T_volume_object_model_3d_relative_to_plane(const Htuple ObjectModel3D, const Htuple Plane, const Htuple Mode, const Htuple UseFaceOrientation, Htuple* Volume)

void VolumeObjectModel3dRelativeToPlane(const HTuple& ObjectModel3D, const HTuple& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation, HTuple* Volume)

static HTuple HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HObjectModel3DArray& ObjectModel3D, const HPoseArray& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation)

double HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HPose& Plane, const HString& Mode, const HString& UseFaceOrientation) const

double HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HPose& Plane, const char* Mode, const char* UseFaceOrientation) const

double HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HPose& Plane, const wchar_t* Mode, const wchar_t* UseFaceOrientation) const   (Nur Windows)

static void HOperatorSet.VolumeObjectModel3dRelativeToPlane(HTuple objectModel3D, HTuple plane, HTuple mode, HTuple useFaceOrientation, out HTuple volume)

static HTuple HObjectModel3D.VolumeObjectModel3dRelativeToPlane(HObjectModel3D[] objectModel3D, HPose[] plane, HTuple mode, HTuple useFaceOrientation)

double HObjectModel3D.VolumeObjectModel3dRelativeToPlane(HPose plane, string mode, string useFaceOrientation)

Beschreibung

volume_object_model_3d_relative_to_planevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane berechnet das Volumen unter den Flächen eines 3D-Objektmodells relativ zu einer Ebene im Raum. Die Ebene wird durch die x-y-Ebene der Pose in PlanePlanePlanePlaneplane definiert.

Für das 3D-Objektmodell ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D muss eine Triangulierung oder eine Polygonliste vorhanden sein. Falls das 3D-Objektmodell eine wasserdichte und geordnete Vermaschung besitzt, berechnet der Operator mit den Standardeinstellungen das tatsächliche Volumen. Um Fälle zu behandeln, wo das Netz nicht wasserdicht oder die Vermaschung nicht konsistent ist, kann die Berechnung des Volumens mit den Parametern ModeModeModeModemode und UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation beeinflusst werden.

Wie das Volumen berechnet wird:

Zuerst berechnet der Operator das Volumen der Prismen, die sich aus der Projektion der einzelnen Flächen auf die Ebene ergeben.

Die einzelnen Volumen der Prismen können positiv oder negativ sein, abhängig von der Orientierung (hin zur oder weg von der Ebene) oder der Lage (oberhalb oder unterhalb) der Fläche. Das kann mit dem Parameter UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation eingestellt werden.

Danach werdem die Volumen der Prismen abhängig vom Parameter ModeModeModeModemode aufsummiert.

Das in VolumeVolumeVolumeVolumevolume zurückgegebene Volumen ist der Absolutbetrag der berechneten Summe.

Einstellen der Parameter:

ModeModeModeModemode kann folgende Werte annehmen:

'signed' (default)

Die Volumen oberhalb und unterhalb der Ebene werden addiert.

'unsigned'

Das Volumen unterhalb der Ebene wird vom Volumen oberhalb der Ebene abgezogen.

'positive'

Nur Flächen oberhalb der Ebene werden berücksichtigt.

'negative'

Nur Flächen unterhalb der Ebene werden berücksichtigt.

UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation kann folgende Werte annehmen:

'true' (default)

Verwendet die Orientierung der Fläche relativ zur Ebene. Eine Fläche zeigt weg von der Ebene, falls die Eckpunkte von der Ebene aus betrachtet im Uhrzeigersinn angeordnet sind. Das Volumen eines Prismas ist positiv, wenn die Orientierung der Fläche weg von der Ebene zeigt. Das Volumen eines Prismas ist negativ, wenn die Orientierung der Fläche hin zu der Ebene zeigt.

'false'

Das Volumen eines Prismas is positiv, wenn die Fläche oberhalb der Ebene liegt. Das Volumen eines Prismas is negativ, wenn die Fläche unterhalb der Ebene liegt.

Zum Beispiel wird mit der Standardeinstellung (ModeModeModeModemode: 'signed'"signed""signed""signed""signed", UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation: 'true'"true""true""true""true") das Volumen eine geschlossenen Objektes berechnet. In diesem Fall wird die Ebene PlanePlanePlanePlaneplane zwar benötigt, hat aber keinen Einfluss auf das berechnete Endergebnis.

Beispiel: (A) ModeModeModeModemode: 'signed'"signed""signed""signed""signed", UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation: 'true'"true""true""true""true": (B) ModeModeModeModemode: 'signed'"signed""signed""signed""signed", UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation: 'false'"false""false""false""false": (C) ModeModeModeModemode: 'negative'"negative""negative""negative""negative":

Achtung

Ist die Entfernung zwischen der Ebene und dem Objekt sehr groß (ca. 10000 mal größer als der Durchmesser), kann die Berechnung des Volumens numerisch instabil werden.

Ausführungsinformationen

Parameter

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D (input_control)  object_model_3d(-array) HObjectModel3D, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle eines 3D-Objektmodells.

PlanePlanePlanePlaneplane (input_control)  pose(-array) HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Pose der Ebene.

Defaultwert: [0,0,0,0,0,0,0]

ModeModeModeModemode (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Methode, mit der Volumina ober- und unterhalb der Referenzebene kombiniert werden.

Defaultwert: 'signed' "signed" "signed" "signed" "signed"

Werteliste: 'negative'"negative""negative""negative""negative", 'positive'"positive""positive""positive""positive", 'signed'"signed""signed""signed""signed", 'unsigned'"unsigned""unsigned""unsigned""unsigned"

UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Legt fest, ob die Orientierung der Dreiecke Einfluss auf das resultierende Vorzeichen des darunter liegenden Volumens haben soll.

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

VolumeVolumeVolumeVolumevolume (output_control)  number(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Absolutbetrag des berechneten Volumens.

Parameteranzahl: Volume == ObjectModel3D

Beispiel (HDevelop)

gen_box_object_model_3d ([0,0,0,0,0,0,0],3,2,1, ObjectModel3D)
convex_hull_object_model_3d (ObjectModel3D, ObjectModel3DConvexHull)
volume_object_model_3d_relative_to_plane (ObjectModel3DConvexHull,\
                                          [0,0,0,0,0,0,0], 'signed',\
                                          'true', Volume)

Ergebnis

volume_object_model_3d_relative_to_planevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane 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_3dReadObjectModel3dReadObjectModel3dReadObjectModel3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3d, select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3dSelectPointsObjectModel3d

Nachfolger

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dProjectObjectModel3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzObjectModel3dToXyz

Siehe auch

area_object_model_3darea_object_model_3dAreaObjectModel3dAreaObjectModel3dAreaObjectModel3d

Modul

3D Metrology