バッチファイル名は「JWW_SMPLen.BAT」としてください。
######下記よりメモ帳にコピペして全角スペース→半角スペースの置換してください。
@REM 三斜計算(円枠対応)
@echo off
goto do%1
rem
rem ----------------------------------------------------------------
rem ※このファイルを編集した場合は上書き保存して閉じてください。
rem ※ファイルを閉じなくても編集は反映されます。
rem
rem ※全てのオプションをコマンドラインに設定してありますので環境
rem に応じて適宜修正して下さい。
rem
rem ※作図設定はこのバッチファイルの68行目からです。
rem ----------------------------------------------------------------
rem
REM #jww
REM #cd
REM #hm |三斜計算 L|BAT 編集 R|
REM #:1
REM #h1
REM #g0 書込みグループのみ選択対象(全グループの場合はg1)
REM #hc 【 三 斜 計 算 】 三角形を選択(三角形の辺 200 まで)
REM #0 数値書き込み位置指示 (L)free (R)Read
REM #f 敷地名称(無指定 無) : /_$1"
REM #c 番号の前に追加する文字(無指定 無) : /_$2"
REM #ht10 ブロック図形の書出しをしない
REM #ht40 ソリッドの書出しをしない
REM #hr
REM #e
REM #:2
REM #h0
REM #hr
REM #e
rem ---------------------------------------------------------------------------
rem 起動オプション(IME ON)
rem #f 敷 地 名 称 : /_$1"
rem 起動オプション(IME OFF)
rem #c 番号の前に追加する文字 : /_$2"
rem
rem オプション説明(指定レイヤに作図)
rem /N* :初期番号指定 「*」 は初期No[1〜8001] (無指定:1)
rem /L* :レイヤ指定 「*」 はレイヤNo[0〜F] (無指定:書込レイヤ)
rem /M* :文字種類を指定 「*」 は文字種類No[1〜10] (無指定:2)
rem /K* :小数点以下有効桁数を指定 「*」 は桁数No[1〜3] (無指定:2)
rem /T* :三角形頂点に点を作図 「*」 は点種類No[1〜6] (無指定:1)
rem /E*.*:三角形頂点に円を作図 「*.*」 は円半径[図寸 mm] (無指定:1.0)
rem /H* :三角形の辺を作図 「*」 は線色No[1〜6] (無指定:1)
rem
rem /C :指定小数点以下桁数未満を切捨で寸法値作図 (無指定:四捨五入)
rem /S :敷地面積(小数点以下3桁を切捨)を作図
rem
rem ※頂点点種、枠線色はNo[1〜9]の範囲内で再設定できます。
rem ----------------------------------------------------------------------------
:do1
JWW_SMPL.EXE /N1 /LF /M3 /K3 /T /E1.5 /H /C /S %1 %2 %3
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt > jwc_temp.txt
del temp.txt
rem pause
exit
goto END
:do2
start notepad.exe JWW_SMPLen.BAT
ruby -e 'puts "h# ruby #{RUBY_VERSION} "' > jwc_temp.txt
goto END
#!ruby -Ks
#============= 設 定 =============================================
#
waku_en = "1" #番号枠種類(楕円枠 → 0 : 円枠 → 1 : 枠無 → 2)
waku_lc = "2" #番号枠線色(1〜9) 0の場合は既定線色
waku_lt = "0" #番号枠線種(1〜9) 0の場合は既定線種
waku_br = "0.8" #番号枠半径補正倍率(0.5〜2) 1の場合は元半径
#
line_lc = "3" #高さ垂直線線色(1〜9) 0の場合は既定線色
line_lt = "0" #高さ垂直線線種(1〜9) 0の場合は既定線種
#
apex_lc = "4" #頂点円線色(1〜9) 0の場合は既定線色
apex_lt = "0" #頂点円線種(1〜9) 0の場合は既定線種
#
apex_pn = "5" #頂点点種(1〜9) 0の場合は既定点種
#
shen_lc = "6" #三角形の辺線色(1〜9) 0の場合は既定線色
shen_lt = "0" #三角形の辺線種(1〜9) 0の場合は既定線種
#
hyou_lc = "7" #面積表線色(1〜9) 0の場合は既定線色
hyou_lt = "0" #面積表線種(1〜9) 0の場合は既定線種
#
#=================================================================
if waku_br.to_f < 0.5 or waku_br.to_f > 2.0
puts "he 番号枠半径補正値設定エラー。"; exit
end
datas,hens,all,lcs,lts = [],[],[],[],[]
while ARGF.gets
datas << $_
end
(datas.reverse).each{|data|
if data =~ /^\s[0-9-]/
hens << data
else
break
end
}
datas -= hens
datas.each{|data|
all << data
if data =~ /^ci/
en = data.split; en[3] = waku_br.to_f*en[3].to_f
if en.size == 8
if waku_lc == "0"
puts lcs[-1]
else
puts "lc"+waku_lc
end
if waku_lt == "0"
puts lts[-1]
else
puts "lt"+waku_lt
end
if waku_en == "1"
puts en[0,4].join("\s")
elsif waku_en == "0"
puts en.join("\s")
elsif waku_en == "2"
else
puts "he 枠種類設定エラー"; exit
end
else
if apex_lc == "0"
puts lcs[-1]
else
puts "lc"+apex_lc
end
if apex_lt == "0"
puts lts[-1]
else
puts "lt"+apex_lt
end
puts data
end
elsif data =~ /^pt/
if apex_pn != "0"
puts "pn"+apex_pn
end
puts data
elsif data =~ /^\s[0-9-]/
if all[-2][0,2] == "z3"
if line_lc == "0"
puts lcs[-1]
else
puts "lc"+line_lc
end
if line_lt == "0"
puts lts[-1]
else
puts "lt"+line_lt
end
else
if hyou_lc == "0"
puts lcs[-1]
else
puts "lc"+hyou_lc
end
if hyou_lt == "0"
puts lts[-1]
else
puts "lt"+hyou_lt
end
end
puts data
elsif data =~ /^lc/
puts data
lcs << data
elsif data =~ /^lt/
puts data
lts << data
else
puts data
end
}
if hens.size >= 3
if shen_lc != "0"
puts "lc"+shen_lc
end
if shen_lt != "0"
puts "lt"+shen_lt
end
hens.each{|hen|
puts hen
}
end
:END
##########以上です