Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

이 문서는 Python에서 MIDAS Gen API를 작동시키기 위한 메뉴얼입니다.

...

2. Python을 이용하여 MIDAS/Gen API 작동해보기

간단한 예제를 통해 동작 방식을 살펴봅니다.

예제를 위한 Gen 해석파일은 아래 test.mgb를 참고하세요.

View file
nametest.mgb

2.1 MIDAS/Gen API 실행하기

...

Code Block
languagepy
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
languagepy
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
languagepy
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
languagepy
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
languagepy
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
languagepy
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
languagepy
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”

...