Indexへ
(11322)//【11324】→(11325)
------------------------
【タイトル】外変ファイルのコピペk
【記事番号】 11324 (*)
【 日時 】06/04/27 23:46
【 発言者 】n-okusan

お世話になります。
 何方か、お分かりになる方がおいでになりましたら(とは言いましても、コジマ さんなのですが。大変不躾ですがお許し下さい。)、ご教示お願い致します。
 当「相談室」の過去ログに掲載してありました外変ファイル(コジマさん作)を コピーしたのですが、実行出来ません。
 申し訳ありませんが、何処がまずいのかご教示お願い致したいのです。

 「一括伸縮(ex_l_pl)」(勝手につけました)

 C:\jww\外変集\一括伸縮\ex_l_pl.bat

@REM 直線を曲線との交点まで一括伸縮
@echo off
REM #jw
REM #cd
REM #ht10
REM #ht30
REM #ht40
REM #zz
REM #zw
REM #h2
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks ex_l_pl.rb temp.txt > jwc_temp.txt
goto end
:end

 C:\jww\外変集\一括伸縮\ex_l_pl.rb

include Math
#sen1の線上とsen2の延長線上の交点を返す
def sen_sen_kouten3(sen1,sen2)
  if sen1[0]>sen1[2]
    sen1[0],sen1[2]=sen1[2],sen1[0]
    sen1[1],sen1[3]=sen1[3],sen1[1]
  elsif sen1[0]==sen1[2]
    if sen1[1]>sen1[3]
      sen1[1],sen1[3]=sen1[3],sen1[1]
    end
  end

  if sen2[0]>sen2[2]
    sen2[0],sen2[2]=sen2[2],sen2[0]
    sen2[1],sen2[3]=sen2[3],sen2[1]
  elsif sen2[0]==sen2[2]
    if sen2[1]>sen2[3]
      sen2[1],sen2[3]=sen2[3],sen2[1]
    end
  end

  sen1x=sen1[2]-sen1[0]
  sen1y=sen1[3]-sen1[1]
  sen1xy=sqrt(sen1x**2+sen1y**2)
  sen1_arg=atan2(sen1y,sen1x)
  x1_1=sen1[0]
  x1_2=sen1[0]+sen1xy
  y1_1=sen1[1]
  y1_2=sen1[1]

  x=sen2[0]-sen1[0]
  y=sen2[1]-sen1[1]
  xy=sqrt(x**2+y**2)
  arg=atan2(y,x)
  henkaku=arg-sen1_arg
  x2_1=sen1[0]+xy*cos(henkaku)
  y2_1=sen1[1]+xy*sin(henkaku)

  x=sen2[2]-sen1[0]
  y=sen2[3]-sen1[1]
  xy=sqrt(x**2+y**2)
  arg=atan2(y,x)
  henkaku=arg-sen1_arg
  x2_2=sen1[0]+xy*cos(henkaku)
  y2_2=sen1[1]+xy*sin(henkaku)

  x=x2_2-x2_1
  y=y2_2-y2_1
  delta=y/x


  y=y1_1-y2_1
  dx=y/delta


  kouten_x=x2_1+dx
  kouten_y=y1_1

  if x1_1kouten_x
    x=kouten_x-x1_1
    kouten_xt=x1_1+x*cos(sen1_arg)
    kouten_yt=y1_1+x*sin(sen1_arg)

    return [kouten_xt,kouten_yt]
  else
    return nil
  end
end


k_sen=[]
while ARGF.gets
  xy=split
  if xy[0]=~/^pl|^\#/
    kyokusen=xy[0]
  end
  if xy[0]=~/^\d|^-/
    if kyokusen=="pl"
      xy.collect!{|item|item.to_f}
      k_sen<    end
  end
end

if k_sen.size>0

