(2025-04-03)・タイトルが間違っていたので直しました。問題8A)→問題9A)
オリジナル
問題9A) P124 <「材料力学演習(20221021)一括(ver.3.3)」を勉強したい。#sympy
???タブレット等で、pdfを開く事ができないかも。???
sympyで
・ver0.1
# ver0.1
from sympy import *
var('P1,P2,P3,a,b,c,d,x,RA')
MAC =RA*x ;FAC=diff(MAC,x)
MCD =MAC-P1*(x-a) ;FCD=diff(MCD,x)
MDE =MCD-P2*(x-a-b) ;FDE=diff(MDE,x)
MEB =MDE-P3*(x-a-b-c) ;FEB=diff(MEB,x)
RA_sol =solve(Eq(MEB.subs({x:a+b+c+d}),0),RA)[0] #;print("#",RA_sol)
RA_sol1=(RA_sol).simplify() ;print("#",RA_sol1)
RA_sol2=(RA_sol).collect(P1).collect(P2) ;print("#",RA_sol2)
print("#",P1+P2+P3-RA)
# (P1*b + P1*c + P1*d + P2*c + P2*d + P3*d)/(a + b + c + d)
# (P1*(b + c + d) + P2*(c + d) + P3*d)/(a + b + c + d)
# P1 + P2 + P3 - RA
sympyのBeamで作図
・ver0.2
作図だけ。値はテキトー。BMDは?省略です。いい値を教えて下さい。
矢印を消したらダメかもしれません。
# ver0.4
from sympy import *
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E , I =symbols('E , I ')
var('R1,R2,x')
def extract_elements_with_symbol(data_list):
"""
リストの要素のうち、最初の要素がsympyのSymbolである要素を抽出する関数。
Args:
data_list: 要素がタプルのリスト。
Returns:
最初の要素がsympyのSymbolである要素のリスト。
"""
result = []
for item in data_list:
if isinstance(item[0], Symbol):
result.append(item)
return result
def myRemoveDrawShow(b):
for item in extract_elements_with_symbol(b.applied_loads):
b.remove_load(item[0], item[1],item[2])
p = b.draw()
p.show()
return
# #######################################
P1,P2,P3,a,b,c,d=1,1,1,1,1,1,1
AC,AD,AE,AB =a,a+b,a+b+c,a+b+c+d
b = Beam(AB, E, I)
b.apply_load (R1, 0,-1)
# b.apply_load (P1,a+b,-1)
b.apply_load (P1,AC,-1)
b.apply_load (P2,AD,-1)
b.apply_load (P3,AE,-1)
b.apply_load (R2,AB,-1)
# b.solve_for_reaction_loads(R1, R2)
# # # #######################################
# b.plot_shear_force()
# # b.plot_bending_moment()
b.apply_support (0 ,"pin" )
b.apply_support (AB,"roller")
myRemoveDrawShow(b)
# # p = b.draw()
# # p.show()
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
参考文献
>一部に等分布荷重を受ける単純支持はり
>JSME p89
ちょっと違うかも
>張出しばり 1)
>構造力学公式集 表5.5 張出しばりの公式 p154