Code sample Home

Create tangent lines
void DemoTangLines (HANDLE hLcWnd)
{
  HANDLE hDrw, hBlock, hEnt1, hEnt2, hEnt3, hLayer1, hLayer2;
  WCHAR* szName1 = L"Circles";
  WCHAR* szName2 = L"Tangent Lines";

  // get drawing and block, linked with CAD window
  hDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );
  hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_VIEWBLOCK );
  // layer for circles
  hLayer1 = lcDrwGetObjectByName( hDrw, LC_OBJ_LAYER, szName1 );
  if (hLayer1 == 0){
    // create the layer
    hLayer1 = lcDrwAddLayer( hDrw, szName1, L"foreground", 0, LC_LWIDTH_DEFAULT );
  }
  // layer for lines
  hLayer2 = lcDrwGetObjectByName( hDrw, LC_OBJ_LAYER, szName2 );
  if (hLayer2 == 0){
    // create the layer
    hLayer2 = lcDrwAddLayer( hDrw, szName2, L"255,0,0", 0, LC_LWIDTH_DEFAULT );
  }
  // set active layer
  lcPropPutHandle( hDrw, LC_PROP_DRW_LAYER, hLayer1 );  
  // add circles
  hEnt1 = lcBlockAddCircle( hBlock, 0, 0, 10, LC_FALSE );
  hEnt2 = lcBlockAddCircle( hBlock, 20, 20, 15, LC_FALSE );
  hEnt3 = lcBlockAddCircle( hBlock, 28, -10, 7, LC_FALSE );
  // set active layer
  lcPropPutHandle( hDrw, LC_PROP_DRW_LAYER, hLayer2 );
  // add tangent lines
  lcBlockAddLineTan( hBlock, hEnt1, hEnt2, 0 );
  lcBlockAddLineTan( hBlock, hEnt1, hEnt2, 1 );
  lcBlockAddLineTan( hBlock, hEnt1, hEnt3, 2 );
  lcBlockAddLineTan( hBlock, hEnt2, hEnt3, 3 );
  // display
  lcBlockUpdate( hBlock, true, 0 );
  lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
This will create a drawing as shown on the picture below: