python으로 유한요소법(FEM)~vba→python 번역편~
시리즈 카탈로그
vba→python 번역편의 개요
구상을 대강 설명하다
FEM python 작성
우선, ~vba→ptyhon 번역편~이 책의 Excel 샘플5-1 三次元骨組解析.xls
(이하 샘플)로python으로 다시 써보고 싶습니다.
Excel 유한요소법 입문 골조 구조 해석 편(Excel 토목 강좌)
번역은 아래견본→python로 한다.
5-1 3차원 골격 분석.xls
Private Sub cmd計算_Click()
Dim I As Long
Dim NEQ As Integer
For I = 1 To 配列上限
AJCB(I) = 0
Next
Call データ入力
Call SKYマトリックス(NEQ)
For I = 1 To NEQ
FORCE(I) = 0
Next I
Call 分布荷重振り分け
Call 外力add
Call decomp(NEQ)
Call redbak(NEQ)
Call 変位計算
Call 力とモーメントの計算
Call 結果出力
MsgBox "解析が終わりました"
End Sub
framecalc.pyfrom Calcrate import Calcrate
if __name__ == "__main__":
cal = Calcrate()
NEQ = 0
cal.データ入力()
cal.SKYマトリックス(NEQ)
cal.分布荷重振り分け()
cal.外力add()
cal.decomp(NEQ)
cal.redbak(NEQ)
cal.変位計算()
cal.力とモーメントの計算()
cal.結果出力()
print("解析が終わりました")
환경 조건
나의 환경은 아래와 같다.
OS
Private Sub cmd計算_Click()
Dim I As Long
Dim NEQ As Integer
For I = 1 To 配列上限
AJCB(I) = 0
Next
Call データ入力
Call SKYマトリックス(NEQ)
For I = 1 To NEQ
FORCE(I) = 0
Next I
Call 分布荷重振り分け
Call 外力add
Call decomp(NEQ)
Call redbak(NEQ)
Call 変位計算
Call 力とモーメントの計算
Call 結果出力
MsgBox "解析が終わりました"
End Sub
from Calcrate import Calcrate
if __name__ == "__main__":
cal = Calcrate()
NEQ = 0
cal.データ入力()
cal.SKYマトリックス(NEQ)
cal.分布荷重振り分け()
cal.外力add()
cal.decomp(NEQ)
cal.redbak(NEQ)
cal.変位計算()
cal.力とモーメントの計算()
cal.結果出力()
print("解析が終わりました")
개발 환경
일단 한번 돌려보도록 하겠습니다.
먼저 소스 코드를 다운로드합니다.
견본
5-1 三次元骨組解析.xls
는 이 안내서에 따라 다운로드하십시오.이 Excel VBA를python으로 번역하세요.
python으로 번역된 원본 파일을 여기에 놓으십시오.
$ git clone -b "#1" https://github.com/sasaco/FramePython.git
환경이 준비되면 원본 코드 디렉터리, 프레임 콜로 이동합니다.py를 치면 해석이 시작됩니다.
해석이 끝났다고 답하면 해석이 정확하게 진행된다.
$ cd FramePython
$ python framecalc.py
$ 解析が終わりました
프로그램 사양
데이터 입출력 정보
견본 Excel은 워크시트[입력 1][입력 2]를 입력 데이터로
워크시트 [계산/출력]에 해석 결과를 저장합니다.
번역된python 프로그램이 Excel 워크시트와 협업하지 않음
견본 Excel의 워크시트 [입력 1] [입력 2] [계산·출력]을 csv로 변환한 파일을 입력과 출력에 사용합니다.
정렬된 색인 정보
vba의 배열은 1~
5-1 3차원 골격 분석.xls
Range(1,1)
python의 배열은 0~입니다Calcrate.py
Range[0][0]
따라서 번역할 때 주의해야 한다.드로잉 기능 정보
견본 Excel의 드로잉 기능이python에 마이그레이션되지 않음
비교 분석 결과
당분간 vba→ptyhon의 번역 작업이 끝났고 이들의 분석 결과를 비교해 보았다
거의 0의 작은 값은 오차가 있지만 재현도는 괜찮죠
샘플 Excel 분석 결과(발췌문)
변위
REACT
원소.
X
Y
Z
angX
angY
angZ
Rx
Ry
Rz
Mx
My
Mz
노트
Fx
Fy
Fz
Mx
My
Mz
1
0.00E+00
0.00E+00
0.00E+00
0.00E+00
0.00E+00
0.00E+00
1
3.49E+01
408.073
20.088
31.400
1.73E-16
-17.837
1
1
408.073
-34.929
20.088
1.73E-16
-31.400
-17.837
2
2.30E-03
-2.59E-02
-1.23E-04
1.17E-04
-6.91E-21
-2.08E-03
2
-5.00E-15
-76.000
0.000
48.000
1.28E-14
-75.000
2
-408.073
34.929
-20.088
-1.73E-16
-48.953
-121.877
3
1.17E-02
-4.30E-02
2.04E-04
2.42E-04
4.04E-19
-3.80E-03
3
-1.46E-13
-78.000
0.000
48.000
-3.70E-14
-75.000
2
2
269.653
-44.737
22.027
-1.03E-14
-34.644
-46.608
4
2.76E-02
-5.04E-02
1.19E-03
4.20E-04
-5.62E-19
-5.41E-03
4
9.19E-14
-56.000
0.000
42.667
3.56E-13
-66.667
3
-269.653
44.737
-22.027
1.03E-14
-53.464
-132.339
5
0.00E+00
0.00E+00
0.00E+00
0.00E+00
0.00E+00
0.00E+00
5
7.02E+00
623.968
20.088
31.400
-6.73E-15
29.101
3
3
116.788
-45.660
18.809
2.42E-14
-24.329
-50.990
python 프로그램의 해석 결과 (발췌)
변위
REACT
원소.
X
Y
Z
angX
angY
angZ
Rx
Ry
Rz
Mx
My
Mz
노트
Fx
Fy
Fz
Mx
My
Mz
1
0
0
0
0
0
0
1
34.9286048
408.0727049
20.08821182
31.40032555
-9.49E-15
-17.83716034
1
1
408.0727049
-34.9286048
20.08821182
-9.49E-15
-31.40032555
-17.83716034
2
0.002298747
-0.025909378
-0.000123095
0.000117015
3.79E-19
-0.002080804
2
-1.91E-14
-76
-3.11E-15
48
1.46E-14
-75
2
-408.0727049
34.9286048
-20.08821182
9.49E-15
-48.95252174
-121.8772589
3
0.011665227
-0.043030177
0.000204306
0.000242481
8.13E-19
-0.003795417
3
-6.95E-14
-78
-6.66E-15
48
-1.17E-13
-75
2
2
269.6525828
-44.73675837
22.02695187
-1.08E-14
-34.64397073
-46.60823232
4
0.027638145
-0.050445274
0.001194231
0.000419675
6.78E-19
-0.005408655
4
-2.39E-13
-56
3.55E-14
42.66666667
-2.39E-13
-66.66666667
3
-269.6525828
44.73675837
-22.02695187
1.08E-14
-53.46383676
-132.3388011
5
0
0
0
0
0
0
5
7.022385521
623.9683925
20.08821182
31.40032555
-4.93E-15
29.10143338
3
3
116.7877789
-45.66043605
18.80913902
3.39E-15
-24.32874619
-50.9899696
다음번
어쨌든 비슷한 결과가 나올 때까지 해냈어요.
다음번
- 분석 섹션의 범주 구분
- 행렬 해법
등 고민했다.
이 기사는 현재 진행 중인 기획입니다.
아직 완성되지 않았다.
현재 프로그램 상태는 마스터 지점입니다.
https://github.com/sasaco/FramePython/tree/master
상술한 내용 중에는 이미 약간의 수정이 시작되었을 것이다
관심 있으신 분은 연락 주세요.
Reference
이 문제에 관하여(python으로 유한요소법(FEM)~vba→python 번역편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sasaco/items/917429a497c6e9a08401
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
어쨌든 비슷한 결과가 나올 때까지 해냈어요.
다음번
- 분석 섹션의 범주 구분
- 행렬 해법
등 고민했다.
이 기사는 현재 진행 중인 기획입니다.
아직 완성되지 않았다.
현재 프로그램 상태는 마스터 지점입니다.
https://github.com/sasaco/FramePython/tree/master
상술한 내용 중에는 이미 약간의 수정이 시작되었을 것이다
관심 있으신 분은 연락 주세요.
Reference
이 문제에 관하여(python으로 유한요소법(FEM)~vba→python 번역편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sasaco/items/917429a497c6e9a08401텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)