기본 콘텐츠로 건너뛰기

1월, 2010의 게시물 표시

mdlView_hiddenLineRemoval2의 preFunction에 대해서...

mdlView_hiddenLineRemoval2을 사용할때 첫번째 인자가 preFunction을 가르키는 함수 포인터입니다. 이 preFunction이 하는 기능은 hidden 처리를 하는 과정에 앞서 현재 Active된 모델의 각 element들에 대해서 hidden 처리에 포함시킬지 여부를 결정합니다. 이 preFunction 부분이 V7에서 XM으로 넘어오는 과정에서 약간 변경이 되었는데, element들에 대한 정보는 preFunction의 첫번째 인자인 MSElementDescr *edP에서 구할수 있습니다. 아래 코드는 XM환경에서 reference된 element의 모델 이름등을 구하는 루틴입니다. Private int preFunction ( MSElementDescr *edP, /* => element to be processed */ ViewInfoP elementInfoP ) { int lineNo; char modelName[256]; char modelDescription[256]; char modelLogical[256]; DgnModelRefP modelRef; StatusInt res; ULong filePos; if(mdlModelRef_isReference(edP->h.dgnModelRef)) { mdlRefFile_getParameters(modelName,REFERENCE_FILENAME,edP->h.dgnModelRef); mdlRefFile_getParameters(modelDescription,REFERENCE_DESCRIPTION,edP->h.dgnModelRef); mdlRefFile_getParame

MDLVS.bat 파일 수정

예전에 'VC++ 6.0을 이용하여 컴파일하기' 에서 배치파일을 이용하여 컴파일하는 방법을 알아 봤습니다. 이 배치파일이 V7까지는 제대로 작동되었으나 XM에서 사용할려고 하니 오류가 발생하면서 컴파일을 할수가 없습니다. 원인은 XM 버젼이 설치될때 Program Files 폴더에 기본적으로 설치가 되는데 배치 파일에서 경로에 공백이 들어가는 것을 제대로 처리를 하지 못해서 생기는 현상이었습니다. 따라서 배치 파일의 내용을 조금 수정해야 합니다. Program Files 부분을 짧은 경로 문자(Progra~1)로 대체했습니다. MDLVS.bat의 내용 Microstation J를 디폴트로 설치하셨다면 아래 내용을 수정없이 사용하실 수 있습니다. 설치 폴더를 바꿨으면 아래 SET MS=xxx 부분을 수정해 주세요. ---------------------------------------------------------------------------------------- echo off cls echo +-----------------MDL BUILD BATCH ------------------------------+ cd echo MDLVS.bat date /t time /t SET MS=C:\Bentley\Program\MicroStation SET MS=C:\Progra~1\Bentley\MicroStation call vcvars32.bat SET INCLUDE=%MS%\mdl\include;%INCLUDE% SET LIB=%MS%\mdl\library;%MS%\jmdl\lib;%LIB% set BMAKE_OPT=-I%MS%\mdl\include -I%MS%\jmdl\include set PATH=;%MS%;%MS%\mdl\bin;%MS%\jmdl\bin;%PATH% set MLINK_STDLIB=%MS%\mdl\library\mdllib.dlo %MS%\mdl\library\builtin.