This example demonstrates how segment properties can be specified using pipeline commands. For a variety of legacy reasons, Visual3D does not allow users to specify the segment depth as an expression which means that the command Set_Model_Metric cannot be used for segment depth.
NOTE: As of Visual3D v5.01.20, user's are able to enter equations into the depth measurements for the Pelvis and Thorax.
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= ;
There are two examples: one for the pelvis segment and one for the thorax.
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= ;
This example is for the Thorax and assumes that the Thorax segment has been 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= ;
Go back to the Segment Overview page for more information about segments in Visual3D.