====== Segment Properties Example ======
This example specifies segment properties from pipeline commands. For a variety of legacy reasons, Visual3D does not allow users to specify the segment depth as an expression. This limitation means that the command [[Visual3D:Documentation:Pipeline:Model_Commands:Modeling_Commands#Set_Model_Metric|Set_Model_Metric]] cannot be used for segment depth.
Prompted by a customer that wanted to use a pipeline command to modify segment depth we documented this in several pipeline examples.
**NOTE:** As of Visual3Dv5.01.20, user's are able to enter equations into the depth measurements for the Pelvis and Thorax.
\\
==== Specifying segment properties from a value ====
This example is for the Pelvis and assumes that the Pelvis segment has been constructed.
! First set a pipeline parameter for the segment depth
! This value could be obtained by prompting the user or in this case is set to 0.12
Set_Pipeline_Parameter
/PARAMETER_NAME=DEPTH
/PARAMETER_VALUE=0.12
;
! Explicitly set the mass and inertial properties for an elliptical cylinder
! This example is for the Pelvis segment
Set_Segment_Properties
/CALIBRATION_FILE=
/SEGMENT_NAME=RPV
/MASS=0.142*Mass
/CG_FROM_PROX_AXIAL=0.5*RPV_Seg_Length
/CG_FROM_PROX_ML=0
/CG_FROM_PROX_AP=0
/INERTIA_XX=0.142*Mass*(3*&::DEPTH&^2+RPV_Seg_Length^2)/12
/INERTIA_YY=0.142*Mass*(3*RPV_Distal_Radius^2+RPV_Seg_Length^2)/12
/INERTIA_ZZ=0.142*Mass*(&::DEPTH&^2+RPV_Distal_radius^2)/4
! /AP_DIRECTION=
! /AXIAL_DIRECTION=
! /MODEL_FILE=
! /MATERIAL_FILE=
;
==== Specifying segment properties from a metric ====
There are two examples: one for the pelvis segment and one for the Thorax.
=== Pelvis ===
Create a metric to compute the depth as the distance between two markers/landmarks. This example is for the Pelvis and assumes that the Pelvis segment has ben constructed. In addition, the landmark **MID_ASIS** has been created.
! Set Global active
Select_Active_File
/FILE_NAME=GLOBAL
! /QUERY=
;
Metric_Explicit
/RESULT_METRIC_NAME=PELVIC_DEPTH
/RESULT_METRIC_FOLDER=PROCESSED
/METRIC_VALUE=DISTANCE(MODEL::TARGET::SACR,MODEL::LANDMARK::MID_ASIS)
;
! First set a pipeline parameter for the segment depth
Set_Pipeline_Parameter
/PARAMETER_NAME=DEPTH
/PARAMETER_VALUE=GLOBAL::METRIC::PROCESSED::PELVIC_DEPTH
;
! Explicitly set the mass and inertial properties for an elliptical cylinder
! This example is for the Pelvis segment
Set_Segment_Properties
/CALIBRATION_FILE=
/SEGMENT_NAME=RPV
/MASS=0.142*Mass
/CG_FROM_PROX_AXIAL=0.5*RPV_Seg_Length
/CG_FROM_PROX_ML=0
/CG_FROM_PROX_AP=0
/INERTIA_XX=0.142*Mass*(3*&::DEPTH&^2+RPV_Seg_Length^2)/12
/INERTIA_YY=0.142*Mass*(3*RPV_Distal_Radius^2+RPV_Seg_Length^2)/12
/INERTIA_ZZ=0.142*Mass*(&::DEPTH&^2+RPV_Distal_radius^2)/4
! /AP_DIRECTION=
! /AXIAL_DIRECTION=
! /MODEL_FILE=
! /MATERIAL_FILE=
;
=== Thorax ===
This example is for the Thorax and assumes that the Thorax segment has ben constructed. Since Visual3D does not allow users to specify the segment depth as an expression, a user could construct the Thorax segment with a "dummy" depth number (0.12) and use the pipeline below to calculate a depth value based on targets/landmarks on the segment.
! Set Thorax Depth
Select_Active_File
/FILE_NAME=GLOBAL
! /QUERY=
;
! The cylindrical depth is equal to one-half the distance from anterior to posterior.
Metric_Explicit
/RESULT_METRIC_NAME=THORAX_DEPTH
/RESULT_METRIC_FOLDER=PROCESSED
/METRIC_VALUE=DISTANCE(MODEL::TARGET::T10,MODEL::LANDMARK::STRN)/2
;
! First set a pipeline parameter for the segment depth
Set_Pipeline_Parameter
/PARAMETER_NAME=DEPTH
/PARAMETER_VALUE=GLOBAL::METRIC::PROCESSED::THORAX_DEPTH
;
! Explicitly set the mass and inertial properties for an elliptical cylinder for the Thorax segment
Set_Segment_Properties
/CALIBRATION_FILE=
/SEGMENT_NAME=RTA
/MASS=0.355*Mass
/CG_FROM_PROX_AXIAL=0.5*RTA_Seg_Length
/CG_FROM_PROX_ML=0
/CG_FROM_PROX_AP=0
/INERTIA_XX=0.355*Mass*(3*&::DEPTH&^2+RTA_Seg_Length^2)/12
/INERTIA_YY=0.355*Mass*(3*RTA_Distal_Radius^2+RTA_Seg_Length^2)/12
/INERTIA_ZZ=0.355*Mass*(&::DEPTH&^2+RTA_Distal_radius^2)/4
! /AP_DIRECTION=
! /AXIAL_DIRECTION=
! /MODEL_FILE=
! /MATERIAL_FILE=
;