jw_cad 外部変形 - (454) パワーシェルで円を描く -

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

 

パワーシェルは Windowsを操作あるいは設定するシェルとスクリプト言語です。

 

パワーシェルで円を描く

jw_cad 外部変形は バッチファイル(.bat)で処理する設計となっているため コマンドプロンプトからパワーシェルを起動する必要があります。

:パワーシェルで円を描く
@echo off
for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
  more +%%n %0 | powershell -command -
)
goto:eof

REM #jww
REM #1-%d 円の中心を指示してください
REM #2%d 円周上の点を指示してください
REM #e

#!ここから more +n %0 の n 行目:最初の行は 0 行
(gc jwc_temp.txt) | foreach {
  switch -regex -case ($_)
  {
    '^hp1-\s+(\S+)\s+(\S+)' { $p1=$matches[1,2] }
    '^hp2 \s+(\S+)\s+(\S+)' { $p2=$matches[1,2]
      $1,$2,$3,$4 = ($p1+$p2 | foreach { [double] $_ })
      "ci $p1 $([math]::sqrt(($3-$1)*($3-$1)+($4-$2)*($4-$2)))"
    }
  }
} | sc jwc_temp.txt

#ここまで powershell は 文末に必ず空白行を置いてください

 

 

何故か?処理時間がかかります。

外部変形のような使い方はパワーシェルには向いていない?ようです。