外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
パワーシェルは 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 矩形の始点を指示してください (L)free (R)Read
REM #2%d 対頂点を指示してください (L)free (R)Read
REM #e
#!ここから more +n %0 の n 行目:最初の行は 0 行
(gc jwc_temp.txt) | foreach {
switch -regex -case ($_)
{
'^hk (.+)' { $hk=[double] $matches[1] }
'^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] $_ })
$co = [math]::cos($hk*[math]::PI/180)
$si = [math]::sin($hk*[math]::PI/180)
$ww = ($3-$1)*$co+($4-$2)*$si
$hh =-($3-$1)*$si+($4-$2)*$co
$p3 = ($1-$hh*$si),($2+$hh*$co)
$p4 = ($1+$ww*$co),($2+$ww*$si)
"$p1`n$p3`n$p2`n$p4`n$p1"
}
}
} | sc jwc_temp.txt
#ここまで powershell は 文末に必ず空白行を置いてください
軸角に対応しています。
処理速度は遅いですがスクリプトは楽です。