○ JW_CAD 外部変形のラフスケッチ( 版 )

| 前へ | 使い方 | ダウンロード | 表紙へ |いろはにruby外部変形|

  • ♪ Lite & Seen Lite は みんなの道具。
     JW_CAD では プログラムによる作図機能を外部変形と呼んでいます。

     AUTO-CAD では AutoLISP を利用して作図する機能に相当します。

     ただし、JW_CAD では 線・円・点・文字 および 寸法などの限られたコマンドを「マクロ風」に利用できるだけで、線の交点 や 角度などを JW_CAD は(外部変形では)計算してくれません。
     外部変形は「マクロ」と呼べるものでは決してありません。線の交点 や 角度は、簡単に計算できるため、提供していないのだと思います。
     マクロ が 写真 なら 外部変形 は 絵 のようなものです。

    余談ですが
     外部変形を利用して JW_CADを awk や ruby のキャンバスに見立てることも可能です。ボタンやテキストなどの GUI部品は用意されていませんが、JW_CAD で 高品質な印刷ができることは魅力です。
     awk や ruby だけでなく WSH や HTA から gnuplot や maxima まで バッチファイル(*.bat)には さまざまなスクリプトが書けます。
     ひっくり返して見れば 外部変形は シェルスクリプトで技術計算を行う手法であることもわかってきます。シェルスクリプトに高級言語が使える訳ですから よく考えれば 本当に便利な技術です。

     ここでは、JW_CAD 外部変形機能について 独自の側面 から 観察して ラフスケッチを描いてみようと思います。

     時間があれば いろはに ruby 外部変形 にお立ち寄りください。


     こんにちは JW_CAD 外部変形

     JW_CAD 外部変形は 32 ビット バージョンのコマンド プロンプト (Cmd.exe) で実行されます。MS-DOS(エミュレーションモード)です。最近では 64 ビット バージョンのコマンド プロンプト (Cmd.exe) もあるようです。

     JW_CAD 外部変形を実行するための バッチファイルを簡単に説明します。

     「こんにちは」を MS-DOS プロンプト画面に表示させるなら
    echo こんにちは
    
    です。
     これをバッチファイル( 000.bat )にすれば
    @REM 000
    @echo off
    echo こんにちは
    pause
    
    となります。
     JW_CAD 外部変形のバッチファイル( 001.bat )は、それに
    @REM 001
    @echo off
    REM #jww
    REM #e
    echo こんにちは
    pause
    
    として REM #jwwREM #e の2行を追加します。
     これで、JW_CAD は、このバッチファイルを 外部変形だと認識します。

     「こんにちは」を JW_CAD に書くなら( 002.bat )
    @REM 002
    @echo off
    REM #jww
    REM #0
    REM #e
    echo ch ^"こんにちは > jwc_temp.txt
    
    として jwc_temp.txt に書き込みます。
     これで、外部変形プログラム「こんにちは」は完成です。
     このバッチファイルを「外変」コマンドで 実行すれば マウスで指示した
    場所に「こんにちは」と書けます。

     4行目の REM #0 は こんにちは を 記入する位置をマウスで指示する
    コマンドです。
     6行目の ch "〜 は文字列 〜 を書く外部変形のコマンドです。
     横文字データは、基点座標x,y、長さlx,ly、文字列を書き込みます。
      ch x y lx ly "文字列
     長さは 長さの比でも構いません。
      x=y=ly=0 なら
      ch "文字列
     で構いません。
      
    
     出力ファイル jwc_temp.txt は JW_CAD 外部変形の入出力のファイル
    です。jwc_temp.txt 以外のファイルに出力しても意味はありません。



     JW_CAD 外部変形の流れを簡単に説明します。


    [ 第0段階 ] 外部変形の開始
     Jw_cad メニュー「その他(A)」→外部変形(G) あるいは ツールバー「
     その他(1)」→[外変] を実行(クリック)する。


    [ 第1段階 ] プログラムの選択
     「ファイル選択」画面でプログラムを選択して実行します。


    [ 第2段階 ] データの入力
     主要なデータは バッチファイルで REM # 文 に指定します。データには
      @「JWC_TEMP.TXT(書き込み)」に 必ず出力されるもの
       軸角、スケール、基本文字データ
       表示画面のレイヤグループ、レイヤ、各種属性
      A「JWC_TEMP.TXT(書き込み)」に出力を REM # 文 で 指定するもの
       レイヤグループ、レイヤの名称と状態
       指示あるいは選択データのレイヤグループ、レイヤ、各種属性
       線・円・点・文字で指示あるいは選択されたデータ
       指示あるいは選択された寸法図形・ソリッド図形・ブロック図形データ
       データの入出力モードの指定・その他
      Bコマンドライン引数・環境変数
       コマンドライン引数( 文字や数値など REM # 文 で指定するもの )
       環境変数
      C環境設定ファイル・データファイル
       環境設定ファイル
       前回値や規格材料のデータファイル
     などがあります。
      採用する言語ソフトによっては、上記以外にもさまざまなデータベース
     に直接アクセスすることなど、十分に考えられます。


    [ 第3段階 ] JWC_TEMP.TXT 書き込み
      入力の情報は JWC_TEMP.TXT に書き込まれます。

    [ 第4段階 ] プログラムの実行
      プログラムは、テキストファイル「JWC_TEMP.TXT(書き込み)」を読み
     取りすべての作図情報を「JWC_TEMP.TXT(読み込み)」に書き込んでおか
     なくてはなりません。
      → 入力データを 前回値としてファイルに保存しておくと便利です。

    [ 第5段階 ] JWC_TEMP.TXT 読み込み
      プログラムの終了後に Jw_cad が自動的に「JWC_TEMP.TXT(読み込み)
     」を読み込んで外部変形は終了します。


    [ 第5段階 ] 次のプログラムの選択
      次の処理で [外部変形再選択(L)] か [再実行(R)] のどちらかを選択
     します。他の処理を選択すれば自動的に終了します。


    |先頭へ戻る|


     awk スクリプトで 簡単な外部変形例を示します。
     → Windows2000, VISTA で 動作確認しています。

     → → → [ 外部変形はシェルスクリプト ]
     外部変形では 入力をバッチファイルに記述して、出力(作図作業)は別に
    プログラムを書くことが普通です。
     しかし、「こんにちは」の例題のように バッチファイルにプログラムを
    書く方法のほうが 外部変形機能は理解しやすいと思われます。ここでは、
    そうした理由から 例題をバッチファイルに直接プログラムを書く方法で示
    します。(コマンドラインオプション '-f -' で 標準入力 から 実行する)


    ■始点と終点を入力して、線を引くプログラム例
     指示点データは、hp番号、座標x,y の順に書き出されます。
      hp1- x y
      hp2  x y
    
     線データは、始点座標x1,y1、終点座標x2,y2 の順に書き込みます。
      x1 y1 x2 y2
    
    
     0:@REM 線を引く
     1:@echo off
     2:REM #jww
     3:REM #1-%d 始点を指示してください
     4:REM #2%d 終点を指示してください
     5:REM #e
     6:copy jwc_temp.txt myfiles > nul
     7:more +8 %0 | gawk -f - myfiles > jwc_temp.txt & goto:eof
     8:/^hp1-/ { p1 = $2 FS $3 }
     9:/^hp2/  { p2 = $2 FS $3
    10:  print p1 FS p2
    11:}
    

    [ 書き込みデータ JWC_TEMP.TXT 例(線を引く) ]
     hq ← 外部プログラム実行チェック文字
     hk 0 ← 現設定の軸角( ゚ )
     hs 1 10 20 30 40 50 60 70 80 90 100 200 1 1 1 1 ← レイヤグループの縮尺の逆数
     hcw 2 2.5 3 4 5 6 7 8 9 10 ← 文字 幅 寸法 (文字種類 No1〜10 )
     hch 2 2.5 3 4 5 6 7 8 9 10 ← 文字 高 寸法 (文字種類 No1〜10 )
     hcd 0 0 0.5 0.5 0.5 1 1 1 1 1 ← 文字間隔寸法 (文字種類 No1〜10 )
     hcc 1 1 2 2 3 3 4 4 5 5 ← 文字色(ペンNo) (文字種類 No1〜10 )
     hn 0 0 0 0 ← 選択範囲の始点と終点の座標
     hp1- -2000.97457627119 -943.85593220339 ← 指示点 1 の座標値
     hp2 654.406779661017 742.5 ← 指示点 2 の座標値
     lg2 ← 表示画面のレイヤグループ
     ly0 ← 表示画面のレイヤ
     lc2 ← 表示画面の線色
     lt1 ← 表示画面の線種
     cn5 ← 現設定の文字種
     #

     バッチファイルを起動して入力終了後に上記のように JWC_TEMP.TXT が
    出力されます。
     → 基本的に 1行が1レコード( リスト )として扱われています。

    [ 読み込みデータ JWC_TEMP.TXT 例(線を引く) ]
      -2000.97457627119 -943.85593220339 654.406779661017 742.5

     JW_CAD 外部変形は この1行で 線を引くことができます。
     → 始点と終点 が 指示点1と指示点2 に相当します。
     → 外部変形の数値データは 有効桁数15( 倍精度 )で処理されています。
    ■中心点と円周上の点を入力して、円を描くプログラム例
     円データは、中心座標x,y、半径r の順に書き込みます。
      ci x y r
    
    
     0:@REM 円を描く
     1:@echo off
     2:REM #jww
     3:REM #1-%d 円の中心を指示してください
     4:REM #2%d 円周上の点を指示してください
     5:REM #e
     6:copy jwc_temp.txt myfiles > nul
     7:more +8 %0 | gawk -f - myfiles > jwc_temp.txt & goto:eof
     8:/^hp1-/ { p1 = $2 FS $3 }
     9:/^hp2/  { p2 = $2 FS $3
    10:  $0 = p1 FS p2
    11:  printf "ci "p1" %.15g\n", sqrt(($3 - $1) ^ 2 + ($4 - $2) ^ 2)
    12:}
    

    ■始点と終点を対角線とする矩形を描くプログラム例
     矩形データは、ありません。連続線を利用します。
     連続線データは、点座標x1,y1、x2,y2 ・・・ を順に書き込みます。
      x1 y1
      x2 y2
       ・・・ 
      (以下にデータがあるときは、空白行)
    
    
     0:@REM 矩形を描く
     1:@echo off
     2:REM #jww
     3:REM #1-%d 矩形の始点を指示してください
     4:REM #2%d 対頂点を指示してください
     5:REM #e
     6:copy jwc_temp.txt myfiles > nul
     7:more +8 %0 | gawk -f - myfiles > jwc_temp.txt & goto:eof
     8:/^hp1-/ { p1 = $2 FS $3 }
     9:/^hp2/  { p2 = $2 FS $3
    10:  $0 = p1 FS p2
    11:  p3 = $1 FS $4
    12:  p4 = $3 FS $2
    13:  print p1 RS p3 RS p2 RS p4 RS p1
    14:}
    


     JW_CAD 外部変形 と Lite & Seen Lite

     JW_CAD 外部変形を実行するには
      @Jw_cad( Windows版 )
      A外部変形のバッチファイル
      B外部変形の作図用プログラム
      C外部変形の作図用プログラムがAwk、Rubyなどを利用しているとき
       は、その言語ソフト( Lite & Seen Lite には 必要 )
     が必要となります。
     → 本稿の例題は AとBを ひとつにまとめています。

     Lite & Seen Lite は外部変形による作図プログラムを無償で公開して
    います。内容は 手書き時代の製図作業をCADに置き換えたものです。
     構造関係のプログラムばかりです。RC造編・S造編・下部工編・作図編
    ・学習編・工具編・資料編・入門編・再入門編・番外編・風のたより から
    構成されています。使い方は、本ホームページで公開しています。
     入門編・再入門編・番外編・風のたよりを除いて、実務に対応していま
    す。なお、未完成ですが自動製図(試行版)編も併せて公開しています。

     ちょっとしたメモから本格的な図面の作成まで 幅広く 利用できるように
    工夫したつもりです。( きめの細かな表現ができるように努めています )
     awk, ruby ですからプログラムを修正して利用することも可能です。



     JW_CAD 外部変形 は 愉快な機能 です。

     JW_CAD 外部変形は MS-DOS スクリプトに埋め込んで利用できる便利な
    機能です。

    ◎HTA なら
    echo こんにちは > jwc_temp.hta
    start jwc_temp.hta
    
      で あいさつできます。

    ◎メッセージボックスを利用するなら
    echo MsgBox "こんにちは" > jwc_temp.vbs
    start jwc_temp.vbs
    
      か
    echo WScript.Echo("こんにちは") > jwc_temp.js
    start jwc_temp.js
    
      のようにすれば いいと思います。

    ◎PowerShell も 使えます。
    @REM Cmd コマンドプロンプト
    @echo off
    REM #jww
    REM #0
    REM #e
    echo ch 0 0 1 0 ^"こんにちは > jwc_temp.txt
    
      を
    @REM Cmd → PS パワーシェル
    @echo off
    REM #jww
    REM #0
    REM #e
    powershell "'ch 0 0 1 0 \""こんにちは'" > jwc_temp.txt
    
      とすれば のんびりと 挨拶ができます。
      
    ついでに 外部変形ならではの曲芸をいくつか紹介します。
    ◎JScript(WSH) による あいさつです。
    /* こんにちは
    @echo off & cls
    REM #jww
    REM #0
    REM #e
      cscript //nologo //e:jscript %~f0 > jwc_temp.txt
      goto:eof
    */
      WScript.echo("ch 0 0 1 0 \"こんにちは")
    

    ◎C (MinGW + gcc) による あいさつです。
    /* こんにちは
    @echo off & cls
    REM #jww
    REM #0
    REM #e
    if not exist %~dpn0.exe (
      copy %0 %~dpn0.c > nul
      gcc %~dpn0.c -o %~dpn0.exe -s & del %~dpn0.c
    )
      %~dpn0 > jwc_temp.txt
      goto:eof
    */
    #include <stdio.h>
    main()
    {
      puts("ch 0 0 1 0 \"こんにちは");
    }
    

    ◎Maxima で 楕円弧の長さを計算する 外部変形です。
    → Maxima は 因数分解 や 微積分ができる 数式処理ソフトです。
    /* Maxima で 楕円弧の長さを計算する
    :: 条件 → 長径 100、扁平率 0.5、始角 30°、終角120°
    @echo off & cls
    REM #jww
    REM #0
    REM #e
      type %~f0 | maxima --very-quiet > jwc_temp.txt
      goto:eof
    */
      fpprec:22$ /* 多倍長計算 (表示は 〜300桁まで) */
      a : elliptic_e(%pi / 3, 1 - 0.5 ^ 2)$
      b : elliptic_e(%pi / 6, 1 - 0.5 ^ 2)$
      s : string(bfloat((a + b) * 50))$
      if slength(s) > 300 then s : substring(s, 1, 304)$
      printf(true, "ch 0 0 1 0 \"~a~%", s)$
      quit()$
    
    → a は 30°から 90°、b は 90°から 120°の 長径 100 の 円弧の長さ
      出力結果は ch 0 0 1 0 "7.122426833910255809502b1
      → keisan(カシオ 高精度計算のサイト 桁数=22) による 計算例
        専 門 編 → 特殊関数 → 第2種不完全楕円積分 E(φ,k)
        φ = 60
        k = sqrt(1-0.5*0.5)
        E(φ,k) = 0.9183932943163253311876 → a
        φ = 30
        k = sqrt(1-0.5*0.5)
        E(φ,k) = 0.5060920724657258307128 → b
        フリー計算(画面左上)
        (0.9183932943163253311876 + 0.5060920724657258307128) * 50
        = 71.22426833910255809502
        ( 7.122426833910255809502b1 → maxima fpprec:22)
    →→ 参考までに 楕円弧の長さを数値計算するプログラム例 です。

    ◎Gnuplot を 使ってみます。(Windows XP 以降?で動作可)
    → Gnuplot は グラフ作成用のソフトです。
     0:@REM gnuplot で sin 曲線を描く
     1:@echo off
     2:REM #jww
     3:REM #0
     4:REM #e
     5:  call:gnuplot
     6:  timeout 2
     7:( echo by 25
     8:  type ztemp.txt
     9:) > jwc_temp.txt
    10:  goto:eof
    11::gnuplot
    12:  more +13 %~f0 | pgnuplot - - & goto:eof
    13:  set terminal table
    14:  set format "%.15g"
    15:  set output "ztemp.txt"
    16:  plot [-pi:pi] sin(x)
    

     JW_CAD 外部変形を 裏から覗けば、このようなやり方で Cmd.exe で動
    作するものなら なんでも吸いとってしまう 愉快な機能(ローテク) である
    ことが、よくわかります。

     下図は外部変形の自動製図(試行版)プログラムによって描いたものです。


    | 前へ | 使い方 | ダウンロード | 表紙へ |いろはにruby外部変形|先頭へ戻る|



  • ♪ Lite & Seen Lite は みんなの道具。
     外部変形には Awkなどのプログラムが必要だと勘違いされた方もいらっ
    しゃると思います。実は、JW_CAD の 外部変形はかなり強力!!?です。

     外部変形は イメージさえつかめば なぁ〜んだ。というものです。
     それでは jwc_temp.txt で 簡単な図面を書いてみましょう。

     ◎1m の線を引くなら

     バッチファイルはこうなります。
    REM #jww 1m の線を引く
    REM #e
    echo 0 0 1000 0 > jwc_temp.txt
    
     001line.bat で 保存して [ 外変 ] コマンド で実行します。
     線データは、始点座標x1,y1、終点座標x2,y2 の順に書き込みます。
      x1 y1 x2 y2
    

     マウスで指示した位置に線を記入するには、REM #0 を追加します。
    REM #jww 1m の線を引く #0
    REM #0
    REM #e
    echo 0 0 1000 0 > jwc_temp.txt
    

     さらに、寸法の入力は、REM #c 線の長さ = を追加します。
     → 1000 を %1 とすることも忘れないでください。
    REM #jww 1m の線を引く #0 #c
    REM #0
    REM #c 線の長さ = 
    REM #e
    echo 0 0 %1 0 > jwc_temp.txt
    

     線データを直接入力することもできます。
     → 0 0 1000 0 のように入力してください。
    REM #jww データを入力して線を引く
    REM #0 原点を指示してください。
    REM #c x1 y1 x2 y2 = 
    REM #e
    set a=%*
    if defined a (
      echo %* > jwc_temp.txt
    ) else (
      echo 0 0 1000 0 > jwc_temp.txt
    )
    

     ◎1m の線データを指示して jwc_temp.txt を表示するなら
    :線データを指示する
    @echo off
    REM #jww
    REM #1ln 1m の線データを指示してください。
    REM #e
    type jwc_temp.txt
    pause
    
     jwc_temp.txt は 入出力 を 兼ねたファイル です。

     いろいろなデータが表示されるはずです。
     1m の線のデータはみつかったでしょうか。
     0 0 1000 0
    

     ◎指示点を結ぶ線を引くなら
    
    :線を引く
    @echo off
    REM #jww
    REM #1-%d 始点を指示してください
    REM #2%d 終点を指示してください
    REM #e
    for /f "tokens=1*" %%1 in (jwc_temp.txt) do (
      if /i %%1==hp1- set p1=%%2
      if /i %%1==hp2  set p2=%%2
    )
    echo %p1% %p2% > jwc_temp.txt
    
    →→ 初心者の方は、読み飛ばしてください。
     指示点データは、hp番号、座標x,y の順に書き出されます。
      hp1- x y
      hp2  x y
    

     ◎半径1mの円を描くなら
     

     バッチファイルはこうなります。
    REM #jww 半径1mの円を描く
    REM #e
    echo ci 0 0 1000 > jwc_temp.txt
    
     002circle.bat で 保存して [ 外変 ] コマンド で実行します。
     円データは、中心座標x,y、半径r の順に書き込みます。
      ci x y r
    
     余談ですが、半径100mmの円なら
    REM #jww (0, 0)、(100, 0)、(100, 200)を中心に半径100mmの円を描く
    REM #0
    REM #e
    ( echo ci
      echo ci 100
      echo ci 100 200
    ) > jwc_temp.txt
    
     で構わないようです。

    MS-DOS の コマンドだけでは 実数演算ができません。そんな時には
    JScript が 使えます。

    たとえば

     ◎円の中心と円周上の点で円を描くなら
    
    /* 円を描く
    @echo off & cls
    REM #jww
    REM #1-%d 円の中心を指示してください
    REM #2%d 円周上の点を指示してください
    REM #e
    for /f "tokens=1*" %%1 in (jwc_temp.txt) do (
      if /i %%1==hp1- set p1=%%2
      if /i %%1==hp2  set p2=%%2
    )
    cscript //nologo //e:jscript %0 %p1% %p2% > jwc_temp.txt
    goto:eof
    */
    with (WScript) {
      F = arguments
      dx = F(2)*1 - F(0)*1
      dy = F(3)*1 - F(1)*1
      echo("ci", F(0), F(1), Math.sqrt(dx * dx + dy * dy))
    }
    
    →→ 初心者の方は、読み飛ばしてください。

     ◎始点と終点を対角線とする矩形を描くなら
     矩形データは、ありません。連続線を利用します。
     連続線データは、点座標x1,y1、x2,y2 ・・・ を順に書き込みます。
      x1 y1
      x2 y2
       ・・・ 
      (以下にデータがあるときは、空白行)
    
    
    /* 矩形を描く
    @echo off & cls
    REM #jww
    REM #1-%d 矩形の始点を指示してください
    REM #2%d 対頂点を指示してください
    REM #e
    for /f "tokens=1*" %%1 in (jwc_temp.txt) do (
      if /i %%1==hk   set hk=%%2
      if /i %%1==hp1- set p1=%%2
      if /i %%1==hp2  set p2=%%2
    )
    cscript //nologo //e:jscript %0 %p1% %p2% %hk% > jwc_temp.txt
    goto:eof
    */
    with (WScript) {
      F = arguments
      x1 = F(0)*1; y1 = F(1)*1
      x2 = F(2)*1; y2 = F(3)*1
      hk = F(4) * Math.PI / 180
      co = cos(hk)
      si = sin(hk)
      ww =   (x2 - x1) * co + (y2 - y1) * si
      hh = - (x2 - x1) * si + (y2 - y1) * co
      p3 = [x1 + ww * co, y1 + ww * si]
      p4 = [x1 - hh * si, y1 + hh * co]
      echo([p1, p3, p2, p4, p1].join("\n").replace(/,/g, " "))
    }
    
    →→ 初心者の方は、読み飛ばしてください。


     JW_CAD 外部変形のコマンドは「スクリプト言語」のように扱えます。

     Seen Lite の「一括消去」( jw_pro25.bat、jw_pro95.bat ) は、そうした
    手法を採用しています。
     [ 関連処理 ] 学習編(1)/jw_pro95.bat 【消 去】

     Seen Lite の「Application」( jw_pro28.bat、jw_pro98.bat ) は Windows
    のアプリケーションを外部変形から起動するバッチファイル集です。
     [ 関連処理 ] 学習編(1)/jw_pro98.bat 【Application】

     ■DOSコマンド time、date、path の表示確認を行うスクリプトです。
    :【 超再入門 / EX-00 】
    REM #jww
    REM #0
    REM #e
    echo ch 0 0 1 0 ^"%time% > jwc_temp.txt
    
     横文字データは、基点座標x,y、長さlx,ly、文字列を書き込みます。
      ch x y lx ly "文字列
     長さは 長さの比でも構いません。
      
    
     → 2行目の「REM #jww」は Jw_win 形式外部変形の宣言文です。
     → 3行目の「REM #0」は マウスで表示位置を指示するコマンドです。
     → 4行目の「REM #e」は外部変形の終了文です。
     → 「"」は「^"」で表示できます。"%time%" では

      となります。^"%time% としてください。
     → かなり面倒ですが 制御文字も扱えます。
      ^ は ^^、! は ^! としてください。
    ( echo cn0 20 30 2 114
      echo ch 0 0 1 0 ^"JW_CAD^^^!^^$8徹底^^$2^^#解説
    ) > jwc_temp.txt
    


     ■入力した文字列を書くスクリプトです。
    :入力した文字列を書く
    @echo off
    REM #jww
    REM #c 文字列 = 
    REM #0
    REM #e
    set str=%*
    if not defined str set str=ようこそ
    echo ch ^"%str% > jwc_temp.txt
    
     → 4行目の「REM #c」は 入力文です。
     → 7行目の set str=%* で 環境変数 str に 入力した文字列をセットします。
     → 8行目で 入力がないとき デフォルト値をセットします。
     → 9行目の ch ^"〜 は ch 0 0 1 0 ^"〜 または ch 0 0 0 0 ^"〜 と同じです。

     ■範囲内の文字列を新しい文字列に変更するスクリプト です。
     → 数値演算はないので「できないことはない」という趣旨のものです。
       プログラムを見ても なにをしているのか わかりづらいですが、理論
       的には シェルコマンドだけでも この程度の処理はできるということ
       の証明です。初心者の方は、読み飛ばしてください。

     ■点マーカを指示点に記入するスクリプトを考えてみました。

     
     ◎pnViewJ ver.1.20 を利用しています。( マーカコード番号 2, 5, -3 ? )

    :【 超再入門 / EX-01 】
    @echo off
    REM #jww
    REM #0
    REM #c マーカコード番号
    REM #e
    echo pt 0 0 1 0 %1 > jwc_temp.txt
    
     点データは、座標x,yの順に書き込みます。
      pt x y
     点マーカは、倍率、傾角°、マーカコード番号を追加します。
      pt x y 倍率 傾角°マーカコード番号
    
     → 用紙の中心に点を打つなら、つぎのようにします。
    :用紙の中心に点を打つ
    @echo off
    REM #jww
    REM #e
    echo pt 0 0 > jwc_temp.txt
    

     ■ソリッド図形の動作確認を行うスクリプトです。
     塗りつぶし色は lc10 で カラー値 を書き込みます。
       lc10 カラー値 [赤(0-255)+緑(0-255)*256+青(0-255)*256*256]
     線のソリッド図形データは、2点の座標x,y を書き込みます。
      sl x1 y1 x2 y2
     三角形のソリッド図形データは、3点の座標x,y を書き込みます。
      sl x1 y1 x2 y2 x3 y3
     四角形のソリッド図形データは、4点の座標x,y を書き込みます。
      sl x1 y1 x2 y2 x3 y3 x4 y4
     円周のソリッド図形データは、つぎのように書き込みます。
        se x y r 偏平率 傾角 始角 円弧角 円フラグ
    

    :【 超再入門 / EX-02.more 】
    @echo off
    REM #jww
    REM #0
    REM #e
    more +6 %~f0 > jwc_temp.txt & goto:eof
    lc10 255
    sl 0 0 100 100
    lc10 32768
    sl 0 0 -100 100 -100 0
    lc10 16711680
    sl 0 0 0 -100 100 -100 100 0
    lc10 8388736
    se 0 0 100 1 0 3.14159265358979 1.57079632679490 0
    
     データファイルを読み込むやり方も便利です。
    :【 超再入門 / EX-02(2) 】
    @echo off
    REM #jww
    REM #0
    REM #cd
    REM #e
    type JW_EX-02(1).txt JW_EX-02(2).txt > jwc_temp.txt
    
    [ JW_EX-02(1).txt ] lc10 255 sl 0 0 100 100 lc10 32768 sl 0 0 -100 100 -100 0 lc10 16711680 sl 0 0 0 -100 100 -100 100 0 [ JW_EX-02(2).txt ] lc10 8388736 se 0 0 100 1 0 3.14159265358979 1.57079632679490 0
     下記のようにすれば [ REM #cd ] は 不要です。
     type %~dp0JW_EX-02(1).txt %~dp0JW_EX-02(2).txt > jwc_temp.txt

     ■いくつかスクリプトを考えてみました。


      JW_CAD 固有の文字表現と文字飾りです。
      → これらの表現を、使いこなすには「かなりの慣れとそれなりの覚悟」が必要です。
      → JW_CAD には 文字列を分割するコマンドがあるので十分な注意が必要です。

      ほんのすこし、実用的なスクリプトです。



     ◎スクリプトの例題はここからダウンロードできます。
      → 外部変形再入門編 / dosscript.zip



     これらのスクリプトの内容が理解できれば「外部変形再入門」は卒業です。
     → ご苦労さまでした。

     健康第一!! またお会いいたしましょう。

    | 前へ | 使い方 | ダウンロード | 表紙へ |awk空飛ぶもぉ|先頭へ戻る|