puts "hd"
open("temp.txt","r"){|f|
  while line=f.gets
    xy=line.split
    if xy[0]=~/^hq/
    elsif xy[0]=~/^pl|^#/
      kyokusen2=xy[0]
      print line
    elsif xy[0]=~/^\d|^-/
      kouten=[]
      xy.collect!{|item|item.to_f}
      n=0
      if kyokusen2=="\#"

        k_sen.each{|item|
          if sen_sen_kouten3(item,xy) !=nil
            x1=sen_sen_kouten3(item,xy)[0]
            y1=sen_sen_kouten3(item,xy)[1]

      if xy[0]==xy[2]
      kouten<< [x1,y1,xy[0],xy[1]] if (xy[1]-y1).abs>(xy[3]-y1).abs

      kouten<< [x1,y1,xy[2],xy[3]] if (xy[1]-y1).abs<(xy[3]-y1).abs
      else
      kouten<< [x1,y1,xy[0],xy[1]] if (xy[0]-x1).abs>(xy[2]-x1).abs

      kouten<< [x1,y1,xy[2],xy[3]] if (xy[0]-x1).abs<(xy[2]-x1).abs

            end
            n+=1
          end
        }
        if kouten.size>1
          kouten2=[]
          kouten.each{|item|
          kouten2<          itemx=item[2]-item[0]
          itemy=item[3]-item[1]
          itemxy=sqrt(itemx**2+itemy**2)
          kouten2x=kouten2[0][2]-kouten2[0][0]
          kouten2y=kouten2[0][3]-kouten2[0][1]
          kouten2xy=sqrt(kouten2x**2+kouten2y**2)
          kouten2<
          }

          puts kouten2[-1].join("\s")

        else
          puts kouten[0].join("\s")

        end
        print line if n==0
      else
        print line
      end
    else
      print line
    end
  end
}
else
printf("h#曲線がありません\n")
end

 テキストエディタはTeraPadで、TpZenHanというツールで半角変換をしておりま  す。
 なお「円間・点間接続」は、ありがたく活用させて頂いております。


Indexへ
(11324)←【11325】→(11339)
------------------------
【タイトル】改めて:外変ファイルのコピペの仕方
【記事番号】 11325 (11324)
【 日時 】06/04/27 23:57
【 発言者 】n-okusan

