外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
mshtaで指示点を確認する(hp)
:mshtaで指示点を確認する(hp)
@echo off
if exist jwc_temp.txt (
copy jwc_temp.txt myfiles > nul
mshta %~f0 < myfiles > jwc_temp.txt
)
goto:eof
REM #jww
REM #1-%d 点を指示してください
REM #99#
REM #zs
REM #e
<script>
function hex(x) { return x < 10 ? x : x.toString(16) }
hs =
hp =
lg = ""
with (new ActiveXObject("Scripting.FileSystemObject")) {
f = GetStandardStream(0) //stdin
g = GetStandardStream(1) //stdout
while (! f.AtEndOfStream) {
F = ($_ = f.ReadLine()).split(/\s+/)
if (/^hs/i .test($_)) { //hs スケール
for (i = 0; i <= 15; i++) hs[hex(i)] = F[i + 1] * 1.0;
}
if (/^lg[a-f0-9]/i .test($_)) { //lg レイヤグループ
plg = $_.substr(2, 1).toLowerCase(); if (lg == "") lg = plg;
}
if (/^hzs/i .test($_)) { //hzs 用紙サイズ
hzs = [ F[1] * 1.0, F[2] * 1.0 ]
}
if (/^hp[1-9][0-9]?/i .test($_)) { //hp 指示点
hp[ F[0].match(/[0-9][0-9]?/) ] = [ F[1] * 1.0, F[2] * 1.0 ]
}
}
f.close()
sc = hs[lg]
w = hzs[0]*sc
h = hzs[1]*sc
g.WriteLine([-w / 2.0, 0, w / 2.0, 0].join(" "))
g.WriteLine([0, -h / 2.0, 0, h / 2.0].join(" "))
g.WriteLine("ch 0 0 1 0 \"[0 ,0]")
hpn = hp.length
for (i = 1; i < hpn; i++) {
g.WriteLine("pt " + hp[i].join(" "))
g.WriteLine("ch " + hp[i].join(" ") + " 1 0 \"[" + hp[i][0] + "," + hp[i][1] + "]")
}
}
close()
</script>
スクリプト言語は jscript を使用しています。