Page 1300 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼展開図 土木や 20/9/28(月) 8:44 ┣Re:展開図 KEN-E 20/9/28(月) 18:32 ┣外部変形 kojima 20/9/29(火) 17:59 ┃ ┣外部変形2 kojima 20/10/1(木) 16:37 ┃ ┗Re:外部変形 土木や 20/10/1(木) 18:23 ┗Re:展開図 やま 20/9/30(水) 10:17 ─────────────────────────────────────── ■題名 : 展開図 ■名前 : 土木や ■日付 : 20/9/28(月) 8:44 -------------------------------------------------------------------------
お世話になります 手摺の笠木(手で握るところ)と切欠いた支柱を溶接接合しようと思って います 支柱の切り欠き展開図の書き方をどなたかお教え願いませんか 材質はステンレスです 笠木 Φ38 t1.5 支柱 Φ32 t1.5 笠木の 30℃ 支柱は垂直です よろしくお願いします |
▼土木やさん: >お世話になります >手摺の笠木(手で握るところ)と切欠いた支柱を溶接接合しようと思って >います >支柱の切り欠き展開図の書き方をどなたかお教え願いませんか > >材質はステンレスです >笠木 Φ38 t1.5 >支柱 Φ32 t1.5 >笠木の 30℃ >支柱は垂直です > >よろしくお願いします 「手摺 CAD」「手摺詳細 CAD」等で ネット検索すると複数メーカーがヒットしますので イメージに近い物のデーターをダウンロードして 多少アレンジされれば良いのでは? |
▼土木やさん: >お世話になります >手摺の笠木(手で握るところ)と切欠いた支柱を溶接接合しようと思って >います >支柱の切り欠き展開図の書き方をどなたかお教え願いませんか > >材質はステンレスです >笠木 Φ38 t1.5 >支柱 Φ32 t1.5 >笠木の 30℃ >支柱は垂直です > >よろしくお願いします バッチファイルにrubyスクリプトを記述した外部変形。 Rubyのインストールが必要です。以下を参照してください。 https://www.javadrive.jp/ruby/install/index1.html @REM 主円筒にY接続する円筒の展開図 @echo off REM #jww REM #cd REM #c主円筒の直径 無指定:38/_/a REM #c円筒の長さ 無指定:1000.0/_/b REM #c穴の直径 無指定:32/_/c REM #c円の分割角度 無指定:10/_/d REM #c円筒の接続角度 無指定:60/_/e REM #0 REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1 %2 %3 %4 %5 > jwc_temp.txt goto end #!ruby -Ks include Math def sen_sen_kouten2(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 x=kouten_x-x1_1 kouten_xt=x1_1+x*cos(sen1_arg) kouten_yt=y1_1+x*sin(sen1_arg) if kouten_xt && kouten_yt return [kouten_xt,kouten_yt] else nil end end d1=38.0;d2=32.0;l2=1000.0;bunkaku=10.0;l1=1000.0;kakudo=60.0 while ARGV.size>1 case argument=ARGV.pop when /\/a/ d1=argument[2..-1].to_f when /\/b/ l2=argument[2..-1].to_f when /\/c/ d2=argument[2..-1].to_f when /\/d/ bunkaku=argument[2..-1].to_f when /\/e/ kakudo=argument[2..-1].to_f end end r1=d1/2;r2=d2/2 n=(360/bunkaku).to_i bun_arg=bunkaku*2*PI/360 kakudo_arg=kakudo*2*PI/360 kakudo_arg2=kakudo_arg+PI/2 x1,y1=l1,-r1 x2,y2=l2*cos(kakudo_arg),l2*sin(kakudo_arg) a2=r2/sin(kakudo_arg) sen3=[a2,0,a2+r2*cos(kakudo_arg2),r2*sin(kakudo_arg2)] arg=0 zahyo=[] (n+1).times{ arg_x2=x2+r2*cos(arg+kakudo_arg-PI/2) arg_y2=y2+r2*sin(arg+kakudo_arg-PI/2) sen2=[arg_x2,arg_y2,arg_x2+r2*cos(kakudo_arg),arg_y2+r2*sin(kakudo_arg)] arg_l=r2*sin(arg) arg_y=sqrt(r1**2-arg_l**2) arg1=atan2(arg_y,arg_l) arg_x1=x1+r1*cos(arg1) arg_y1=y1+r1*sin(arg1) sen1=[arg_x1,arg_y1,arg_x1+r1,arg_y1] kouten_x1,kouten_y1=sen_sen_kouten2(sen1,sen2) kouten_x2,kouten_y2=sen_sen_kouten2(sen3,sen2) y=hypot(kouten_y2-kouten_y1,kouten_x2-kouten_x1) r2_l=r2*arg zahyo<<[r2_l,-y] arg += bun_arg } puts "pl" zahyo.each{|a,b|puts("#{a} #{b}")} puts "#" printf("%.11f %.11f %.11f %.11f\n",0,l2,r2*2*PI,l2) printf("%.11f %.11f %.11f %.11f\n",0,l2,zahyo[0][0],zahyo[0][1]) printf("%.11f %.11f %.11f %.11f\n",r2*2*PI,l2,zahyo[-1][0],zahyo[-1][1]) open("座標.txt","w"){|f| f.printf("%4s%10s%10s\n","点名","X座標","Y座標") point=1 zahyo.each{|a,b| puts("pt #{a} #{b}") f.printf("%4d %10.3f %10.3f\n",point,a,b) point += 1 } } system("notepad 座標.txt") __END__ :end |
○手摺本体側の展開図作図用 前回のスクリプト共々、2008年に作っていたものです。 入力部分のデフォルト値のみ変更しました。 @REM 円筒がY接続された主円筒の展開図 @echo off REM #jww REM #cd REM #c主円筒の直径 無指定:38.0/_/a REM #c円筒の長さ 無指定:1000.0/_/b REM #c穴の直径 無指定:32.0/_/c REM #c円の分割角度 無指定:10/_/d REM #c円筒の接続角度 無指定:60/_/e REM #0 REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1 %2 %3 %4 %5 > jwc_temp.txt goto end #!ruby -Ks include Math def sen_sen_kouten2(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 x=kouten_x-x1_1 kouten_xt=x1_1+x*cos(sen1_arg) kouten_yt=y1_1+x*sin(sen1_arg) if kouten_xt && kouten_yt return [kouten_xt,kouten_yt] else nil end end d1=38.0;d2=32.0;l2=1000.0;bunkaku=10.0;l1=1000.0;kakudo=60.0 while ARGV.size>1 case argument=ARGV.pop when /\/a/ d1=argument[2..-1].to_f when /\/b/ l1=argument[2..-1].to_f when /\/c/ d2=argument[2..-1].to_f when /\/d/ bunkaku=argument[2..-1].to_f when /\/e/ kakudo=argument[2..-1].to_f end end r1=d1/2;r2=d2/2 n=(360/bunkaku).to_i bun_arg=bunkaku*2*PI/360 kakudo_arg=kakudo*2*PI/360 kakudo_arg2=kakudo_arg+PI/2 x1,y1=l1,-r1 x2,y2=l2*cos(kakudo_arg),l2*sin(kakudo_arg) a2=r2/sin(kakudo_arg) sen3=[a2,0,a2+r2*cos(kakudo_arg2),r2*sin(kakudo_arg2)] arg=0 zahyo=[] (n+1).times{ arg_x2=x2+r2*cos(arg+kakudo_arg) arg_y2=y2+r2*sin(arg+kakudo_arg) sen2=[arg_x2,arg_y2,arg_x2+r2*cos(kakudo_arg),arg_y2+r2*sin(kakudo_arg)] arg_l=r2*cos(arg) arg_y=sqrt(r1**2-arg_l**2) arg1=atan2(arg_y,arg_l) arg_x1=x1+r1*cos(arg1) arg_y1=y1+r1*sin(arg1) sen1=[arg_x1,arg_y1,arg_x1+r1,arg_y1] kouten_x1,kouten_y1=sen_sen_kouten2(sen1,sen2) if arg1<PI/2 r1_l=r1*(PI/2-arg1) else r1_l=-r1*(arg1-PI/2) end zahyo<<[kouten_x1,r1_l] arg += bun_arg } puts "pl" zahyo.each{|a,b|puts("#{a} #{b}")} puts "#" printf("%.11f %.11f %.11f %.11f\n",l1/2,r1*PI,-l1/2,r1*PI) printf("%.11f %.11f %.11f %.11f\n",l1/2,-r1*PI,-l1/2,-r1*PI) printf("%.11f %.11f %.11f %.11f\n",l1/2,r1*PI,l1/2,-r1*PI) printf("%.11f %.11f %.11f %.11f\n",-l1/2,r1*PI,-l1/2,-r1*PI) open("座標.txt","w"){|f| f.printf("%4s%10s%10s\n","点名","X座標","Y座標") point=1 zahyo.each{|a,b| puts("pt #{a} #{b}") f.printf("%4d %10.3f %10.3f\n",point,a,b) point += 1 } } system("notepad 座標.txt") __END__ :end |
▼kojimaさん: >▼土木やさん: >>お世話になります >>手摺の笠木(手で握るところ)と切欠いた支柱を溶接接合しようと思って >>います >>支柱の切り欠き展開図の書き方をどなたかお教え願いませんか >> >>材質はステンレスです >>笠木 Φ38 t1.5 >>支柱 Φ32 t1.5 >>笠木の 30℃ >>支柱は垂直です >> >>よろしくお願いします > >バッチファイルにrubyスクリプトを記述した外部変形。 >Rubyのインストールが必要です。以下を参照してください。 >https://www.javadrive.jp/ruby/install/index1.html > > >@REM 主円筒にY接続する円筒の展開図 >@echo off >REM #jww >REM #cd >REM #c主円筒の直径 無指定:38/_/a >REM #c円筒の長さ 無指定:1000.0/_/b >REM #c穴の直径 無指定:32/_/c >REM #c円の分割角度 無指定:10/_/d >REM #c円筒の接続角度 無指定:60/_/e >REM #0 >REM #e >copy jwc_temp.txt temp.txt > nul >ruby -x %~f0 temp.txt %1 %2 %3 %4 %5 > jwc_temp.txt >goto end > >#!ruby -Ks >include Math >def sen_sen_kouten2(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 > > x=kouten_x-x1_1 > > kouten_xt=x1_1+x*cos(sen1_arg) > kouten_yt=y1_1+x*sin(sen1_arg) > > if kouten_xt && kouten_yt > return [kouten_xt,kouten_yt] > else > nil > end >end > >d1=38.0;d2=32.0;l2=1000.0;bunkaku=10.0;l1=1000.0;kakudo=60.0 >while ARGV.size>1 > case argument=ARGV.pop > when /\/a/ > d1=argument[2..-1].to_f > when /\/b/ > l2=argument[2..-1].to_f > when /\/c/ > d2=argument[2..-1].to_f > when /\/d/ > bunkaku=argument[2..-1].to_f > when /\/e/ > kakudo=argument[2..-1].to_f > end >end > >r1=d1/2;r2=d2/2 >n=(360/bunkaku).to_i >bun_arg=bunkaku*2*PI/360 >kakudo_arg=kakudo*2*PI/360 >kakudo_arg2=kakudo_arg+PI/2 > >x1,y1=l1,-r1 >x2,y2=l2*cos(kakudo_arg),l2*sin(kakudo_arg) >a2=r2/sin(kakudo_arg) >sen3=[a2,0,a2+r2*cos(kakudo_arg2),r2*sin(kakudo_arg2)] >arg=0 >zahyo=[] >(n+1).times{ > arg_x2=x2+r2*cos(arg+kakudo_arg-PI/2) > arg_y2=y2+r2*sin(arg+kakudo_arg-PI/2) > sen2=[arg_x2,arg_y2,arg_x2+r2*cos(kakudo_arg),arg_y2+r2*sin(kakudo_arg)] > > arg_l=r2*sin(arg) > arg_y=sqrt(r1**2-arg_l**2) > > arg1=atan2(arg_y,arg_l) > arg_x1=x1+r1*cos(arg1) > arg_y1=y1+r1*sin(arg1) > sen1=[arg_x1,arg_y1,arg_x1+r1,arg_y1] > > kouten_x1,kouten_y1=sen_sen_kouten2(sen1,sen2) > kouten_x2,kouten_y2=sen_sen_kouten2(sen3,sen2) > > y=hypot(kouten_y2-kouten_y1,kouten_x2-kouten_x1) > r2_l=r2*arg > zahyo<<[r2_l,-y] > > arg += bun_arg >} >puts "pl" >zahyo.each{|a,b|puts("#{a} #{b}")} >puts "#" >printf("%.11f %.11f %.11f %.11f\n",0,l2,r2*2*PI,l2) >printf("%.11f %.11f %.11f %.11f\n",0,l2,zahyo[0][0],zahyo[0][1]) >printf("%.11f %.11f %.11f %.11f\n",r2*2*PI,l2,zahyo[-1][0],zahyo[-1][1]) > >open("座標.txt","w"){|f| > f.printf("%4s%10s%10s\n","点名","X座標","Y座標") > point=1 > zahyo.each{|a,b| > puts("pt #{a} #{b}") > f.printf("%4d %10.3f %10.3f\n",point,a,b) > point += 1 > } >} >system("notepad 座標.txt") >__END__ >:end 皆さんありがとうございます 僕が図面にこだわったのは、展開図を支柱に写し取りサンダーで きれいに削れば、ティグ溶接がきれいに仕上がるかと思いました 早速のアドバイスありがとうございました。参考に致したいと思います。 |
▼土木やさん: >お世話になります >手摺の笠木(手で握るところ)と切欠いた支柱を溶接接合しようと思って >います >支柱の切り欠き展開図の書き方をどなたかお教え願いませんか パイプの接合部の加工は 実際には通し材の笠木φ38に端部を加工した支柱φ32を溶接します。 φ32パイプを「パイプえぐり加工機」(正式名は不明)にセットして 端部を切り欠きします。 で、何が言いたいのかと言えば、展開図はいらない。 姿図(横から見た図)のラインも適当でかまわない。 ちゃんと作図すると結構面倒な作業になります。 私は、接楕円(平行四辺内接)で簡単に書きますが 文字にするとちょっと面倒なので省略。 |