すいません。間違って送信してしまいました。(削除の方法が解りません(-_-;))
>お世話になります。
> 何方か、お分かりになる方がおいでになりましたら(とは言いましても、コジマ さんなのですが。大変不躾ですがお許し下さい。)、ご教示お願い致します。
> 当「相談室」の過去ログに掲載してありました外変ファイル(コジマさん作)を コピーしたのですが、実行出来ません。
> 申し訳ありませんが、何処がまずいのかご教示お願い致したいのです。
>
> 「一括伸縮(ex_l_pl)」(勝手につけました)
>
> C:\jww\外変集\一括伸縮\ex_l_pl.bat
>
>@REM 直線を曲線との交点まで一括伸縮
>@echo off
>REM #jw
>REM #cd
>REM #ht10
>REM #ht30
>REM #ht40
>REM #zz
>REM #zw
>REM #h2
>REM #e
>copy jwc_temp.txt temp.txt > nul
>ruby -Ks ex_l_pl.rb temp.txt > jwc_temp.txt
>goto end
>:end
>
> C:\jww\外変集\一括伸縮\ex_l_pl.rb
>
>include Math
>#sen1の線上とsen2の延長線上の交点を返す
>def sen_sen_kouten3(sen1,sen2)
>  if sen1[0]>sen1[2]
>    sen1[0],sen1[2]=sen1[2],sen1[0]
>    sen1[1],sen1[3]=sen1[3],sen1[1]
>  elsif sen1[0]==sen1[2]
>    if sen1[1]>sen1[3]
>      sen1[1],sen1[3]=sen1[3],sen1[1]
>    end
>  end
>
>  if sen2[0]>sen2[2]
>    sen2[0],sen2[2]=sen2[2],sen2[0]
>    sen2[1],sen2[3]=sen2[3],sen2[1]
>  elsif sen2[0]==sen2[2]
>    if sen2[1]>sen2[3]
>      sen2[1],sen2[3]=sen2[3],sen2[1]
>    end
>  end
>
>  sen1x=sen1[2]-sen1[0]
>  sen1y=sen1[3]-sen1[1]
>  sen1xy=sqrt(sen1x**2+sen1y**2)
>  sen1_arg=atan2(sen1y,sen1x)
>  x1_1=sen1[0]
>  x1_2=sen1[0]+sen1xy
>  y1_1=sen1[1]
>  y1_2=sen1[1]
>
>  x=sen2[0]-sen1[0]
>  y=sen2[1]-sen1[1]
>  xy=sqrt(x**2+y**2)
>  arg=atan2(y,x)
>  henkaku=arg-sen1_arg
>  x2_1=sen1[0]+xy*cos(henkaku)
>  y2_1=sen1[1]+xy*sin(henkaku)
>
>  x=sen2[2]-sen1[0]
>  y=sen2[3]-sen1[1]
>  xy=sqrt(x**2+y**2)
>  arg=atan2(y,x)
>  henkaku=arg-sen1_arg
>  x2_2=sen1[0]+xy*cos(henkaku)
>  y2_2=sen1[1]+xy*sin(henkaku)
>
>  x=x2_2-x2_1
>  y=y2_2-y2_1
>  delta=y/x
>
>
>  y=y1_1-y2_1
>  dx=y/delta
>
>
>  kouten_x=x2_1+dx
>  kouten_y=y1_1
>
>  if x1_1kouten_x
>    x=kouten_x-x1_1
>    kouten_xt=x1_1+x*cos(sen1_arg)
>    kouten_yt=y1_1+x*sin(sen1_arg)
>
>    return [kouten_xt,kouten_yt]
>  else
>    return nil
>  end
>end
>
>
>k_sen=[]
>while ARGF.gets
>  xy=split
>  if xy[0]=~/^pl|^\#/
>    kyokusen=xy[0]
>  end
>  if xy[0]=~/^\d|^-/
>    if kyokusen=="pl"
>      xy.collect!{|item|item.to_f}
>      k_sen<    end
>  end
>end
>
>if k_sen.size>0
>
>puts "hd"
>open("temp.txt","r"){|f|
>  while line=f.gets
>    xy=line.split
>    if xy[0]=~/^hq/
>    elsif xy[0]=~/^pl|^#/
>      kyokusen2=xy[0]
>      print line
>    elsif xy[0]=~/^\d|^-/
>      kouten=[]
>      xy.collect!{|item|item.to_f}
>      n=0
>      if kyokusen2=="\#"
>
>        k_sen.each{|item|
>          if sen_sen_kouten3(item,xy) !=nil
>            x1=sen_sen_kouten3(item,xy)[0]
>            y1=sen_sen_kouten3(item,xy)[1]
>
>      if xy[0]==xy[2]
>      kouten<< [x1,y1,xy[0],xy[1]] if (xy[1]-y1).abs>(xy[3]-y1).abs
>
>      kouten<< [x1,y1,xy[2],xy[3]] if (xy[1]-y1).abs<(xy[3]-y1).abs
>      else
>      kouten<< [x1,y1,xy[0],xy[1]] if (xy[0]-x1).abs>(xy[2]-x1).abs
>
>      kouten<< [x1,y1,xy[2],xy[3]] if (xy[0]-x1).abs<(xy[2]-x1).abs
>
>            end
>            n+=1
>          end
>        }
>        if kouten.size>1
>          kouten2=[]
>          kouten.each{|item|
>          kouten2<          itemx=item[2]-item[0]
>          itemy=item[3]-item[1]
>          itemxy=sqrt(itemx**2+itemy**2)
>          kouten2x=kouten2[0][2]-kouten2[0][0]
>          kouten2y=kouten2[0][3]-kouten2[0][1]
>          kouten2xy=sqrt(kouten2x**2+kouten2y**2)
>          kouten2<
>          }
>
>          puts kouten2[-1].join("\s")
>
>        else
>          puts kouten[0].join("\s")
>
>        end
>        print line if n==0
>      else
>        print line
>      end
>    else
>      print line
>    end
>  end
>}
>else
>printf("h#曲線がありません\n")
>end
>
> テキストエディタはTeraPadで、TpZenHanというツールで半角変換をしておりま  す。
> なお「円間・点間接続」は、ありがたく活用させて頂いております。


Indexへ
(11325)←【11339】→(11366)
------------------------
【タイトル】Re(1):外変ファイルのコピペk
【記事番号】 11339 (11324)
【 日時 】06/04/28 10:24
【 発言者 】art modanart@hotmail.com

▼n-okusanさん:
私もコジマさんには、いつもお世話になっております。
掲示板に書き込んで頂いた外部変形は、掲示板からピペされた側で全角スペースを半角スペースに置き換える必要があります。
こちらの環境では、該当の外部変形は動きますのでたぶんここが巧くいっていないのではないでしょうか。どうでしょうか。


