void DemoBlockFromFile (HANDLE hLcWnd)
{
HANDLE hDrw, hBlock, hBlock1, hBlock2, hBlock3, hBlock4;
WCHAR* szFile00 = L"d:/_tmp/drawing.dxf";
WCHAR* szFile1 = L"d:/_tmp/block1.dxf";
WCHAR* szFile2 = L"d:/_tmp/block2.dxf";
WCHAR* szFile3 = L"d:/_tmp/block3.dxf";
WCHAR* szFile4 = L"d:/_tmp/block4.dxf";
WCHAR* szOutFile = L"d:/_tmp/Result.dxf";
double X, Y, Scale, Angle;
// get the drawing object linked with CAD window
hDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );
// load a file
lcDrwLoad( hDrw, szFile00, 0 );
// get Model block
hBlock = lcPropGetHandle( hDrw, LC_PROP_DRW_BLOCK_MODEL );
// link the Model block with CAD window
lcWndSetBlock( hLcWnd, hBlock );
// create new block from file "block1.dxf"
hBlock1 = lcDrwAddBlockFile( hDrw, L"Block1", szFile1, LC_BLOCK_OVERWRITEYES, 0 );
// create new block from file "block2.dxf"
hBlock2 = lcDrwAddBlockFile( hDrw, L"Block2", szFile2, LC_BLOCK_OVERWRITEYES, 0 );
// create new block from file "block2.dxf"
hBlock3 = lcDrwAddBlockFile( hDrw, L"Block3", szFile3, LC_BLOCK_OVERWRITEYES, 0 );
// create new block from file "block2.dxf"
hBlock4 = lcDrwAddBlockFile( hDrw, L"Block4", szFile4, LC_BLOCK_OVERWRITEYES, 0 );
if (hBlock1 && hBlock2 && hBlock3 && hBlock4){
// insert hBlock1
X = Y = 0.0;
Scale = 1.0;
Angle = 0.0;
lcBlockAddBlockRef( hBlock, hBlock1, X,Y, Scale, Angle );
// insert hBlock2
X = 160.0;
Y = -120.0;
Scale = 0.5;
lcBlockAddBlockRef( hBlock, hBlock2, X,Y, Scale, Angle );
// insert hBlock3
X = 30.0;
Y = 150.0;
Scale = 1.0;
lcBlockAddBlockRef( hBlock, hBlock3, X,Y, Scale, Angle );
// insert hBlock4
X = 30.0;
Y = -120.0;
lcBlockAddBlockRef( hBlock, hBlock4, X,Y, Scale, Angle );
// save the drawing in a file
lcDrwSave( hDrw, szOutFile, true, 0 );
// update and display
lcBlockUpdate( hBlock, true, 0 );
lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
}