・タイトルを変更予定です。
・作図は、sympyのTrussです。トラス(その2)を作成未定。
パイソニスタの方へ
・辞書の値へのsubsがわかりませんでした。ChatGPT先生に聞きました。
おすすめのページを教えて下さい。
・Truss<SymPy 1.13.3 のDoc
https://docs.sympy.org/latest/modules/physics/continuum_mechanics/truss.html
オリジナル Youtube
・「建築士試験【構造063】構造力学/トラスの呪文(!?)のまとめ(vol.0211)」
建築士試験マニア/はまちゃん 様
(0:00~19:52) フル
https://youtu.be/v1cTRJzOoAI
(0:00~19:52) 途中から。反力をスキップ。トラスの呪文(!?)からです。
https://youtu.be/v1cTRJzOoAI?si=OXUozn2iKzfza_df&t=380
sympyのweb上での実行方法
・numpyのエラーがでます。
SymPy Live Shellで
https://qiita.com/mrrclb48z/items/00dd08b0317069be9342#web%E4%B8%8A%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%96%B9%E6%B3%95sympy-live-shell%E3%81%A7
sympyで(オリジナル 様の方法を参考に)
・?切断法
sympyで(Trussで)
・縦横比が1:1に見えません。
・node,memberの名称は、表示されていません。
ver0.1
・var('L') おいしく???なかったです。
・Pはできましたが、辞書の値へのsubsがわかりませんでした。
・ノードの識別は整数でできます。 < ChatGPT先生より(省略)
・(2025-02-27) 結果を直しました。申し訳ありません。
# ver0.1
from sympy.physics.continuum_mechanics.truss import Truss
import math
from sympy import *
def myMember(member):
return member,member[:1],member[1:]
P=3 # var('P')
L=2 # var('L')
t = Truss()
t.add_node ((1,0,0),(2,1*L,0),(3,2*L,0),(4,3*L,0)) # 左下原点。反時計回り
t.add_node ( (5,2*L,L),(6,1*L,L))
t.add_member ((1,1,2),(2,2,3),(3 ,3,4)) # 外側:左下から。反時計回り|
t.add_member ((5,4,5),(6,5,6),( 7,6,1))
t.add_member ((8,6,2),(9,2,5),(10,5,3)) # 内側:一筆書き
t.apply_support((1,"pinned"), (4,"roller"))
t.apply_load ((6, P, 270))
p = t.draw()
p.show()
#
t.solve()
print("#",t.reaction_loads )
print("#",t.internal_forces)
# {'R_1_x': 0, 'R_1_y': 2, 'R_4_y': 1}
# {1: 2, 2: 1, 3: 1, 5: -sqrt(2), 6: -2, 7: -2*sqrt(2), 8: -1, 9: sqrt(2), 10: 0}
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
Qiita内の参考
ChatGPT先生へ
・追番は無視して下さい。
# 質問リスト
1. トラス部材の番号の標準の付け方はどのようにされていますか。
2. 機械、建築、建設。業界によって違いますか。
3. 機械の座標ベース: XYZ座標の意味を教えて下さい。
回答省略
# 質問リスト
1. sympyのtrussで apply_support(*args)の使い方を教えて下さい。
2. 水平方向もできますか。
3. 本当ですか。
4. 鉛直方向だけですか。
5. 逆だと思います。
6. ノード1は整数でもいいですか。文字列の必要がありますか。
回答省略