0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「機械工学で学ぶオブジェクト指向プログラミング#(その1)使用例」様を参考に、sympyのBeamでやってみたい。

Last updated at Posted at 2024-12-04

・(2024−12−05)タイトルに#使用例を追加しました。
旧タイトル 
「機械工学で学ぶオブジェクト指向プログラミング」様を参考に、sympyのBeamでやってみたい。

・SFD と BMDは、ver0.2で対応予定です。

オリジナル

・#使用例

sympyのBeamで 「集中荷重による変位」

・作図しました。

# ver0.1
from sympy import *
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E,I,P =symbols('E,I,P')
l,a,lp=symbols('l,a,lp',positive=True)
var("R,x,M,A1,A2,M1,M2")
var("p0,m0")
R1,M1=symbols('R1,M1')
R2,M2=symbols('R2,M2')
def myBeam_Katamoti_Tawami(l,E,I,P):
    b=Beam(l,E,I)
    b.apply_load(P,l,-1) 
    b.apply_load(R,0,-1)   
    b.apply_load(M,0,-2)
    b.bc_deflection.append((0,0))
    b.bc_slope     .append((0,0))
    b.solve_for_reaction_loads(R,M)
    return b.deflection()
def myBeam_Katamoti_lP_Sakuzu(l,E,I,P ,lp):
    b=Beam(l,E,I)
    b.apply_load(P,lp,-1) 
    b.apply_support(0, 'fixed')
    p = b.draw()  
    p.show() 
    return 
δ =myBeam_Katamoti_Tawami(a,E,I,P)             
δa=myBeam_Katamoti_Tawami(a,E,I,P).subs({x:a})   #;print("#",δa)
θa=diff(δ,x)                      .subs({x:a})   #;print("#",θa)
δl=δa+(l-a)*θa
rep={l:5000,a:4000,E:205,I:8333333,P:1}
print("# 集中荷重による変位:",float(δl.subs(rep)))
# # 作図
myBeam_Katamoti_lP_Sakuzu(5000,205,8333333,1,4000)
# 集中荷重による変位: 17.17073239414637

111.png

sympyのBeamで 「分布荷重による変位」

・勉強中

いつもの? sympyの実行環境と 参考のおすすめです。

(テンプレート)  開発環境

いつもと違うおすすめです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?