jw_cad 外部変形 - (番外) jw.rbの連線データ -

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

 

外部変形の連線データを考えます。

  ◎連線データ
rl (%lg %lg %lg %lg … ) %lg %d    ( "rl" (x1 y1 x2 y2 … ) r mode )
      rl : 始点と終点が同じなら閉鎖形
cl (%lg %lg %lg %lg … ) %lg %d    ( "cl" (x1 y1 x2 y2 … ) r mode )
      cl : 閉鎖形

     (x1 y1 x2 y2 … ) : 座標のセット
      r  : 面取寸法(アールの半径 実数)
      => r > 0 正値で丸面
      => r < 0 負値で角面
      mode : 1, nil => r > 0 で丸面、r = 0 でコーナー、r < 0 で角面(面寸法)
             2, 0   => r > 0 で丸面、r = 0 でコーナー、r < 0 で角面(辺寸法)

  ・連線データは指示番号や指標の利用ができません

  ・連線データは配列、文字列が利用できます
    ④配列
    ( "rl" (x1 y1 x2 y2 … ) r mode )
    [["rl", 1, 2, 7, 8, 1, 8], r = 1]
    ( "cl" (x1 y1 x2 y2 … ) r mode )
    [["cl", 1, 2, 7, 8, 1, 8], r =-1, mode = 0]

    ⑤文字列
    ( "rl" (x1 y1 x2 y2 … ) r mode )
    ["rl 1, 2, 7, 8, 1, 8", r = 1]
    ( "cl" (x1 y1 x2 y2 … ) r mode )
    ["cl 1, 2, 7, 8, 1, 8", r =-1, mode = 0]

  ・配列、文字列の要素にキーワードが利用できます
    ⑥ハッシュ
    ( (x1 y1 x2 y2 … ) r mode )
    rl {x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:1}
    rl {:x1=>1, :y1=>2, :x2=>7, :y2=>8, :x3=>1, :y3=>8, :r=>1}
    ( (x1 y1 x2 y2 … ) r mode )
    cl {x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:-1, mode:0}
    cl {:x1=>1, :y1=>2, :x2=>7, :y2=>8, :x3=>1, :y3=>8, :r=>-1, :mode=>0}

    ⑦キーワード引数
    ( (x1 y1 x2 y2 … ) r mode )
    rl x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:1
    rl :x1=>1, :y1=>2, :x2=>7, :y2=>8, :x3=>1, :y3=>8, :r=>1
    cl x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:-1, mode:0
    cl :x1=>1, :y1=>2, :x2=>7, :y2=>8, :x3=>1, :y3=>8, :r=>-1, :mode=>0

    ⑧キーワード配列
    ( (x1 y1 x2 y2 … ) r mode )
    rl [x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:1]
    rl [:x1=>1, :y1=>2, :x2=>7, :y2=>8, :x3=>1, :y3=>8, :r=>1]
    cl [x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:-1, mode:0]
    cl [:x1=>1, :y1=>2, :x2=>7, :y2=>8, :x3=>1, :y3=>8, :r=>-1, :mode=>0]

    ⑨キーワード文字列
    ( (x1 y1 x2 y2 … ) r mode )
    rl "x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:1"
    rl "x1=1, y1=2, x2=7, y2=8, x3=1, y3=8, r=1"
    cl "x1:1, y1:2, x2:7, y2:8, x3:1, y3:8, r:-1, mode:0"
    cl "x1=1, y1=2, x2=7, y2=8, x3=1, y3=8, r=-1, mode=0"

 

使用例

:jw.rbの連線データ
@echo off
ruby -x %0
goto:eof

REM #jww
REM #1- 始点を指示して下さい
REM #99# 終点を指示して下さい
REM #e

#!ruby -Ks -rjw
jww
plot rl hp(1..-1), r:10
#plot ["rl", hp(1..-1)], r:10
__END__

 

連線は面取りが考慮できるため、データは複雑になります。