*get,prkey_,active,0,prkey^M
/nopr^M
irad__=arg1^M
ln1__=arg2^M
ln2__=arg3^M
ns_fillet_test,irad__,ln1__,ln2__,1^M
phi_=ang_lns^M
long_=lng_long^M
shrt_=lng_shrt^M
*if,long_,eq,shrt_,then^M
*if,phi_,eq,90,then^M
cond_=11^M
*elseif,phi_,gt,90,then^M
cond_=12^M
*elseif,phi_,lt,90,then^M
cond_=13^M
*endif^M
*elseif,long_,gt,shrt_,then^M
*if,phi_,eq,90,then^M
cond_=21^M
*elseif,phi_,gt,90,then^M
cond_=22^M
*elseif,phi_,lt,90,then^M
cond_=23^M
*endif^M
*endif^M
d_=sqrt((long_**2)+(shrt_**2)-(2*long_*shrt_*cos(phi_*rconv)))^M
phi1_=(asin((long_*sin(phi_*rconv))/d_))*dconv^M
phi2_=(asin((shrt_*sin(phi_*rconv))/d_))*dconv^M
thetachk=90-phi2_^M
dchk_=sqrt((irad__**2)+(d_**2)-(2*irad__*d_*cos(thetachk*rconv)))^M
*if,cond_,eq,11,then^M
delta_=2*(asin((long_*sin((phi_/2)*rconv))/irad__))*dconv^M
theta_=180-(phi_/2)-(delta_/2)^M
rpos_=sqrt((long_**2)+(irad__**2)-(2*long_*irad__*cos(theta_*rconv)))^M
create_cs,1,,1,jkp,kp_long,kp_shrt^M
create_cs,0,,1,rpos_,phi_/2,0^M
l,kp_shrt,kp_long^M
*elseif,cond_,eq,12,then^M
delta_=2*(asin((long_*sin((phi_/2)*rconv))/irad__))*dconv^M
theta_=180-(phi_/2)-(delta_/2)^M
rpos_=sqrt((long_**2)+(irad__**2)-(2*long_*irad__*cos(theta_*rconv)))^M
create_cs,1,,1,jkp,kp_long,kp_shrt^M
create_cs,0,,1,rpos_,phi_/2,0^M
l,kp_shrt,kp_long^M
*elseif,cond_,eq,13,then^M
delta_=2*(asin((long_*sin((phi_/2)*rconv))/irad__))*dconv^M
theta_=180-(phi_/2)-(delta_/2)^M
rpos_=sqrt((long_**2)+(irad__**2)-(2*long_*irad__*cos(theta_*rconv)))^M
create_cs,1,,1,jkp,kp_long,kp_shrt^M
create_cs,0,,1,rpos_,phi_/2,0^M
l,kp_shrt,kp_long^M
*elseif,cond_,eq,21,then^M
*if,dchk_,le,irad__,then^M
theta1_=(acos(d_/(2*irad__)))*dconv^M
theta2_=theta1_^M
delta_=(asin((d_*sin(theta2_*rconv))/irad__))*dconv^M
theta_=theta1_+phi2_^M
alpha_=theta2_+phi1_^M
rpos_=sqrt((long_**2)+(irad__**2)-(2*long_*irad__*cos(theta_*rconv)))^M
beta_=(asin((irad__*sin(theta_*rconv))/rpos_))*dconv^M
create_cs,1,,1,jkp,kp_shrt,kp_long^M
create_cs,0,,1,rpos_,phi_-beta_,0^M
l,kp_shrt,kp_long^M
*elseif,dchk_,gt,irad__,then^M
dl__=shrt_*sin((180-phi_)*rconv)^M
delta_=(acos((irad__-dl__)/irad__))*dconv^M
d_=2*irad__*sin((delta_/2)*rconv)^M
phi2_=(asin((shrt_*sin(phi_*rconv))/d_))*dconv^M
phi1_p_=180-phi2_-phi_^M
long_p_=(d_*(sin(phi1_p_*rconv)))/(sin(phi_*rconv))^M
kl,dir_lng*ln_long,long_p_/long_^M
get_max_entity^M
create_cs,1,,0,km,jkp,kp_shrt^M
create_cs,0,,1,0,irad__,0^M
l,km,kp_shrt^M
*endif^M
*elseif,cond_,eq,22,then^M
*if,dchk_,le,irad__,then^M
theta1_=(acos(d_/(2*irad__)))*dconv^M
theta2_=theta1_^M
delta_=(asin((d_*sin(theta2_*rconv))/irad__))*dconv^M
theta_=theta1_+phi2_^M
alpha_=theta2_+phi1_^M
rpos_=sqrt((long_**2)+(irad__**2)-(2*long_*irad__*cos(theta_*rconv)))^M
beta_=(asin((irad__*sin(theta_*rconv))/rpos_))*dconv^M
create_cs,1,,1,jkp,kp_shrt,kp_long^M
create_cs,0,,1,rpos_,phi_-beta_,0^M
l,kp_shrt,kp_long^M
*elseif,dchk_,gt,irad__,then^M
dl__=shrt_*sin((180-phi_)*rconv)^M
delta_=(acos((irad__-dl__)/irad__))*dconv^M
d_=2*irad__*sin((delta_/2)*rconv)^M
phi2_=(asin((shrt_*sin(phi_*rconv))/d_))*dconv^M
phi1_p_=180-phi2_-phi_^M
long_p_=(d_*(sin(phi1_p_*rconv)))/(sin(phi_*rconv))^M
kl,dir_lng*ln_long,long_p_/long_^M
get_max_entity^M
create_cs,1,,0,km,jkp,kp_shrt^M
create_cs,0,,1,0,irad__,0^M
l,km,kp_shrt^M
*endif^M
*elseif,cond_,eq,23,then^M
*if,dchk_,le,irad__,then^M
theta1_=(acos(d_/(2*irad__)))*dconv^M
theta2_=theta1_^M
delta_=(asin((d_*sin(theta2_*rconv))/irad__))*dconv^M
theta_=theta1_+phi2_^M
alpha_=theta2_+phi1_^M
rpos_=sqrt((long_**2)+(irad__**2)-(2*long_*irad__*cos(theta_*rconv)))^M
beta_=(asin((irad__*sin(theta_*rconv))/rpos_))*dconv^M
create_cs,1,,1,jkp,kp_shrt,kp_long^M
create_cs,0,,1,rpos_,phi_-beta_,0^M
l,kp_shrt,kp_long^M
*elseif,dchk_,gt,irad__,then^M
dl__=shrt_*sin((180-phi_)*rconv)^M
delta_=(acos((irad__-dl__)/irad__))*dconv^M
d_=2*irad__*sin((delta_/2)*rconv)^M
phi2_=(asin((shrt_*sin(phi_*rconv))/d_))*dconv^M
phi1_p_=180-phi2_-phi_^M
long_p_=(d_*(sin(phi1_p_*rconv)))/(sin(phi_*rconv))^M
kl,dir_lng*ln_long,long_p_/long_^M
get_max_entity^M
create_cs,1,,0,km,jkp,kp_shrt^M
create_cs,0,,1,0,irad__,0^M
l,km,kp_shrt^M
*endif^M
*endif^M
init_entity_num^M
ksel,s,kp,,jkp^M
lslk,s,0^M
lsel,a,line,,lm^M
lglue,all^M
ksel,s,kp,,jkp^M
lslk,s,0^M
ldele,all,,,1^M
init_entity_num^M
lplot^M
*set,irad__,^M
*set,ln1__,^M
*set,ln2__,^M
*set,cond_,^M
*set,phi_,^M
*set,long_,^M
*set,shrt_,^M
*set,ang_lns,^M
*set,lng_long,^M
*set,lng_shrt,^M
*set,jkp,^M
*set,ln_long,^M
*set,ln_shrt,^M
*set,kp_long,^M
*set,kp_shrt,^M
*set,kplong_1,^M
*set,kplong_2,^M
*set,kpshrt_1,^M
*set,kpshrt_2,^M
*set,d_,^M
*set,phi1_,^M
*set,phi2_,^M
*set,thetachk,^M
*set,dchk_,^M
*set,dl__,^M
*set,dir_lng,^M
*set,dir_sht,^M
*set,beta_,^M
*set,alpha_,^M
*set,theta_,^M
*set,theta1_,^M
*set,theta2_,^M
*set,delta_,^M
*if,prkey_,eq,1,then^M
/go^M
*endif^M