====== 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= ;