void DemoBlockRef (HANDLE hLcWnd)
{
HANDLE hDrw, hBlock, hBlock2;
WCHAR* szBlockName = L"ABC";
// get drawing and block, linked with CAD window
hDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );
hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );
// get a block with specified name
hBlock2 = lcDrwGetObjectByName( hDrw, LC_OBJ_BLOCK, szBlockName );
if (hBlock2 == NULL){
// create new block
hBlock2 = lcDrwAddBlock( hDrw, szBlockName, 10, 5.773 );
// add objects into the block
lcBlockAddCircle( hBlock2, 0, 0, 10, false );
lcBlockAddCircle( hBlock2, 20, 0, 10, false );
lcBlockAddCircle( hBlock2, 10, 17.32, 10, false );
lcBlockAddLine( hBlock2, 0, 0, 20, 0 );
lcBlockAddLine( hBlock2, 20, 0, 10, 17.32 );
lcBlockAddLine( hBlock2, 10, 17.32, 0, 0 );
// update extents
lcBlockUpdate( hBlock2, true, 0 );
}
// insert the block hBlock2 into hBlock
lcBlockAddBlockRef( hBlock, hBlock2, 0, 0, 1, 0 );
lcBlockAddBlockRef( hBlock, hBlock2, 20, 10, 0.3, 30*LC_DEG_TO_RAD );
// display
lcBlockUpdate( hBlock, true, 0 );
lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}