« 縮尺の書出し2 | トップページ | 破断線の作図(改) »

2007年5月 9日 (水)

破断線の作図

任意の2点を指定して、破断線を作図する外部変形です。
始点と終点を通る線が、水平/垂直に近い場合は、水平/垂直方向に作図します。

07/5/10  wdの設定値を5から2に変更しました。
設定は、終点位置とX軸/Y軸からの距離が ±2(図寸)以内。

右AM9時「線上点・交点」が使用できます。
但し、水平/垂直方向に作図する場合、
指示線は、水平線/垂直線を使用してください。

-----< 破断線.bat >-----

@REM 破断線の作図
@echo off

REM #jww
REM #cd
REM #0 始点を指示してください。(L)/(R)
REM #1 終点を指示してください。(L)/(R)
REM #hr
REM #e

jgawk -f brk_line.awk jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
--------------

-----< brk_line.awk >-----

#破断線の作図
#定数の設定
BEGIN{
  pi=atan2(0,-1);
  ang=15*pi/180;sc=1;w=1.1;h=2;
  x0=0;y0=0;wd=2
  lt="lt1" ;lc="lc1"
}
#終点座標の読取り
  /^hp1/{x1=$2;y1=$3}
#縮尺
  /^hs/{for(i=0;i<=9;i++) S[i]=$(i+2);
   S["a"]=$12;S["b"]=$13;S["c"]=$14;
   S["d"]=$15;S["e"]=$16;S["f"]=$17
}
  /^lg/{lg=substr($1,3);sc=S[lg]
}
#破断記号の座標計算
{
  if(x1>=-wd*sc && x1<=wd*sc){an=pi/2;x1=0;x2=0;x5=0;
  y2=y1/2-sc*w*sin(an);y5=y1/2+sc*w*sin(an)
}
  {an=atan2(y1,x1);
  x2=x1/2-sc*w*cos(an);
  x5=x1/2+sc*w*cos(an);
  y2=y1/2-sc*w*sin(an);y5=y1/2+sc*w*sin(an)
}
  if(y1>=-wd*sc && y1<=wd*sc){an=0;y1=0;y2=0;y5=0;
  x2=x1/2-sc*w*cos(an);x5=x1/2+sc*w*cos(an)}
}
{
  x3=x1/2-sc*h*cos(pi/2-an-ang);y3=y1/2+sc*h*sin(pi/2-an-ang);
  x4=x1/2+sc*h*cos(pi/2-an-ang);y4=y1/2-sc*h*sin(pi/2-an-ang);
}
#各座標の出力
END{
  print lt;print lc;
  printf ("%.15g %.15g %.15g %.15g\n",x0,y0,x2,y2);
  printf ("%.15g %.15g %.15g %.15g\n",x2,y2,x3,y3);
  printf ("%.15g %.15g %.15g %.15g\n",x3,y3,x4,y4);
  printf ("%.15g %.15g %.15g %.15g\n",x4,y4,x5,y5);
  printf ("%.15g %.15g %.15g %.15g\n",x5,y5,x1,y1);
}
#----- 注記 -----
#1.線色は、"lc1"で線色1に設定しています。#線色2にする場合は"lc2"に変更。
#2.wdを変更すると、水平/垂直方向に作図する指示点範囲が変わります。

|

« 縮尺の書出し2 | トップページ | 破断線の作図(改) »

コメント

wdの設定が±5で破断線の長さが短い場合、
任意角度で作図できる範囲が狭いので設定値を変更しました。

角度で範囲設定できる様に、スプリクトの変更が必要ですね。m(__)m

投稿: somem | 2007年5月10日 (木) 23時37分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/94529/15014266

この記事へのトラックバック一覧です: 破断線の作図:

« 縮尺の書出し2 | トップページ | 破断線の作図(改) »