기본 콘텐츠로 건너뛰기

9월, 2011의 게시물 표시

[MDL] 더블 클릭 이벤트 받기

mdlLocate_setFunction 함수를 통하여 더블 클릭 이벤트를 받을 수 있습니다. mdlState_startModifyCommand (NULL, modifyElement_accept,NULL, NULL, NULL, 0, 0, TRUE , 0); mdlLocate_setFunction(LOCATE_ELEMENT_DOUBLECLICK , doubleclick_function); mdlInput_sendSynchronizedKeyin("CHOOSE ELEMENT ",FALSE,INPUTQ_EOQ,NULL); mdlInput_sendSynchronizedKeyin("POWERSELECTOR MODE NEW ",FALSE,INPUTQ_EOQ,NULL); 선택 모드 상태에서 Element를 더블 클릭했을 때 등록한 함수(doubleclick_function)가 호출됩니다. 아래 두 줄은 선택 모드로 바꾸기 위한 코드입니다.

mdlDim_getActualValues 오류

Dimension의 텍스트를 읽을때 텍스트가 자동으로 계산되어 표시되는 경우는 mdlText_extract 함수를 통하여 읽었을때 *로 읽힙니다. 이럴때 mdlDim_getActualValues 함수를 통하여 실제 값을 구할 수 있습니다. 하지만 이 함수가 완전하지 않은지 가끔씩 에러가 발생합니다. 원인과 해결 방법을 알고 계신 분은 좀 알려 주세요... double pdValues[256] = {0,}; f (SUCCESS == mdlDim_getActualValues(&(element->el) , pdValues)) { m_sTextString.Format (_T("%.4f") , (pdValues[0] / uor)); }

XData 쓰기 예제

xdata 쓰기 예제입니다. if (mdlElmdscr_read(&pDescr, filePosP , modelRef , FALSE , NULL) != 0) { ElementId regAppID; static MSWChar *s_applicationName = L"Rev.Pro"; if (SUCCESS == mdlRegApp_idFromName (&regAppID, s_applicationName , mdlModelRef_getDgnFile(MASTERFILE), TRUE)) { XDataValueUnion data; int dataType; int groupCode; UInt32 dataSize; UInt32 index = NULL; if(pDescr->h.isHeader && pDescr->h.firstElem) { for(MSElementDescrP ptr = pDescr->h.firstElem;NULL != ptr;ptr = ptr->h.next) { UInt32 color = 0; mdlElement_getSymbology(&color, NULL , NULL , &(ptr->el)); //기존 데이타 있는지 체크.. if (SUCCESS != mdlLinkage_getXDataGroupCode (&data, &dataType, &dataSize, &groupCode, &(ptr->el) , &index)) { const int