jw_cad 外部変形 - (610) コマンドプロンプトで2重線を引く(2sen) -

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

 

コマンドプロンプトで2重線を引く(2sen)

/* コマンドプロンプトで2重線を引く(2sen)
@cls & echo off
set w=%1
for /f "tokens=1*" %%i in (jwc_temp.txt) do (
  if %%i == hp1- set p1=%%j
  if %%i == hp2  set p2=%%j
)
cscript //nologo //e:jscript %0 %w% %p1% %p2% > 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
*/

with (WScript) {
  with (Math) {
    F = arguments
    w1 = F(0) * 1
    x1 = F(1) * 1
    y1 = F(2) * 1
    x2 = F(3) * 1
    y2 = F(4) * 1
    w = "200 200 400 120 150 180 220 250 300 350".split(/\s+/)[w1] * 1
    d = atan2(y2 - y1, x2 - x1)
    yw = w / 2 * cos(d)
    xw =-w / 2 * sin(d)
    mode = 1 /* 1=丸のキャップを付ける 0=付けない */
    p = d * 180 / PI + 90
    r = w / 2
    echo( [x1 + xw, y1 + yw, x2 + xw, y2 + yw].join(" ") )
    if (w != 0) {
      echo( [x1 - xw, y1 - yw, x2 - xw, y2 - yw].join(" ") )
      if (mode == 1) {
        echo( ["ci", x1, y1, r, p, p + 180, 1, 0].join(" ") )
        echo( ["ci", x2, y2, r, p - 180, p, 1, 0].join(" ") )
      }
    }
  }
}

 

 

コマンドプロンプトで実数や数学関数を利用するテクニックです。

外部変形のバッチファイルの構成は以下のとおりです。
/* タイトル
@cls & echo off
コマンドによるスクリプト
goto:eof
*/
jscriptによるスクリプト
=>コマンドによるスクリプトjscript のコメント文に記述しています。