Indexへ
(17291)//【17292】→(17302)
------------------------
【タイトル】三角形の簡単な書き方ありますか。
【記事番号】 17292 (*)
【 日時 】06/11/28 10:47
【 発言者 】トトロ

JW初心者です。他のCADでは20年以上の経験があります。
JWで三角形を書くときに三辺がわかっているときは簡単に書けるのですが、底辺が書いてあって、高さと斜辺がわかるとき、あるいは斜辺が書いてあって底辺と高さがわかるとき、簡単に三角形を書く方法はありますでしょうか。
外編等ありましたら紹介いただけますでしょうか。
よろしくお願い致します。


Indexへ
(17292)←【17302】→(17308)
------------------------
【タイトル】Re(1):三角形の簡単な書き方ありますか。
【記事番号】 17302 (17292)
【 日時 】06/11/28 15:20
【 発言者 】コジマ

▼トトロさん:
>JW初心者です。他のCADでは20年以上の経験があります。
>JWで三角形を書くときに三辺がわかっているときは簡単に書けるのですが、底辺が書いてあって、高さと斜辺がわかるとき、

◎バッチファイル(ファイル名 三角形作図.bat)

@REM 線指示(底辺)・高さ・辺長入力で作図
@echo off
REM #jww
REM #cd
REM #1ln底辺の線を指示してください
REM #2作図方向を指示してください free(L) Read(R)
REM #c辺の長さを入力してください/_/a
REM #c高さを入力してください/_/b
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 三角形作図.rb temp.txt %1 %2 > jwc_temp.txt


◎スクリプトファイル(ファイル名 三角形作図.rb)

include Math
while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            l=argument[2..-1].to_f
        when /\/b/
            h=argument[2..-1].to_f
    end
end
def sen(x1,y1,x2,y2)
    printf("%.11f %.11f %.11f %.11f\n",x1,y1,x2,y2)
end
while ARGF.gets
    xy=split
    if xy[0] =~ /^\d|^-/
        xy.collect!{|item|item.to_f}
        ln=xy
    elsif xy[0] =~ /^hp1ln$/
        x1,y1=xy[1].to_f,xy[2].to_f
    elsif xy[0] =~ /^hp2$/
        x2,y2=xy[1].to_f,xy[2].to_f
    end
end
if h && l && l>h
    l1=sqrt((x1-ln[0])**2+(y1-ln[1])**2)
    l2=sqrt((x1-ln[2])**2+(y1-ln[3])**2)
    ln[0],ln[2],ln[1],ln[3]=ln[2],ln[0],ln[3],ln[1] if l1>l2
    arg1=atan2(ln[3]-ln[1],ln[2]-ln[0])
    arg2=atan2(y2-ln[1],x2-ln[0])
    henkaku=arg2-arg1
    y=l*sin(henkaku)
    lnx=sqrt(l**2-h**2)
    arg3=atan2(h,lnx)
    y<0 ? arg=arg1-arg3 : arg=arg1+arg3
    px=ln[0]+l*cos(arg)
    py=ln[1]+l*sin(arg)
    sen(ln[0],ln[1],ln[2],ln[3])
    sen(ln[0],ln[1],px,py)
    sen(ln[2],ln[3],px,py)
else
    printf("h#入力が不適当です\n")
end


>あるいは斜辺が書いてあって底辺と高さがわかるとき、簡単に三角形を書く方法はありますでしょうか。
>外編等ありましたら紹介いただけますでしょうか。

◎バッチファイル(ファイル名 三角形作図2.bat)

@REM 線指示(斜辺)・高さ・底辺長入力で作図
@echo off
REM #jww
REM #cd
REM #1ln斜辺の線を指示してください
REM #2作図方向を指示してください free(L) Read(R)
REM #c底辺の長さを入力してください/_/a
REM #c高さを入力してください/_/b
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 三角形作図2.rb temp.txt %1 %2 > jwc_temp.txt

◎スクリプトファイル(ファイル名 三角形作図2.rb)

include Math
while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            l=argument[2..-1].to_f
        when /\/b/
            h=argument[2..-1].to_f
    end
end
def sen(x1,y1,x2,y2)
    printf("%.11f %.11f %.11f %.11f\n",x1,y1,x2,y2)
end
while ARGF.gets
    xy=split
    if xy[0] =~ /^\d|^-/
        xy.collect!{|item|item.to_f}
        ln=xy
    elsif xy[0] =~ /^hp1ln$/
        x1,y1=xy[1].to_f,xy[2].to_f
    elsif xy[0] =~ /^hp2$/
        x2,y2=xy[1].to_f,xy[2].to_f
    end