Indexへ
(11339)←【11366】→(11371)
------------------------
【タイトル】Re(2):外変ファイルのコピペの仕方
【記事番号】 11366 (11339)
【 日時 】06/04/28 13:42
【 発言者 】n-okusan

▼artさん:
>掲示板に書き込んで頂いた外部変形は、掲示板からピペされた側で全角スペースを半角スペースに置き換える必要があります。
>こちらの環境では、該当の外部変形は動きますのでたぶんここが巧くいっていないのではないでしょうか。どうでしょうか。

ご返事ありがとうございます。
投稿にも書きました様に、半角変換はしております。
外部変形実行の条件として考えられる事は、
 1.スクリプトの配置 :他のRuby外変は動いております。
 2.外変ファイルのパス:通っていると思います。
以上の他に、何か条件があるのでしょうか。
私は、ファイルのコピペをした時に、何処かミスをしているのではないかと思っているのですが。
宜しくお願い致します。


Indexへ
(11366)←【11371】→(11373)
------------------------
【タイトル】Re(1):外変ファイルのコピペk
【記事番号】 11371 (11324)
【 日時 】06/04/28 14:45
【 発言者 】コジマ

▼n-okusanさん:

2、3箇所 おかしなところがあります。

↓↑を記入した部分です。

>@REM 直線を曲線との交点まで一括伸縮
>@echo off
>REM #jw
>REM #cd
>REM #ht10
>REM #ht30
>REM #ht40
>REM #zz
>REM #zw
>REM #h2
>REM #e
>copy jwc_temp.txt temp.txt > nul
>ruby -Ks ex_l_pl.rb temp.txt > jwc_temp.txt

↓不要です
>goto end
>:end
↑不要です

>include Math
>#sen1の線上とsen2の延長線上の交点を返す
>def sen_sen_kouten3(sen1,sen2)
>  if sen1[0]>sen1[2]
>    sen1[0],sen1[2]=sen1[2],sen1[0]
>    sen1[1],sen1[3]=sen1[3],sen1[1]
>  elsif sen1[0]==sen1[2]
>    if sen1[1]>sen1[3]
>      sen1[1],sen1[3]=sen1[3],sen1[1]
>    end
>  end
>
>  if sen2[0]>sen2[2]
>    sen2[0],sen2[2]=sen2[2],sen2[0]
>    sen2[1],sen2[3]=sen2[3],sen2[1]
>  elsif sen2[0]==sen2[2]
>    if sen2[1]>sen2[3]
>      sen2[1],sen2[3]=sen2[3],sen2[1]
>    end
>  end
>
>  sen1x=sen1[2]-sen1[0]
>  sen1y=sen1[3]-sen1[1]
>  sen1xy=sqrt(sen1x**2+sen1y**2)
>  sen1_arg=atan2(sen1y,sen1x)
>  x1_1=sen1[0]
>  x1_2=sen1[0]+sen1xy
>  y1_1=sen1[1]
>  y1_2=sen1[1]
>
>  x=sen2[0]-sen1[0]
>  y=sen2[1]-sen1[1]
>  xy=sqrt(x**2+y**2)
>  arg=atan2(y,x)
>  henkaku=arg-sen1_arg
>  x2_1=sen1[0]+xy*cos(henkaku)
>  y2_1=sen1[1]+xy*sin(henkaku)
>
>  x=sen2[2]-sen1[0]
>  y=sen2[3]-sen1[1]
>  xy=sqrt(x**2+y**2)
>  arg=atan2(y,x)
>  henkaku=arg-sen1_arg
>  x2_2=sen1[0]+xy*cos(henkaku)
>  y2_2=sen1[1]+xy*sin(henkaku)
>
>  x=x2_2-x2_1
>  y=y2_2-y2_1
>  delta=y/x
>
>
>  y=y1_1-y2_1
>  dx=y/delta
>
>
>  kouten_x=x2_1+dx
>  kouten_y=y1_1
>
>  if x1_1kouten_x
>    x=kouten_x-x1_1
>    kouten_xt=x1_1+x*cos(sen1_arg)
>    kouten_yt=y1_1+x*sin(sen1_arg)
>
>    return [kouten_xt,kouten_yt]
>  else
>    return nil
>  end
>end
>
>
>k_sen=[]
>while ARGF.gets
>  xy=split
>  if xy[0]=~/^pl|^\#/
>    kyokusen=xy[0]
>  end
>  if xy[0]=~/^\d|^-/


