JWW専用掲示板
(現在 過去ログ110 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■23440 / inTopicNo.1)  ダクトの複線
  
□投稿者/ まりも 4回-(2004/12/16(Thu) 15:57:14)

    記事内容:[|] 

    いつもお世話になっています。
    ダクトの複線の配管図のことなのですが、

    もし径が違うダクトを継ぐときなどの線記号変形等ありませんでしょうか?
    外部変形でも探してみたのですが見あたらなくて
    今はパラメトリックの倍率で太さを太くしています・・・。

    線をクリックして径を決めて、次の線をクリックして径を決めて
    自動的にジョイントをつくってくれるような外部変形を探していますが
    そんな便利なものを知っている方はご教授ください。





引用返信/返信 [メール受信/OFF] 削除キー/
■23448 / inTopicNo.2)  Re[1]: ダクトの複線
□投稿者/ コジマ 1回-(2004/12/17(Fri) 01:21:42)

    記事内容:[|] 

    外部変形にチャレンジしてみました。
    2線の後端と先端を違径ダクトで接続します。

    尚、この外部変形の実行には、mswin32 版 Ruby のインストールが必要です。
    以下で入手できます。
    http://www61.tok2.com/home2/gravelroad/libraries.html

    バッチファイルとスクリプトファイルは、念の為、
    コピペ後、全角スペースを半角スペースに一括置換してください。

    ◎バッチファイル(ファイル名 違径ダクト.bat)

    @REM 2線を指示して違径ダクトを作成
    @echo off
    REM #jww
    REM #cd
    REM #h0
    REM #1lnダクトを作図する線1を指示してください
    REM #2lnダクトを作図する線2を指示してください
    REM #c線1後端のダクトサイズを入力してください
    REM #c線2先端のダクトサイズを入力してください
    REM #e
    copy jwc_temp.txt temp.txt > nul
    ruby -Ks 違径ダクト.rb temp.txt %1 %2 > jwc_temp.txt

    ◎スクリプトファイル(ファイル名 違径ダクト.rb)

    BEGIN{
    $haba=30
    $size1=ARGV[1].to_f
    $size2=ARGV[2].to_f
    while ARGV.length > 1
    ARGV.pop
    end
    }
    def main
    date=[]
    while ARGF.gets
    xy =split
    if xy[0]=~/^[0-9]/ or xy[0]=~ /^-/
    xy.collect!{ |item| item.to_f }
    if xy[0]>xy[2]
    xy[0],xy[2],= xy[2],xy[0]
    xy[3],xy[1],= xy[1],xy[3]

    end
    if xy[0] == xy[2]
    if xy[1]>xy[3]
    xy[1],xy[3] = xy[3],xy[1]
    end
    end
    date< end
    end
    a=date[0]
    b=date[1]
    if a[0]==a[2]
    if a[1]>b[3]
    yokosen(a[0]-$size1/2-$haba,a[0]
    +$size1/2+$haba,a[1])
    yokosen(a[0]-$size1/2,a[0]+$size1/2,a[1]-$haba)
    tatesen(a[1],a[1]-$haba,a[0]-$size1/2)
    tatesen(a[1],a[1]-$haba,a[0]+$size1/2)

    yokosen(a[2]-$size2/2-$haba,b[2]
    +$size2/2+$haba,b[3])
    yokosen(a[2]-$size2/2,a[2]+$size2/2,b[3]+$haba)
    tatesen(b[3],b[3]+$haba,a[2]-$size2/2)
    tatesen(b[3],b[3]+$haba,a[2]+$size2/2)

    sen(a[0]-$size1/2,a[1]-$haba,b[2]-$size2/2,b[3]
    +$haba)
    sen(a[0]+$size1/2,a[1]-$haba,b[2]+$size2/2,b[3]
    +$haba)
    elsif b[3]>a[1]
    yokosen(a[2]-$size1/2-$haba,a[2]
    +$size1/2+$haba,a[3])
    yokosen(a[2]-$size1/2,a[2]+$size1/2,a[3]+$haba)
    tatesen(a[3],a[3]+$haba,a[2]-$size1/2)
    tatesen(a[3],a[3]+$haba,a[2]+$size1/2)

    yokosen(b[0]-$size2/2-$haba,b[0]
    +$size2/2+$haba,b[1])
    yokosen(b[0]-$size2/2,b[0]+$size2/2,b[1]-$haba)
    tatesen(b[1],b[1]-$haba,b[0]-$size2/2)
    tatesen(b[1],b[1]-$haba,b[0]+$size2/2)

    sen(a[2]-$size1/2,a[3]+$haba,b[0]-$size2/2,b
    [1]-$haba)
    sen(a[2]+$size1/2,a[3]+$haba,b[0]+$size2/2,b
    [1]-$haba)
    end
    else
    xa=a[2]-a[0];ya=a[3]-a[1];xya=Math.sqrt(xa**2+ya**2)
    dxa=xa/xya;dya=ya/xya
    xb=b[2]-b[0];yb=b[3]-b[1];xyb=Math.sqrt(xb**2+yb**2)
    dxb=xb/xyb;dyb=yb/xyb

    if a[0]>b[2]
    sen(a[0]-($size1/2+$haba)*dya,
    a[1]+($size1/2+$haba)*dxa,
    a[0]+($size1/2+$haba)*dya,
    a[1]-($size1/2+$haba)*dxa)

    sen(a[0]-$size1/2*dya-$haba*dxa,
    a[1]+$size1/2*dxa-$haba*dya,
    a[0]+$size1/2*dya-$haba*dxa,
    a[1]-$size1/2*dxa-$haba*dya)

    sen(a[0]-$size1/2*dya,
    a[1]+$size1/2*dxa,
    a[0]-$size1/2*dya-$haba*dxa,
    a[1]+$size1/2*dxa-$haba*dya)

    sen(a[0]+$size1/2*dya,
    a[1]-$size1/2*dxa,
    a[0]+$size1/2*dya-$haba*dxa,
    a[1]-$size1/2*dxa-$haba*dya)


    sen(b[2]-($size2/2+$haba)*dyb,
    b[3]+($size2/2+$haba)*dxb,
    b[2]+($size2/2+$haba)*dyb,
    b[3]-($size2/2+$haba)*dxb)

    sen(b[2]-$size2/2*dyb+$haba*dxb,
    b[3]+$size2/2*dxb+$haba*dyb,
    b[2]+$size2/2*dyb+$haba*dxb,
    b[3]-$size2/2*dxb+$haba*dyb)

    sen(b[2]-$size2/2*dyb,
    b[3]+$size2/2*dxb,
    b[2]-$size2/2*dyb+$haba*dxb,
    b[3]+$size2/2*dxb+$haba*dyb)

    sen(b[2]+$size2/2*dyb,
    b[3]-$size2/2*dxb,
    b[2]+$size2/2*dyb+$haba*dxb,
    b[3]-$size2/2*dxb+$haba*dyb)

    sen(a[0]+$size1/2*dya-$haba*dxa,
    a[1]-$size1/2*dxa-$haba*dya,
    b[2]+$size2/2*dyb+$haba*dxb,
    b[3]-$size2/2*dxb+$haba*dyb)

    sen(a[0]-$size1/2*dya-$haba*dxa,
    a[1]+$size1/2*dxa-$haba*dya,
    b[2]-$size2/2*dyb+$haba*dxb,
    b[3]+$size2/2*dxb+$haba*dyb)

    elsif b[0]>a[2]
    sen(b[0]-($size2/2+$haba)*dyb,
    b[1]+($size2/2+$haba)*dxb,
    b[0]+($size2/2+$haba)*dyb,
    b[1]-($size2/2+$haba)*dxb)

    sen(b[0]-$size2/2*dyb-$haba*dxb,
    b[1]+$size2/2*dxb-$haba*dyb,
    b[0]+$size2/2*dyb-$haba*dxb,
    b[1]-$size2/2*dxb-$haba*dyb)

    sen(b[0]-$size2/2*dyb,
    b[1]+$size2/2*dxb,
    b[0]-$size2/2*dyb-$haba*dxb,
    b[1]+$size2/2*dxb-$haba*dyb)

    sen(b[0]+$size2/2*dyb,
    b[1]-$size2/2*dxb,
    b[0]+$size2/2*dyb-$haba*dxb,
    b[1]-$size2/2*dxb-$haba*dyb)

    sen(a[2]-($size1/2+$haba)*dya,
    a[3]+($size1/2+$haba)*dxa,
    a[2]+($size1/2+$haba)*dya,
    a[3]-($size1/2+$haba)*dxa)

    sen(a[2]-$size1/2*dya+$haba*dxa,
    a[3]+$size1/2*dxa+$haba*dya,
    a[2]+$size1/2*dya+$haba*dxa,
    a[3]-$size1/2*dxa+$haba*dya)

    sen(a[2]-$size1/2*dya,
    a[3]+$size1/2*dxa,
    a[2]-$size1/2*dya+$haba*dxa,
    a[3]+$size1/2*dxa+$haba*dya)

    sen(a[2]+$size1/2*dya,
    a[3]-$size1/2*dxa,
    a[2]+$size1/2*dya+$haba*dxa,
    a[3]-$size1/2*dxa+$haba*dya)

    sen(b[0]+$size2/2*dyb-$haba*dxb,
    b[1]-$size2/2*dxb-$haba*dyb,
    a[2]+$size1/2*dya+$haba*dxa,
    a[3]-$size1/2*dxa+$haba*dya)

    sen(b[0]-$size2/2*dyb-$haba*dxb,
    b[1]+$size2/2*dxb-$haba*dyb,
    a[2]-$size1/2*dya+$haba*dxa,
    a[3]+$size1/2*dxa+$haba*dya)
    end
    end
    end
    def tatesen(y1, y2, x1)
    printf("%e %e %e %e\n", x1, y1, x1, y2)
    end
    def yokosen(x1, x2, y1)
    printf("%e %e %e %e\n", x1, y1, x2, y1)
    end
    def sen( x1, y1, x2, y2 )
    printf("%e %e %e %e\n", x1, y1, x2, y2)
    end
    main()




