Indexへ
(4827)//【4833】→(4834)
------------------------
【タイトル】座標の直接入力の外部変形
【記事番号】 4833 (*)
【 日時 】04/08/13 11:02
【 発言者 】コジマ

タクマさんの「座標の直接入力」のツリーが長くなったので新規に投稿します。

私なりの解釈で外部変形を作ってみました。

座標値を図面上に直接書き込んだ後(文字コマンド)
この外部変形を実行すれば座標値が線に変換されます。

この外部変形の実行には、mswin32版rubyのインストールが必要です。
牛渡さんのサイトで入手できます。
http://www61.tok2.com/home2/gravelroad/tips/install.html

すでに ActiveRubyをインストールされている場合は、
バッチファイルの一番下の記述
ruby -Ks を cscript //nologo に修正すればActiveRubyで動作します。


◎バッチファイル(ファイル名 座標作図.bat)

@REM 座標値を多角形に変換
@echo off
REM #jww
REM #cd
REM #h3
REM #hc座標値を範囲選択してください
REM #0基準点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 座標作図.rb temp.txt > jwc_temp.txt

◎スクリプトファイル(ファイル名 座標作図.rb)

# 座標値を多角形に変換
BEGIN{
print "hd\n"
$x=Array.new
$y=Array.new
}
def main
while ARGF.gets
xy = split
if xy[0] =="hp1"
  x=xy[1].to_f
  y=xy[2].to_f
end
if xy[0] =="ch"
  ward=xy[5].delete("\"")
  xxyy=ward.split("\,")
  $x.push(xxyy[0].to_f)
  $y.push(xxyy[1].to_f)
end
end
n=0
while (n<$x.size-1)
naname($x[n],$y[n],$x[n+1],$y[n+1])
n +=1
end
end
def naname(x1,y1,x2,y2)
printf("%e %e %e %e\n", x1, y1, x2, y2)
end
main()

コピペ後、全角スペースを半角スペースに一括置換して下さい。


Indexへ
(4833)←【4834】→(4835)
------------------------
【タイトル】座標値の記述方法
【記事番号】 4834 (4833)
【 日時 】04/08/13 11:07
【 発言者 】コジマ

座標値の記述方法は、以下のように半角数字の , 区切りです

0,0
100,200
400,800
200,900
0,0


Indexへ
(4834)←【4835】→(4839)
------------------------
【タイトル】Re(1):座標の直接入力の外部変形
【記事番号】 4835 (4833)
【 日時 】04/08/13 13:16
【 発言者 】エネカッパ

コジマさん こんにちは

>>私なりの解釈で外部変形を作ってみました。
>
>座標値を図面上に直接書き込んだ後(文字コマンド)
>この外部変形を実行すれば座標値が線に変換されます。


変換されましたぁ。
こういう方法も一案ですね。

外部変形作れる人ってスゴイなぁ。


PS.そろそろ私 ネットのない休暇・・・プライスレス に入ります。


Indexへ
(4835)←【4839】//(4841)
------------------------
【タイトル】座標の直接入力の外部変形その2
【記事番号】 4839 (4833)
【 日時 】04/08/13 20:24
【 発言者 】コジマ

座標値をコマンドプロンプトに直接入力して多角形(連続線)を作図する。

◎バッチファイル(ファイル名 座標作図2.bat )

@REM 座標値を直接入力して多角形を作図
REM 座標値を入力してください。例 x1,y1 x2,y2 ・・・
@echo off
REM #jww
REM #cd
REM #h0
REM #0原点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 座標作図2.rb temp.txt > jwc_temp.txt


◎スクリプトファイル(ファイル名 座標作図2.rb )

# 座標値を直接入力して多角形を作図
BEGIN{
$x=Array.new
$y=Array.new
}
def main
while ARGF.gets
xy = split
if xy[0] =="hp1"
  ax=xy[1].to_f
  ay=xy[2].to_f
end
end
zahyou=gets.chop
xxyy=zahyou.split("\s")
n=0
while (n$xy=xxyy[n].split("\,")
x=$xy[0].to_f
y=$xy[1].to_f
$x.push(x)
$y.push(y)
n+=1
end
m=0
while (m<$x.size-1)
naname($x[m],$y[m],$x[m+1],$y[m+1])
m +=1
end
end
def naname(x1,y1,x2,y2)
printf("%e %e %e %e\n", x1, y1, x2, y2)
end
main()

コピペ後、全角スペースを半角スペースに一括置換して下さい。