기본적인 사용법을 익히는 차원에서 Guide의 내용은 모두 따라하기 해 보시길 권장합니다.
이 문서는 Python에서 MIDAS Gen API를 작동시키기 위한 메뉴얼입니다.
...
2. Python을 이용하여 MIDAS/Gen API 작동해보기
간단한 예제를 통해 동작 방식을 살펴봅니다.
예제를 위한 Gen 해석파일은 아래 test.mgb를 참고하세요.
View file | ||
---|---|---|
|
2.1 MIDAS/Gen API 실행하기
...
Code Block | ||
---|---|---|
| ||
import requests Gen_API_URL = "http://127.0.0.1:10024" ## DOC.ANAL requests.post(Gen_API_URL + "/doc/anal", json={}) |
3. 작동 가능한 명령어
3.1 DOC 명령어
DOC 명령어는 document 관련 명령어로 주로 문서를 생성/열기/닫기 등의 동작을 제어합니다.
...
Code Block | ||
---|---|---|
| ||
import requests #String = Json file path (ex : "C:\\Python\\Example.json") requests.post("http://127.0.0.1:10024/doc/export", json={"Argument":String}) |
3.2 DB 명령어
DB 명령어는 데이터 이름에 대한 요청입니다. 각각의 데이터 이름에 대하여 GET/POST/PUT/DELETE 메소드가 구현되어 있습니다.
GET DB Method : 열려진 문서의 데이터를 조회합니다.
...
Code Block | ||
---|---|---|
| ||
import requests Gen_API_URL = "http://127.0.0.1:10024" ## GET /DB/NODE get_data=requests.get(Gen_API_URL + "/db/node/3").text print(get_data) |
POST DB Method : 열려진 문서의 데이터를 추가합니다. 이미 Key가 있을 경우 실패합니다.
다음 예제는 열어진 문서에 특정 Node를 추가하고, Node 정보를 불러와 출력하는 예제입니다. (999번 노드 추가)
...
Code Block | ||
---|---|---|
| ||
import requests import json Gen_API_URL = "http://127.0.0.1:10024" ## POST /DB/NODE requests.post(Gen_API_URL + "/db/node",json={"Assign":{"999":{"X":0,"Y":10.0,"Z":0}}}) ## GET /DB/NODE get_data=requests.get(Gen_API_URL + "/db/node").text get_data=json.loads(get_data) print(get_data['NODE']['999']) |
PUT DB Method : 열려진 문서의 데이터를 변경합니다. 존재하지 않는 key에 대한 요청 시 실패합니다.
다음 예제는 특정 노드의 좌표를 변경하는 예제입니다. (999번 노드 좌표 변경)
...
Code Block | ||
---|---|---|
| ||
import requests Gen_API_URL = "http://127.0.0.1:10024" ## GET /DB/NODE get_data=requests.get(Gen_API_URL + "/db/node/999").text print(get_data) ## PUT /DB/NODE requests.put(Gen_API_URL + "/db/node",json={"Assign":{"999":{"X":0,"Y":20.0,"Z":0}}}) ## GET /DB/NODE get_data=requests.get(Gen_API_URL + "/db/node/999").text print(get_data) |
DELETE DB Method : 열려진 문서의 데이터를 삭제합니다. 존재하지 않는 Key에 대한 요청 시 실패합니다.
예제1 : 특정 Node를 삭제하고, 삭제된 Node의 정보를 출력합니다. (999번 노드 삭제)
...
Code Block | ||
---|---|---|
| ||
import requests Gen_API_URL = "http://127.0.0.1:10024" ## DELETE /DB/NODE Delete_Data=requests.delete(Gen_API_URL + "/db/node/999").text print(Delete_Data) |
3.3 POST 명령어
POST는 명령어는 해석 실행 후 후처리 관련한 명령어입니다.
...
Code Block | ||
---|---|---|
| ||
import requests Gen_API_URL = "http://127.0.0.1:10024" ## DOC.ANAL requests.post(Gen_API_URL + "/doc/anal", json={}) ## POST /POST/TABLE requests.post(Gen_API_URL + "/post/table",json={ "Argument": { "EXPORT_PATH": "C:\\midas\\api\\model\\Beamforce.json", "TABLE_TYPE": "beam force", "UNIT": { "FORCE": "KN", "DIST": "M", "HEAT": "CAL", "TEMP": "C" }, "NODE_ELEMS": { "TO": "1 to 10" }, "LOAD_CASE_NAMES": [ "DL(ST)", "LL(ST)", "Ex(ST)", "Ey(ST)" ], "PARTS": [ "Part I", "Part J" ] } }) |
3.4 VIEW 명령어
VIEW 명령어는 이미지에 관련한 명령어입니다.
Diagram 요청 : “/view/capture”
...
Code Block | ||
---|---|---|
| ||
import requests import json Gen_API_URL = "http://127.0.0.1:10024" ## POST /VIEW/CAPTURE requests.post(Gen_API_URL + "/view/capture",json = { "Argument":{ "UFIG_LIST": [ { "IS_PRE_MODE": Falsefalse, "VIEW_HORIZONTAL": 45, "VIEW_VERTICAL": 30, "POST_DISP_OPT": { "PRINT_VALUE": Truetrue, "VALUE_DECIMAL_PT": 1, "PRINT_LEGEND": Truetrue, "LEGEND_DECIMAL_PT": 1 }, "OUTPUT_PATH": "C:\\midas\\api\\model\\Shear-Z.jpg", "LOADCASE_MINMAX": "ALL", "LOADCASE_TYPE": "ST", "LOADCASE_NAME": "DL", "CURRENTMODE": 6, "RESULT_COMP": 2, } ] } }) |
...