/* select triangular face click get props button done created by M.Haasnoot */ global proc TFP( ) { if ( (`window -exists tfpWindow`) == true ) deleteUI tfpWindow; window -rtf on -title "triangular_face_properties" tfpWindow; columnLayout -columnAttach "right" 2 -rowSpacing 10 -columnWidth 200; button -l "Get Properties" -c "faceprops" ; floatFieldGrp -l "distance vtx1_2" -v1 0 -pre 2 dvtx12; floatFieldGrp -l "distance vtx1_3" -v1 0 -pre 2 dvtx13; floatFieldGrp -l "distance vtx2_3" -v1 0 -pre 2 dvtx23; floatFieldGrp -l "angle 12_13" -v1 0 -pre 2 avtx123; floatFieldGrp -l "angle 21_23" -v1 0 -pre 2 avtx213; floatFieldGrp -l "angle 31_32" -v1 0 -pre 2 avtx312; floatFieldGrp -l "area" -v1 0 -pre 2 areaface; floatFieldGrp -l "perimeter" -v1 0 -pre 2 periface; showWindow tfpWindow; } global proc faceprops(){ $List = `polyListComponentConversion -tv`; $List= `ls -fl $List`; float $vtx1[] = `pointPosition -w $List[0]`; float $vtx2[] = `pointPosition -w $List[1]`; float $vtx3[] = `pointPosition -w $List[2]`; float $sqr[]; $sqr12[0] = `pow ($vtx1[0] - $vtx2[0]) 2`; $sqr12[1] = `pow ($vtx1[1] - $vtx2[1]) 2`; $sqr12[2] = `pow ($vtx1[2] - $vtx2[2]) 2`; float $sqr[]; $sqr13[0] = `pow ($vtx1[0] - $vtx3[0]) 2`; $sqr13[1] = `pow ($vtx1[1] - $vtx3[1]) 2`; $sqr13[2] = `pow ($vtx1[2] - $vtx3[2]) 2`; float $sqr[]; $sqr23[0] = `pow ($vtx2[0] - $vtx3[0]) 2`; $sqr23[1] = `pow ($vtx2[1] - $vtx3[1]) 2`; $sqr23[2] = `pow ($vtx2[2] - $vtx3[2]) 2`; float $out12 = `sqrt ($sqr12[0]+$sqr12[1]+$sqr12[2])`; float $out13 = `sqrt ($sqr13[0]+$sqr13[1]+$sqr13[2])`; float $out23 = `sqrt ($sqr23[0]+$sqr23[1]+$sqr23[2])`; print ("distance vtx1-2" + "\n"); print ($out12+ "\n\n"); print ("distance vtx1-3" + "\n"); print ($out13+ "\n\n"); print ("distance vtx2-3" + "\n"); print ($out23+ "\n\n"); float $ang123; float $ang213; float $ang312; $vec12=<<($vtx2[0] - $vtx1[0]),($vtx2[1] - $vtx1[1]),($vtx2[2] - $vtx1[2])>>; $vec13=<<($vtx3[0] - $vtx1[0]),($vtx3[1] - $vtx1[1]),($vtx3[2] - $vtx1[2])>>; $vec21=<<($vtx1[0] - $vtx2[0]),($vtx1[1] - $vtx2[1]),($vtx1[2] - $vtx2[2])>>; $vec23=<<($vtx3[0] - $vtx2[0]),($vtx3[1] - $vtx2[1]),($vtx3[2] - $vtx2[2])>>; $vec31=<<($vtx1[0] - $vtx3[0]),($vtx1[1] - $vtx3[1]),($vtx1[2] - $vtx3[2])>>; $vec32=<<($vtx2[0] - $vtx3[0]),($vtx2[1] - $vtx3[1]),($vtx2[2] - $vtx3[2])>>; $ang123 = rad_to_deg(`angle $vec12 $vec13`); $ang213 = rad_to_deg(`angle $vec21 $vec23`); $ang312 = rad_to_deg(`angle $vec31 $vec32`); print ("angle 1-2 1-3" + "\n"); print ($ang123+ "\n\n"); print ("angle 2-1 2-3" + "\n"); print ($ang213+ "\n\n"); print ("angle 3-1 3-2" + "\n"); print ($ang312+ "\n\n"); print ("controle: " + ($ang123 + $ang213 + $ang312) +"\n"); float $area; $area = (0.5 * $out12 * $out13 * sin(deg_to_rad($ang123))); $peri = ($out12+$out13+$out23); print ("area: " + $area); floatFieldGrp -e -v1 $out12 -pre 8 dvtx12; floatFieldGrp -e -v1 $out13 -pre 8 dvtx13; floatFieldGrp -e -v1 $out23 -pre 8 dvtx23; floatFieldGrp -e -v1 $ang123 -pre 8 avtx123; floatFieldGrp -e -v1 $ang213 -pre 8 avtx213; floatFieldGrp -e -v1 $ang312 -pre 8 avtx312; floatFieldGrp -e -v1 $area -pre 8 areaface; floatFieldGrp -e -v1 $peri -pre 8 periface; };