일반적으로 도면은 Scale을 줄여서 표기하게 되는데,
현장에서 설치에 사용되는 도면의 경우 현장 작업자들이 도면을 뽑아 자로 실제 치수를 재어 확인 하는 경우도 있다고 합니다.
그러다보니 실무자들이 1:1 도면을 원하는 경우가 있습니다.
AutoCAD의 경우는 Drawing Scale을 주어 처리하면 되는데, MSTN V7은 그 기능이 없어 유사한 기능을 만들어 보았습니다.
ULong elemAddr[50], eofPos, filePos; int scanWords, numChanged=0, status, i, numAddr; Scanlist scanList; int grayColor = 32; double dScale = atof(argv[3]); MSElementUnion el; mdlScan_initScanlist (&scanList); mdlScan_noRangeCheck (&scanList); scanList.extendedType = FILEPOS; mdlScan_initialize (0, &scanList); do { scanWords = sizeof(elemAddr)/sizeof(short); status = mdlScan_file (elemAddr, &scanWords, sizeof(elemAddr), &filePos); numAddr = scanWords / sizeof(short); for (i=0; i<numAddr; i++) { if(SUCCESS == mdlElement_read( &el, 0, elemAddr[i] )) { /// scale up/down with given value - 2013.10.18 added by humkyung Transform tMatrix; mdlTMatrix_getIdentity(&tMatrix); mdlTMatrix_scale(&tMatrix,&tMatrix,dScale,dScale,0); mdlElement_transform(&el,&el,&tMatrix); /// up to here mdlElement_setSymbology(&el , &grayColor , NULL , NULL); mdlElement_rewrite(&el , NULL , elemAddr[i]); } } } while (status == BUFF_FULL);
댓글
댓글 쓰기