end
hentyo=sqrt((ln[2]-ln[0])**2+(ln[3]-ln[1])**2)
if h && l && hentyo>h
    l1=sqrt((x1-ln[0])**2+(y1-ln[1])**2)
    l2=sqrt((x1-ln[2])**2+(y1-ln[3])**2)
    ln[0],ln[2],ln[1],ln[3]=ln[2],ln[0],ln[3],ln[1] if l1>l2
    arg1=atan2(ln[3]-ln[1],ln[2]-ln[0])
    arg2=atan2(y2-ln[1],x2-ln[0])
    henkaku=arg2-arg1
    y=l*sin(henkaku)
    lnx=sqrt(hentyo**2-h**2)
    arg3=atan2(h,lnx)
    y<0 ? arg=arg1-arg3 : arg=arg1+arg3
    px=ln[0]+l*cos(arg)
    py=ln[1]+l*sin(arg)
    sen(ln[0],ln[1],ln[2],ln[3])
    sen(ln[0],ln[1],px,py)
    sen(ln[2],ln[3],px,py)
else
    printf("h#入力が不適当です\n")
end


Indexへ
(17302)←【17308】→(17320)
------------------------
【タイトル】Re(2):三角形の簡単な書き方ありますか。
【記事番号】 17308 (17302)
【 日時 】06/11/28 16:38
【 発言者 】トトロ

▼コジマさん:
RESありがとうございます。
外編ではなく外変(外部変形)ですね。
これが外部変形というやつなのでしょうか。
.rbというファイルはどこに置いてどう扱えばよろしいのでしょうか。
同じフォルダにおいてbatを実行してみましたが、書かないようです。
よろしくお願い致します。


Indexへ
(17308)←【17320】→(17326)
------------------------
【タイトル】Re(3):三角形の簡単な書き方ありますか。
【記事番号】 17320 (17308)
【 日時 】06/11/28 18:00
【 発言者 】コジマ

▼トトロさん:
>▼コジマさん:
>RESありがとうございます。
>外編ではなく外変(外部変形)ですね。
>これが外部変形というやつなのでしょうか。
>.rbというファイルはどこに置いてどう扱えばよろしいのでしょうか。
>同じフォルダにおいてbatを実行してみましたが、書かないようです。
>よろしくお願い致します。

mswin32 版 Rubyのインストールが必要です。
以下で入手できます。インストール方法も参照してください。
http://www61.tok2.com/home2/gravelroad/tips/inst_msw.html

バッチファイル・スクリプトファイルとも全角スペースを半角スペースに一括置換してください。保存場所はどこでも可。


Indexへ
(17320)←【17326】→(17330)
------------------------
【タイトル】Re(4):三角形の簡単な書き方ありますか。
【記事番号】 17326 (17320)
【 日時 】06/11/28 20:17
【 発言者 】トトロ

RubyインストールしてSYSTEM32にruby.exeとかは出来ているのですが書けないですね。
三角形作図.rbはどこにあってもよいのですか。
どこがいけないのでしょうかね。


Indexへ
(17326)←【17330】→(17338)
------------------------
【タイトル】Re(5):三角形の簡単な書き方ありますか。
【記事番号】 17330 (17326)
【 日時 】06/11/28 23:07
【 発言者 】コジマ

▼トトロさん:
>RubyインストールしてSYSTEM32にruby.exeとかは出来ているのですが書けないですね。

解凍したときにサブフォルダが作成されていませんか?
サブフォルダごとSYSTEM32に展開(保存)されていると動作しません。

サブフォルダの中の全てのフォルダとファイルをSYSTEM32に移動してください。


>三角形作図.rbはどこにあってもよいのですか。
バッチファイルと同じフォルダに保存してください。


Indexへ
(17330)←【17338】→(17339)
------------------------
【タイトル】Re(6):三角形の簡単な書き方ありますか。
【記事番号】 17338 (17330)
【 日時 】06/11/29 10:38
【 発言者 】トトロ

▼コジマさん:
>▼トトロさん:
>>RubyインストールしてSYSTEM32にruby.exeとかは出来ているのですが書けないですね。
>
>解凍したときにサブフォルダが作成されていませんか?
>サブフォルダごとSYSTEM32に展開(保存)されていると動作しません。
>
>サブフォルダの中の全てのフォルダとファイルをSYSTEM32に移動してください。
>
移動しました。ですからSISTEM32にruby.exeがあります。
>
>>三角形作図.rbはどこにあってもよいのですか。
>バッチファイルと同じフォルダに保存してください。

同じフォルダにあります。

スペース全角→半角で失敗してるかもしれないですね。
もう一度やってみます。


Indexへ
(17338)←【17339】→(17344)
------------------------
【タイトル】Re(7):三角形の簡単な書き方ありますか。
【記事番号】 17339 (17338)
【 日時 】06/11/29 11:57
【 発言者 】コジマ

▼トトロさん:
>スペース全角→半角で失敗してるかもしれないですね。
>もう一度やってみます。

batファイルの末尾に pause を追記してから実行してみてください。
エラーメッセージが表示されます。


Indexへ
(17339)←【17344】//(17296)
------------------------
【タイトル】Re(8):三角形の簡単な書き方ありますか。
【記事番号】 17344 (17339)
【 日時 】06/11/29 13:22
【 発言者 】トトロ

出来ました。ありがとうございました。
エディター使い慣れていないもんで全角半角がよく分かっておりませんでした。
友人に助けてもらって何とか出来ました。
ありがたく使わせていただきます。