Code sample Home

Add new blocks from files, insert the blocks into a drawing and save result drawing into a file
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 );
  }
}
Used functions:

lcDrwLoad
lcDrwSave
lcDrwAddBlockFile
lcBlockAddBlockRef
lcWndSetBlock
lcWndExeCommand
lcPropGetHandle