引用返信/返信 [メール受信/OFF] 削除キー/
■23449 / inTopicNo.3)  Re[2]: データが変わっている。
□投稿者/ コジマ 2回-(2004/12/17(Fri) 01:39:37)

    記事内容:[|] 

    この掲示板は、入力できない文字があるようです。
    入力したデータと違っています。
    コピペしても、動作しませんね。

    jw cad for Windows の掲示板に書き込んでおきます。
    こちらは、コピペ後、全角スペースを半角スペースに一括置換すれば
    動作します。
引用返信/返信 [メール受信/OFF] 削除キー/
■23457 / inTopicNo.4)  Re[3]:ruby初めてです。
□投稿者/ まりも 5回-(2004/12/17(Fri) 14:04:08)

    記事内容:[|] 

    コジマさん。本当にありがとうございます。
    なんでそんなにかっこいいのですか?うらやましい限りです。

    > jw cad for Windows の掲示板に書き込んでおきます。
    > こちらは、コピペ後、全角スペースを半角スペースに一括置換すれば
    > 動作します。

    教えてください。
    jw cad for Windows の掲示板 はどこですか?コードを探したのですが・・・。
    あと、バッチと、スクリプトはJWW本体の場所じゃなくてもいいですか?
引用返信/返信 [メール受信/OFF] 削除キー/
■23462 / inTopicNo.5)  Re[4]: :ruby初めてです。
□投稿者/ コジマ 3回-(2004/12/17(Fri) 15:02:44)
引用返信/返信 [メール受信/OFF] 削除キー/
■23469 / inTopicNo.6)  Re[5]: :ruby初めてです。
□投稿者/ まりも 6回-(2004/12/17(Fri) 16:08:22)

    記事内容:[|] 

    コジマさん。ありがとうございます。
    出来ました。すばらしくすばらしく涙が出てきそうです。
    ありがとうございました。

    外部変形のすばらしさを改めて実感しました。
    本当にありがとうございました。
解決済み!
引用返信/返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -