Ignore:
Timestamp:
Feb 2, 2018 8:26:07 AM (5 years ago)
Author:
srkline
Message:

additions to VCALC procedures to correctly account for panel motion (individual, not symmetric). Updated the plotting routines to all (mostly) pass through the same subroutines so that additional averaging modes will be easier to add.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_FrontView_Deg.ipf

    r1062 r1081  
    3636 
    3737// get the values from the panel 
    38         Variable F_LR_sep,F_TB_sep, F_SDD, F_offset 
    39         Variable M_LR_sep,M_TB_sep, M_SDD, M_offset 
     38        Variable F_L_sep,F_R_sep,F_T_sep, F_B_sep,F_SDD 
     39        Variable M_L_sep,M_R_sep,M_T_sep, M_B_sep, M_SDD 
    4040        Variable B_SDD, B_offset 
    4141        Variable axisRange 
     
    4949        //front 
    5050        ControlInfo/W=VCALC VCALCCtrl_2a 
    51         F_LR_sep = V_Value 
     51        F_L_sep = V_Value 
     52        ControlInfo/W=VCALC VCALCCtrl_2aa 
     53        F_R_sep = V_Value 
    5254        ControlInfo/W=VCALC VCALCCtrl_2b 
    53         F_TB_sep = V_Value 
    54         ControlInfo/W=VCALC VCALCCtrl_2c 
    55         F_offset = V_Value 
     55        F_T_sep = V_Value 
     56        ControlInfo/W=VCALC VCALCCtrl_2bb 
     57        F_B_sep = V_Value 
     58 
    5659        ControlInfo/W=VCALC VCALCCtrl_2d 
    5760        F_SDD = V_Value 
     
    5962        //middle 
    6063        ControlInfo/W=VCALC VCALCCtrl_3a 
    61         M_LR_sep = V_Value 
     64        M_L_sep = V_Value 
     65        ControlInfo/W=VCALC VCALCCtrl_3aa 
     66        M_R_sep = V_Value 
    6267        ControlInfo/W=VCALC VCALCCtrl_3b 
    63         M_TB_sep = V_Value 
    64         ControlInfo/W=VCALC VCALCCtrl_3c 
    65         M_offset = V_Value 
     68        M_T_sep = V_Value 
     69        ControlInfo/W=VCALC VCALCCtrl_3bb 
     70        M_B_sep = V_Value 
     71         
    6672        ControlInfo/W=VCALC VCALCCtrl_3d 
    6773        M_SDD = V_Value 
     
    115121        tmp_x1 = -atan(M_TB_w/2/(M_SDD+middle_SDDsetback))*(180/pi)             // x symmetric y is not 
    116122        tmp_x2 = -tmp_x1 
    117         tmp_y1 = atan(M_TB_sep/2/(M_SDD+middle_SDDsetback))*(180/pi) 
    118         tmp_y2 = atan((M_TB_sep/2+M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
     123        tmp_y1 = atan(M_T_sep/(M_SDD+middle_SDDsetback))*(180/pi) 
     124        tmp_y2 = atan((M_T_sep+M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
    119125         
    120126//      Print tmp_x1,tmp_x2,tmp_y1,tmp_y2 
     
    124130                 
    125131// BOTTOM (x unchanged, negate and swap y1,y2) 
    126         tmp_y1 = -atan((M_TB_sep/2+M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
    127         tmp_y2 = -atan(M_TB_sep/2/(M_SDD+middle_SDDsetback))*(180/pi) 
     132        tmp_y1 = atan((M_B_sep-M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
     133        tmp_y2 = atan(M_B_sep/(M_SDD+middle_SDDsetback))*(180/pi) 
    128134        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (1,16019,65535) 
    129135        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1           
    130136         
    131137// LEFT 
    132         tmp_x1 = -atan((M_LR_w+M_LR_sep/2)/(M_SDD))*(180/pi)            // y symmetric x is not 
    133         tmp_x2 = -atan((M_LR_sep/2)/(M_SDD))*(180/pi) 
     138        tmp_x1 = atan((M_L_sep-M_LR_w)/(M_SDD))*(180/pi)                // y symmetric x is not 
     139        tmp_x2 = atan((M_L_sep)/(M_SDD))*(180/pi) 
    134140        tmp_y1 = atan(M_LR_h/2/(M_SDD))*(180/pi) 
    135141        tmp_y2 = -tmp_y1 
     
    137143        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1                   
    138144// RIGHT (x changes, y the same) 
    139         tmp_x1 = atan((M_LR_sep/2)/(M_SDD))*(180/pi)            // y symmetric x is not 
    140         tmp_x2 = atan((M_LR_w+M_LR_sep/2)/(M_SDD))*(180/pi) 
     145        tmp_x1 = atan((M_R_sep)/(M_SDD))*(180/pi)               // y symmetric x is not 
     146        tmp_x2 = atan((M_LR_w+M_R_sep)/(M_SDD))*(180/pi) 
    141147        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (65535,0,0) 
    142148        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1   
     
    150156        tmp_x1 = -atan(F_TB_w/2/(F_SDD+front_SDDsetback))*(180/pi)              // x symmetric y is not 
    151157        tmp_x2 = -tmp_x1 
    152         tmp_y1 = atan(F_TB_sep/2/(F_SDD+front_SDDsetback))*(180/pi) 
    153         tmp_y2 = atan((F_TB_sep/2+F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
     158        tmp_y1 = atan(F_T_sep/(F_SDD+front_SDDsetback))*(180/pi) 
     159        tmp_y2 = atan((F_T_sep+F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
    154160         
    155161//      Print tmp_x1,tmp_x2,tmp_y1,tmp_y2 
     
    159165                 
    160166// BOTTOM (x unchanged, negate and swap y1,y2) 
    161         tmp_y1 = -atan((F_TB_sep/2+F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
    162         tmp_y2 = -atan(F_TB_sep/2/(F_SDD+front_SDDsetback))*(180/pi) 
     167        tmp_y1 = atan((F_B_sep-F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
     168        tmp_y2 = atan(F_B_sep/(F_SDD+front_SDDsetback))*(180/pi) 
    163169        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (1,52428,26586) 
    164170        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1           
    165171         
    166172// LEFT 
    167         tmp_x1 = -atan((F_LR_w+F_LR_sep/2)/(F_SDD))*(180/pi)            // y symmetric x is not 
    168         tmp_x2 = -atan((F_LR_sep/2)/(F_SDD))*(180/pi) 
     173        tmp_x1 = atan((F_L_sep-F_LR_w)/(F_SDD))*(180/pi)                // y symmetric x is not 
     174        tmp_x2 = atan((F_L_sep)/(F_SDD))*(180/pi) 
    169175        tmp_y1 = atan(F_LR_h/2/(F_SDD))*(180/pi) 
    170176        tmp_y2 = -tmp_y1 
     
    172178        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1                   
    173179// RIGHT (x changes, y the same) 
    174         tmp_x1 = atan((F_LR_sep/2)/(F_SDD))*(180/pi)            // y symmetric x is not 
    175         tmp_x2 = atan((F_LR_w+F_LR_sep/2)/(F_SDD))*(180/pi) 
     180        tmp_x1 = atan((F_R_sep)/(F_SDD))*(180/pi)               // y symmetric x is not 
     181        tmp_x2 = atan((F_LR_w+F_R_sep)/(F_SDD))*(180/pi) 
    176182        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (39321,26208,1) 
    177183        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1   
Note: See TracChangeset for help on using the changeset viewer.