Post

sheet 정보 추출하기

아래 코드를 참조하시기 바랍니다.\

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DgnIndexItemP indexItem = NULL;
DgnIndexIteratorP pIterator = mdlModelIterator_create(mdlModelRef_getDgnFile (mdlModelRef_getActive()));
while(NULL != (indexItem = mdlModelIterator_getNext (pIterator)))
{
    ModelID modelId = mdlModelItem_getModelID (indexItem);
    DgnModelRefP pModel = NULL;
    mdlModelRef_createWorking (&pModel,mdlModelRef_getDgnFile(mdlModelRef_getActive ()),modelId,TRUE,TRUE);
    if(mdlModelRef_isSheet (pModel))
    {
        CDgnSheet DgnSheet(pModel);
        DgnSheet.GetSheetDefInfo();
            
        //! sheet 정보를 text 파일로 출력(테스트용)
        DgnSheet.WriteToFile(_T("C:\\TEST.txt"));
    }
    mdlModelRef_freeWorking (pModel);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
    @brief    get sheet definition
    @author    humkyung
    @date    2011.07.04
**/
int CDgnSheet::GetSheetDefInfo()
{
    if (mdlModelRef_isSheet (m_pModelRef))
    {
        SheetDef    *pSheetDef = NULL;

        //! sheet definition 생성(mdlSheetDef_new 함수를 통해서만 sheet definition을 생성할 수 있다)
        pSheetDef = mdlSheetDef_new ();

        mdlModelRef_getSheetDef (m_pModelRef, pSheetDef);
        m_modelId = mdlModelRef_getModelID (m_pModelRef);
        mdlSheetDef_getColor (pSheetDef,&m_iColor);
        mdlSheetDef_getOrigin (pSheetDef,&m_origin);
        mdlSheetDef_getRotation (pSheetDef,&m_dRotation);
        mdlSheetDef_getScaleFactor (pSheetDef,&m_drawingScale,SHEET_SCALE_TYPE_DRAWING_SCALE);
        mdlSheetDef_getScaleFactor (pSheetDef,&m_geometryScale,SHEET_SCALE_TYPE_GEOMETRY_SCALE);

        m_GeometryAtDrawingScale = mdlSheetDef_isGeometryAtDrawingScale (pSheetDef);

        mdlSheetDef_getScaleFactor (pSheetDef,&m_annotationScale,SHEET_SCALE_TYPE_ANNOTATION_SCALE);

        mdlSheetDef_getSize (pSheetDef,&m_dSizeWidth, &m_dSizeHeight);
        mdlSheetDef_getUnits (pSheetDef,&m_units);

        //! sheet도 하나의 모델이므로 모델 이름이 sheet 이름이 된다.
        mdlModelRef_getModelName(m_pModelRef , m_szSheetName);

        mdlSheetDef_free (&pSheetDef);
        return  SUCCESS;
    }

    return ERROR;
}