Jw_cad 相談室−その2 New

 Jw_cad についての相談の場としてお使いください
情報の交換には Jw_cad 情報交換室 をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
71 / 1497     ←次へ | 前へ→

外部変形
 kojima  - 20/9/29(火) 17:59 -
▼土木やさん:
>お世話になります 
>手摺の笠木(手で握るところ)と切欠いた支柱を溶接接合しようと思って
>います
>支柱の切り欠き展開図の書き方をどなたかお教え願いませんか
>
>材質はステンレスです
>笠木 Φ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

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg...@ai126250106010.11.tss.access-internet.ne.jp>
・ツリー全体表示

展開図 土木や 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

71 / 1497     ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
 781625
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3
Jw_cad Copyright (C)1997-2016 Jiro Shimizu & Yoshifumi Tanaka