Code sample Home

Create a block and insert it into a drawing
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 );
}
This will create a drawing as shown on the picture below:



See Also:

Create new block from all entities of "Model Space" block
Create new block from selected entities of current block
Create a block with "ByBlock" color and insert it into a drawing using various colors