↓おかしい
>    if kyokusen=="pl"
>      xy.collect!{|item|item.to_f}
>      k_sen<    end
↑おかしい


    if kyokusen=="pl"
      xy.collect!{|item|item.to_f}
      k_sen    end
が正しい。

>  end
>end
>
>if k_sen.size>0
>
>puts "hd"
>open("temp.txt","r"){|f|
>  while line=f.gets
>    xy=line.split
>    if xy[0]=~/^hq/
>    elsif xy[0]=~/^pl|^#/
>      kyokusen2=xy[0]
>      print line
>    elsif xy[0]=~/^\d|^-/
>      kouten=[]
>      xy.collect!{|item|item.to_f}
>      n=0
>      if kyokusen2=="\#"
>
>        k_sen.each{|item|
>          if sen_sen_kouten3(item,xy) !=nil
>            x1=sen_sen_kouten3(item,xy)[0]
>            y1=sen_sen_kouten3(item,xy)[1]
>
>      if xy[0]==xy[2]
>      kouten<< [x1,y1,xy[0],xy[1]] if (xy[1]-y1).abs>(xy[3]-y1).abs
>
>      kouten<< [x1,y1,xy[2],xy[3]] if (xy[1]-y1).abs<(xy[3]-y1).abs
>      else
>      kouten<< [x1,y1,xy[0],xy[1]] if (xy[0]-x1).abs>(xy[2]-x1).abs
>
>      kouten<< [x1,y1,xy[2],xy[3]] if (xy[0]-x1).abs<(xy[2]-x1).abs
>
>            end
>            n+=1
>          end
>        }
>        if kouten.size>1
>          kouten2=[]
>          kouten.each{|item|
>          kouten2<          itemx=item[2]-item[0]
>          itemy=item[3]-item[1]
>          itemxy=sqrt(itemx**2+itemy**2)
>          kouten2x=kouten2[0][2]-kouten2[0][0]
>          kouten2y=kouten2[0][3]-kouten2[0][1]
>          kouten2xy=sqrt(kouten2x**2+kouten2y**2)
>          kouten2<
>          }
>
>          puts kouten2[-1].join("\s")
>
>        else
>          puts kouten[0].join("\s")
>
>        end
>        print line if n==0
>      else
>        print line
>      end
>    else
>      print line
>    end
>  end
>}
>else
>printf("h#曲線がありません\n")
>end
>
> テキストエディタはTeraPadで、TpZenHanというツールで半角変換をしておりま  す。
> なお「円間・点間接続」は、ありがたく活用させて頂いております。


Indexへ
(11371)←【11373】→(11393)
------------------------
【タイトル】Re(2):外変ファイルのコピペk
【記事番号】 11373 (11371)
【 日時 】06/04/28 14:49
【 発言者 】コジマ

>
>    if kyokusen=="pl"
>      xy.collect!{|item|item.to_f}
>      k_sen>    end
>が正しい。


    if kyokusen=="pl"
      xy.collect!{|item|item.to_f}
      k_sen<    end
が正しいの間違いです。


Indexへ
(11373)←【11393】→(11402)
------------------------
【タイトル】Re(3):外変ファイルのコピペの仕方
【記事番号】 11393 (11373)
【 日時 】06/04/28 20:26
【 発言者 】n-okusan

コジマさん、ありがとうございます。
今だ、実行出来ません。
下記が、DOS窓に表記されております。
あつかましいお願いで申し訳ありませんが、何処がまずいのかご教示をお願いしたいのでが、宜しくお願い致します。

ex_l_pl.rb:129: syntax error
          }
           ^
ex_l_pl.rb:133: syntax error
        else
          ^
ex_l_pl.rb:136: syntax error
        end
          ^
ex_l_pl.rb:138: syntax error
      else
        ^
ex_l_pl.rb:140: syntax error
      end
        ^
ex_l_pl.rb:143: syntax error
    end
      ^
ex_l_pl.rb:148: syntax error
続行するには何かキーを押してください . . .


