MIDAS Gen API with Python

기본적인 사용법을 익히는 차원에서 Guide의 내용은 모두 따라하기 해 보시길 권장합니다.

 

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

1. Python 개발환경 설정

1.1 설치파일

설치파일은 파이썬 공식 웹사이트에서 내려받습니다.

Welcome to Python.org

Python 공식 웹사이트

* 윈도우 이외에 OS 환경을 위한 여러 설치파일을 확인할 수 있습니다.

 

1.2 파이썬 설치

Python을 설치합니다.

Python 설치화면

아래 편집기는 더 편리한 Python 개발환경을 제공합니다.

Recommended Code Editors for Python

(본 설명서는 Visual Studio Code를 사용하여 작성되었습니다.)

 

1.3 추가 모듈 설치

Python에 Request 모듈을 설치 해야, MIDAS/Gen API를 제어할 수 있습니다.

Request 모듈은 다음과 같이 설치가 가능합니다.

 

프로그램 하단의 터미널 창이 보이지 않는다면, Menu-Terminal-New Terminal 을 이용하여, Terminal 창을 실행합니다. 아래 텍스트를 터미널 창에 붙여 넣은 후, Enter를 눌러줍니다.

 

py -3 -m pip install requests

 

 

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

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

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

2.1 MIDAS/Gen API 실행하기

API와 통신하기 위한 Gen은 다음과 같이 실행 가능합니다.

  • Python Code

import subprocess import time p = subprocess.Popen([r"C:\\midas\\API\\MidasGen.exe", "/API"]) ## wait until midas api process ready time.sleep(10)

MIDAS/Gen 실행 파일의 경로는 각자 사용자에 맞게 수정하여 사용합니다.

파일 경로에 \\사용함에 주의!!

 

2.2 MIDAS/Gen API 문서 열기

MIDAS/Gen을 실행 시킨 후 이미 작성된 문서를 여는 동작을 실행해보겠습니다.

  • Python Code

import requests Gen_API_URL = "http://127.0.0.1:10024" ## DOC.OPEN requests.post(Gen_API_URL + "/doc/open", json={"Argument":"C:\\midas\\api\\model\\test.mgb"})

MIDAS/Gen 파일의 경로는 각자 사용자에 맞게 수정하여 사용합니다.

URL 주소는 API 를 통한 MIDAS/Gen 실행시 동작하는 APIServer.exe에서 확인할 수 있습니다.

 

2.3 MIDAS/Gen API 해석 실행

불러온 MIDAS/Gen 파일의 해석을 실행해 보겠습니다.

  • Python Code

 

3. 작동 가능한 명령어

3.1 DOC 명령어

DOC 명령어는 document 관련 명령어로 주로 문서를 생성/열기/닫기 등의 동작을 제어합니다.

 

  • 문서 열기 : “/doc/open”

 

  • 새 문서 열기 : “/doc/new”

 

  • 문서 닫기 : “/doc/close”

 

  • 해석 실행 : “/doc/anal”

 

  • 문서 저장 : “/doc/save”

 

  • 새 이름으로 저장 : “/doc/saveas”

 

  • Json 데이터 Import : “/doc/import”

 

  • Json 데이터 Export : “/doc/export”

 

3.2 DB 명령어

DB 명령어는 데이터 이름에 대한 요청입니다. 각각의 데이터 이름에 대하여 GET/POST/PUT/DELETE 메소드가 구현되어 있습니다.

 

  • GET DB Method : 열려진 문서의 데이터를 조회합니다.

 

예제1: 다음 예제 코드는 열어진 문서로부터 모든 Node 정보를 불러와 , 특정한 Node 정보를 출력합니다.

 

예제2: 다음 예제 코드는 열어진 문서로부터 특정한 Node 번호의 정보만 불러옵니다.

 

 

  • POST DB Method : 열려진 문서의 데이터를 추가합니다. 이미 Key가 있을 경우 실패합니다.

 

다음 예제는 열어진 문서에 특정 Node를 추가하고, Node 정보를 불러와 출력하는 예제입니다. (999번 노드 추가)

 

 

  • PUT DB Method : 열려진 문서의 데이터를 변경합니다. 존재하지 않는 key에 대한 요청 시 실패합니다.

 

다음 예제는 특정 노드의 좌표를 변경하는 예제입니다. (999번 노드 좌표 변경)

 

 

  • DELETE DB Method : 열려진 문서의 데이터를 삭제합니다. 존재하지 않는 Key에 대한 요청 시 실패합니다.

 

예제1 : 특정 Node를 삭제하고, 삭제된 Node의 정보를 출력합니다. (999번 노드 삭제)

 

 

3.3 POST 명령어

POST는 명령어는 해석 실행 후 후처리 관련한 명령어입니다.

 

  • 반드시 해석이 수행된 이후에 실행 가능합니다.

  • 결과 테이블 요청 : “/post/table”

예제1 : 다음 예제는 열려진 문서에서 해석 결과를 가져와 Json 포맷으로 저장하는 예제입니다.

 

 

3.4 VIEW 명령어

VIEW 명령어는 이미지에 관련한 명령어입니다.

 

  • Diagram 요청 : “/view/capture”

Diagram을 요청하고, 원하는 경로에 저장하는 예제입니다.