jw_cad 外部変形 - (番外) jw.rbの寸法図形(5 角度) -

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

 

外部変形の寸法図形(5 角度)データを考えます。

  ◎寸法図形(5 角度)データ
msg :ang (%lg %lg %lg %lg %lg %lg %lg %lg %lg %lg … ) %lg
                                    ( "msg" :ang, (P0, P1, P2, P3, P4. … ), keta )
      P0 : 原点の座標
      P1 : 引出し線の始点の座標
      P2 : 寸法線の位置の座標
      P3 : 寸法線の始点の座標
      P4 : 寸法線の終点の座標
      keta : 寸法値の小数点以下の桁数

  ・寸法図形データは指示番号や指標の利用ができます
    ①選択番号の文字データを取り出す
    msg 1

    ②指標(文字列)で点データを代表する
    1.msg

    ③指標(シンボル)で点データを代表する
    :msg1

  ・寸法図形(5 角度)データは配列、文字列が利用できます
    ④配列
    ( "msg" :ang, (P0, P1, P2, P3, P4. … ), keta )
    ["msg", :ang, [[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], keta]

    ⑤文字列
    ( "msg" :ang, (P0, P1, P2, P3, P4. … ), keta )
    "msg :ang ((#{x0} #{y0})(#{x1} #{y1})(#{x2} #{y2})(#{x3} #{y3})(#{x4} #{y4}) … ) #{keta}"

  ・配列、文字列の要素にキーワードが利用できます
    ⑥ハッシュ
    ( :ang, (P0, P1, P2, P3, P4. … ), keta )
    msg :ang, {P:[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], keta:1}
    msg :ang, {:P=>[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], :keta=>1}

    ⑦キーワード引数
    ( :ang, (P0, P1, P2, P3, P4. … ), keta )
    msg :ang, P:[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], keta:1
    msg :ang, :P=>[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], :keta=>1

    ⑧キーワード配列
    ( :ang, (P0, P1, P2, P3, P4. … ), keta )
    msg :ang, [P:[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], keta:1]
    msg :ang, [:P=>[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], … ], :keta=>1]

    ⑨キーワード文字列
    ( :ang, (P0, P1, P2, P3, P4. … ), keta, d )
    msg :ang, "P:[[#{x0},#{y0}], [#{x1},#{y1}], [#{x2},#{y2}], [#{x3},#{y3}], [#{x4},#{y4}], … ], keta:1"
    msg :ang, "P=[[#{x0},#{y0}], [#{x1},#{y1}], [#{x2},#{y2}], [#{x3},#{y3}], [#{x4},#{y4}], … ], keta=1"

 

使用例

:jw.rbの寸法図形(5 角度)
@echo off
ruby -x %0
goto:eof

REM #jww
REM #1- 原点を指示してください
REM #2- 引出し線の始点を指示してください
REM #3 寸法線の位置を指示して下さい
REM #4- 寸法線の始点を指示して下さい
REM #99# 寸法線の終点を指示して下さい
REM #e

#!ruby -Ks -rjw
jww
plot ["msg", :ang, hp(1..-1), keta:3]
__END__