Indexへ
(11393)←【11402】→(11413)
------------------------
【タイトル】Re(4):外変ファイルのコピペの仕方
【記事番号】 11402 (11393)
【 日時 】06/04/29 07:50
【 発言者 】コジマ

所々、スクリプトが書き換えらているみたいですね?

埒があかないので、再度、スクリプトを記載します。

前回の文に、多少手を加えてあります。


include Math
#sen1の線上とsen2の延長線上の交点を返す
def sen_sen_kouten3(sen1,sen2)

    sen1x=sen1[2]-sen1[0]
    sen1y=sen1[3]-sen1[1]
    sen1xy=sqrt(sen1x**2+sen1y**2)
    sen1_arg=atan2(sen1y,sen1x)
    x1_1=sen1[0]
    x1_2=sen1[0]+sen1xy
    y1_1=sen1[1]
    y1_2=sen1[1]

    x=sen2[0]-sen1[0]
    y=sen2[1]-sen1[1]
    xy=sqrt(x**2+y**2)
    arg=atan2(y,x)
    henkaku=arg-sen1_arg
    x2_1=sen1[0]+xy*cos(henkaku)
    y2_1=sen1[1]+xy*sin(henkaku)

    x=sen2[2]-sen1[0]
    y=sen2[3]-sen1[1]
    xy=sqrt(x**2+y**2)
    arg=atan2(y,x)
    henkaku=arg-sen1_arg
    x2_2=sen1[0]+xy*cos(henkaku)
    y2_2=sen1[1]+xy*sin(henkaku)

    x=x2_2-x2_1
    y=y2_2-y2_1
    delta=y/x

    y=y1_1-y2_1
    dx=y/delta

    kouten_x=x2_1+dx
    kouten_y=y1_1

    if x1_1kouten_x
        x=kouten_x-x1_1
        kouten_xt=x1_1+x*cos(sen1_arg)
        kouten_yt=y1_1+x*sin(sen1_arg)

        return [kouten_xt,kouten_yt]
    else
        return nil
    end
end

#線と線の交点を返す(延長線上は含まない)

def sen_sen_kouten(sen1,sen2)

    sen1x=sen1[2]-sen1[0]
    sen1y=sen1[3]-sen1[1]
    sen1xy=sqrt(sen1x**2+sen1y**2)
    sen1_arg=atan2(sen1y,sen1x)
    x1_1=sen1[0]
    x1_2=sen1[0]+sen1xy
    y1_1=sen1[1]
    y1_2=sen1[1]

    x=sen2[0]-sen1[0]
    y=sen2[1]-sen1[1]
    xy=sqrt(x**2+y**2)
    arg=atan2(y,x)
    henkaku=arg-sen1_arg
    x2_1=sen1[0]+xy*cos(henkaku)
    y2_1=sen1[1]+xy*sin(henkaku)

    x=sen2[2]-sen1[0]
    y=sen2[3]-sen1[1]
    xy=sqrt(x**2+y**2)
    arg=atan2(y,x)
    henkaku=arg-sen1_arg
    x2_2=sen1[0]+xy*cos(henkaku)
    y2_2=sen1[1]+xy*sin(henkaku)

    x=x2_2-x2_1
    y=y2_2-y2_1
    delta=y/x

    if ika3(y2_1)>=ika3(y1_1) &&
        ika3(y2_2)<=ika3(y1_1) or
        ika3(y2_1)<=ika3(y1_1) &&
        ika3(y2_2)>=ika3(y1_1)

        y=y1_1-y2_1
        dx=y/delta
        kouten_x=x2_1+dx
        kouten_y=y1_1

        if kouten_x>=x1_1 && kouten_x<=x1_2
            x=kouten_x-x1_1
            y=kouten_y-y1_1
            xy=sqrt(x**2+y**2)
            kouten_xt=x1_1+xy*cos(sen1_arg)
            kouten_yt=y1_1+xy*sin(sen1_arg)

            return [kouten_xt,kouten_yt]
        end
    end
end
def ika3(x)
    a=(((x.to_f)*1000).to_i/1000.to_f)

    return a
end

