jw_cad 外部変形 - (730) gawkで2重線を引く(2sen) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

gawkで2重線を引く(2sen)

:gawkで2重線を引く(2sen)
@echo off
set k=%1
for /f %%n in ('gawk "/^#!/ { print NR }" %0') do (
  copy jwc_temp.txt myfiles > nul
  more +%%n %0 | gawk -f - myfiles > jwc_temp.txt
)
goto:eof

REM #jww
REM #1-%d 始点を指示して下さい
REM #2%d 終点を指示して下さい
REM #k 線の幅| 200(L) | 400(R) | 120 | 150 | 180 | 220 | 250 | 300 | 350 |
REM #e

#!ここから more +n %0 の n 行目:最初の行は 0 行
BEGIN { CONVFMT = OFMT = "%.15g" }
/^hp1/ { p1 = $2 FS $3 }
/^hp2/ { p2 = $2 FS $3
  split("200 400 120 150 180 220 250 300 350", A)
  w = A[ENVIRON["k"] * 1]
  $0 = p1 FS p2
  yw = w / 2 * cos(d = atan2($4 - $2, $3 - $1))
  xw =-w / 2 * sin(d)
  print $1 + xw, $2 + yw, $3 + xw, $4 + yw
  if ( w ) {
    print $1 - xw, $2 - yw, $3 - xw, $4 - yw
    p = d * 45 / atan2(1, 1) + 90
    print "ci", $1, $2, w / 2, p, p + 180, 1, 0
    print "ci", $3, $4, w / 2, p - 180, p, 1, 0
  }
}