volume_object_model_3d_relative_to_planeT_volume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_plane (Operator)

Name

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

def volume_object_model_3d_relative_to_plane(object_model_3d: MaybeSequence[HHandle], plane: Sequence[Union[int, float]], mode: MaybeSequence[str], use_face_orientation: MaybeSequence[str]) -> Sequence[float]

def volume_object_model_3d_relative_to_plane_s(object_model_3d: MaybeSequence[HHandle], plane: Sequence[Union[int, float]], mode: MaybeSequence[str], use_face_orientation: MaybeSequence[str]) -> float

Beschreibung

volume_object_model_3d_relative_to_planevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_plane 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 PlanePlanePlanePlaneplaneplane definiert.

Für das 3D-Objektmodell ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d 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 ModeModeModeModemodemode und UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation 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 UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation eingestellt werden.

Danach werden die Volumen der Prismen abhängig vom Parameter ModeModeModeModemodemode aufsummiert.

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

Einstellen der Parameter:

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

UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation 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 (ModeModeModeModemodemode: 'signed'"signed""signed""signed""signed""signed", UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation: 'true'"true""true""true""true""true") das Volumen eine geschlossenen Objektes berechnet. In diesem Fall wird die Ebene PlanePlanePlanePlaneplaneplane zwar benötigt, hat aber keinen Einfluss auf das berechnete Endergebnis.

Beispiel: (A) ModeModeModeModemodemode: 'signed'"signed""signed""signed""signed""signed", UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation: 'true'"true""true""true""true""true": (B) ModeModeModeModemodemode: 'signed'"signed""signed""signed""signed""signed", UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation: 'false'"false""false""false""false""false": (C) ModeModeModeModemodemode: 'negative'"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

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (input_control)  object_model_3d(-array) HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle eines 3D-Objektmodells.

PlanePlanePlanePlaneplaneplane (input_control)  pose(-array) HPose, HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Pose der Ebene.

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

ModeModeModeModemodemode (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

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

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

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

UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientationuse_face_orientation (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (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" "true"

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

VolumeVolumeVolumeVolumevolumevolume (output_control)  number(-array) HTupleSequence[float]HTupleHtuple (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_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_plane 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_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d, select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3dSelectPointsObjectModel3dselect_points_object_model_3d

Nachfolger

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz

Siehe auch

area_object_model_3darea_object_model_3dAreaObjectModel3dAreaObjectModel3dAreaObjectModel3darea_object_model_3d

Modul

3D Metrology