#範囲の内(true)外(false)を返す
def area(x,y)
    hn=[]
    open("temp.txt","r"){|f|
    while line=f.gets
        xy =line.split
        if xy[0] =~ /^hn/
            hnx1=xy[1].to_f
            hny1=xy[2].to_f
            hnx2=xy[3].to_f
            hny2=xy[4].to_f

            hn<<[hnx1,hny1,hnx1,hny2]
            hn<<[hnx1,hny2,hnx2,hny2]
            hn<<[hnx2,hny2,hnx2,hny1]
            hn<<[hnx2,hny1,hnx1,hny1]
        end
    end
    }
    zahyo=[]
    hn.each{|item|zahyo<
    if zahyo.size==1 or zahyo.size>1 && zahyo.size%2==1
        return true
    else
        return false
    end
end
k_sen=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^[^\d,-]/
        kyokusen=xy[0]
    end
    if xy[0]=~/^\d|^-/
        if kyokusen=="pl"
            xy.collect!{|item|item.to_f}
            k_sen<        end
    end
end

if k_sen.size>0

puts "hd"
open("temp.txt","r"){|f|
    while line=f.gets
        xy=line.split
        if xy[0]=~/^hq/
        elsif xy[0]=~/^[^\d,-]/
            kyokusen2=xy[0]
            print line
        elsif xy[0]=~/^\d|^-/
            kouten=[]
            xy.collect!{|item|item.to_f}
            n=0
            if kyokusen2!="pl"

                k_sen.each{|item|
                    if sen_sen_kouten3(item,xy) !=nil

                        x1=sen_sen_kouten3(item,xy)[0]
                        y1=sen_sen_kouten3(item,xy)[1]

                        if xy[0]==xy[2]
                            if area(xy[2],xy[3]) && area(xy[0],xy[1])==false
                                kouten<< [x1,y1,xy[0],xy[1]]
                            elsif area(xy[0],xy[1]) && area(xy[2],xy[3])==false
                                kouten<< [x1,y1,xy[2],xy[3]]
                            else
                                kouten<< [x1,y1,xy[2],xy[3]] if (xy[1]-y1).abs<(xy[3]-y1).abs;kouten<< [x1,y1,xy[0],xy[1]] if (xy[1]-y1).abs>(xy[3]-y1).abs
                            end


                        else
                            if area(xy[2],xy[3]) && area(xy[0],xy[1])==false
                                kouten<< [x1,y1,xy[0],xy[1]]
                            elsif area(xy[0],xy[1]) && area(xy[2],xy[3])==false
                                kouten<< [x1,y1,xy[2],xy[3]]
                            else
                                kouten<< [x1,y1,xy[2],xy[3]] if (xy[0]-x1).abs<(xy[2]-x1).abs;kouten<< [x1,y1,xy[0],xy[1]] if (xy[0]-x1).abs>(xy[2]-x1).abs
                            end
                        end
                        n+=1
                    end
                }

                if kouten.size>1
                    kouten2=[]
                    kouten.each{|item|
                    kouten2<                    itemx=item[2]-item[0]
                    itemy=item[3]-item[1]
                    itemxy=sqrt(itemx**2+itemy**2)
                    kouten2x=kouten2[0][2]-kouten2[0][0]
                    kouten2y=kouten2[0][3]-kouten2[0][1]
                    kouten2xy=sqrt(kouten2x**2+kouten2y**2)
                    kouten2<                    }
                    puts kouten2[-1].join("\s")
                else
                    puts kouten[0].join("\s") if n>0
                end
                print line if n==0
            else
                print line
            end
        else
            print line
        end
    end
}
else
printf("h#曲線がありません\n")
end


Indexへ
(11402)←【11413】//(11327)
------------------------
【タイトル】Re(5):外変ファイルのコピペの仕方
【記事番号】 11413 (11402)
【 日時 】06/04/29 23:35
【 発言者 】n-okusan

▼コジマさん:
>所々、スクリプトが書き換えらているみたいですね?
>埒があかないので、再度、スクリプトを記載します。
>前回の文に、多少手を加えてあります。

お忙しい中、何度もご返事ありがとうございました。
おかげさまで、無事、実行となりました。充分に活用させて頂きます。
なお、コピペしたスクリプトファイルを過去ログ(「相談室」05/08/21.2938)のものと比較した所、前回ご指示を受けた箇所等が違っておりました?
今後共、宜しくお願い致します。