XM MDL Programming - #1
XM MDL 프로그래밍을 하면 크게 *.ma 파일과 *.dll 파일이 생깁니다. *.ma 파일에는 거의 아무런 정보를 가지고 있지 않고 dll의 링크 정보를 가지고 있습니다. 대부분의 소스 코드는 컴파일 되어 dll 파일로 생기게 됩니다.\ ma 파일은 전통적으로 MSTN 컴파일러로 만듭니다.(make 파일등이 필요합니다.) dll 파일은 MS V...
XM MDL 프로그래밍을 하면 크게 *.ma 파일과 *.dll 파일이 생깁니다. *.ma 파일에는 거의 아무런 정보를 가지고 있지 않고 dll의 링크 정보를 가지고 있습니다. 대부분의 소스 코드는 컴파일 되어 dll 파일로 생기게 됩니다.\ ma 파일은 전통적으로 MSTN 컴파일러로 만듭니다.(make 파일등이 필요합니다.) dll 파일은 MS V...
이번에는 다이얼로그를 생성하는 방법을 알아봅시다. V7에서는 다이얼로그 하나 생성하기가 어려웠었는데, XM 이후부터는 MFC 다이얼로그를 상속해서 사용하니까 MFC에 익숙한 사람은 아무 어려움 없이 사용할수 있습니다. 한 마디로 쉬워요. 아시다시피 모달/모달리스 다이얼로그가 있는데 모달 보다는 모달리스 다이얼로그가 유용하게 사용됩니다. 다이얼...
FrameWork을 자동으로 로딩하는 것에 대해 알아봅시다. 물론 PC에 FrameWork이 설치되어 있어야 하겠지요. 현재 디렉토리를 Microstation이 설치되어 있는 디렉토리로 설정합니다.(SetCurrentDirectory) Shell을 이용해서 mod 폴더에 있는 FrameWork dgn 파일을 오픈합니다. Set msApp...
오늘 아주 흥미로운 현상을 발견했습니다. 소스의 맨 첫째 줄에 주석을 넣으니 V7 컴파일러가 에러를 뱉어 내었습니다. 아래와 같이 첫번째 줄에 주석을 넣으니 말이죠…
아래의 코드를 이용해서 SmartSolid에서 Surface를 추출할수 있습니다. if(mdlKISolid_isSmartElement(pElmDescr , MASTERFILE , filePos)) { MSElementDescrP destP = NULL; mdlKISolid_beginCurrTrans(MASTERFILE); /...
중국에서 Back Drawing을 만들때 Elbow 형상이 빠져서 나오지 않는다고 메일이 왔다. 대부분의 Elbow 형상은 회전 Surface(Surface of revolution)이었기 때문에 회전 Surface만을 처리해 왔었다. 모델을 받아 보니 회전 Surface가 아니라 Sweep Surface였다. 이런식으로 Elbow 모델링을 하는구나 ...
이번에 라디오 버튼 동기화에 대해서 알아보도록 하겠습니다. 아래 그림과 같이 두 개의 라디오 버튼을 생성한 후에 라디오 버튼을 그룹으로 묶어 준다면 List Id를 동일하게 주어야 합니다. 그리고 각각 그 값들을 0에서 부터 설정해 주면 됩니다. 두 개의 라디오 버튼의 List Id는 동일하게 설정했구요, Value는 다르게 설정했습니다. 아래의...
PDS에서 Nozzle은 Cell형식으로 만들어져 있습니다. Nozzle을 찾기 위해서 이 Cell들 중에서 drms linkage의 user id가 22인 Cell을 찾습니다. 일단 이 Cell을 Nozzle로 간주할수가 있습니다. 다음 attribute linkage는 Nozzle이 속한 Equipment의 관한 dmrs linkage입니다. ...
PDS 3D 모델을 이용해서 2D 도면 생성 로직을 간단하게 FLOW CHART형식으로 표현해 보았습니다. 여기서 2D DWG FILE NAME은 PDS에서 작성한 HIDDEN 도면을 말하는 겁니다. 그리고 121,122,123,113은 PDS에서 사용하는 테이블 이름을 의미합니다.
이 글은 Microstation에 관련되기 보다는 PDS에 관련된 글입니다. 제가 참여한 PlantWAVE에서는 nozzle data를 database에서 구해와 도면에 뿌려주게 됩니다. 모델러들이 nozzle을 모델링을 하게 된다면 nozzle에 대한 정보가 파일에만 저장이 되고, database에는 저장이 되지 않습니다. 그래서 부득이하게 P...