LiteCAD参考文档的学习四(单文本、多文本、弧形文本、光栅图像、图像引用、ECW/Jpeg2000 Image图像、填充图案、尺寸、引线)
LiteCAD API reference
一、Text (single-line)
Text conveys important information in your drawing. You use text for title blocks, to label parts of the drawing, to give specifications, or to make annotations.New text entities are created with the current Text style.
1.Formatting codes for single text
2.Text Alignment
Create texts with various alignment
void DemoTextAlign (HANDLE hLcWnd)
{HANDLE hDrw, hBlock, hEnt;int EntType;COLORREF Color;double RectW = 500.0;double RectH = 50.0;double StepY = 60.0;double Htxt = 15.0; // text heightdouble WScale = 1.0; // text width scaledouble X, Y, dx, dy;// get drawing and block, linked with CAD windowhDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// Create rectangles and insert text at center point, changing alignmentX = 0;Y = 0;lcBlockAddText2( hBlock, L"LC_TA_LEFBOT", X, Y, LC_TA_LEFBOT , Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_CENBOT", X, Y, LC_TA_CENBOT, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_RIGBOT", X, Y, LC_TA_RIGBOT, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_LEFCEN", X, Y, LC_TA_LEFCEN, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_CENTER", X, Y, LC_TA_CENTER , Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_RIGCEN", X, Y, LC_TA_RIGCEN, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_LEFTOP", X, Y, LC_TA_LEFTOP, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_CENTOP", X, Y, LC_TA_CENTOP, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );Y += StepY;lcBlockAddText2( hBlock, L"LC_TA_RIGTOP", X, Y, LC_TA_RIGTOP, Htxt, WScale, 0, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X, Y );dx = RectW * 0.35;dy = RectH * 0.3;Y = -StepY;lcBlockAddText3( hBlock, L"LC_TA_FIT", X-dx, Y-dy, X+dx, Y-dy, LC_TA_FIT, Htxt, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X-dx, Y-dy );lcBlockAddPoint( hBlock, X+dx, Y-dy );Y -= StepY;lcBlockAddText3( hBlock, L"LC_TA_ALIGNED", X-dx, Y-dy, X+dx, Y-dy, LC_TA_ALIGNED, WScale, 0 );lcBlockAddRect( hBlock, X, Y, RectW, RectH, 0, 0);lcBlockAddPoint( hBlock, X-dx, Y-dy );lcBlockAddPoint( hBlock, X+dx, Y-dy );// set red color for all text entitiesColor = RGB(255,0,0);hEnt = lcBlockGetFirstEnt( hBlock );while( hEnt ){EntType = lcPropGetInt( hEnt, LC_PROP_ENT_TYPE );if (EntType == LC_ENT_TEXT){lcPropPutInt( hEnt, LC_PROP_ENT_COLOR, Color );}hEnt = lcBlockGetNextEnt( hBlock, hEnt );}lcBlockUpdate( hBlock, false, 0 );// zoom extentslcWndZoomRect( hLcWnd, 0,0,0,0 );// and slightly reduce the viewlcWndZoomScale( hLcWnd, 0.8 );
}
3.Text Style
二、Multiline Text
void DemoMText (HANDLE hLcWnd)
{double x0, y0, W, H, Ht;HANDLE hDrw, hBlock, hTStyle, hText;WCHAR* szText = L"\\A1;H\\H0.5x;\\S^2;\\H2x;O 1\\H0.6x;\\S2/3;\\H1.6667x;+4\\H0.6x;\\S0.5^;\\H1.6667x;=3.66666...";// get drawing and block, linked with CAD windowhDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// set font "Arial" for the text style "Standard"hTStyle = lcPropGetHandle( hDrw, LC_PROP_DRW_TEXTSTYLE_STD );lcPropPutBool( hTStyle, LC_PROP_TSTYLE_WINFONT, true );lcPropPutStr( hTStyle, LC_PROP_TSTYLE_FONT, L"Arial" );lcPropPutBool( hTStyle, LC_PROP_TSTYLE_SOLID, true );// set active text stylelcPropPutHandle( hDrw, LC_PROP_DRW_TEXTSTYLE, hTStyle );// add multiline textx0 = 0.0;y0 = 0.0;W = 130.0; // wrap widthHt = 10.0; // text heighthText = lcBlockAddMText( hBlock, szText, x0, y0, W, LC_TA_CENTER, 0.0, Ht, 1.0 );// add bounding rectangleW = lcPropGetFloat( hText, LC_PROP_MTEXT_WRECT ) * 1.1;H = lcPropGetFloat( hText, LC_PROP_MTEXT_HRECT ) * 1.2;lcBlockAddRect( hBlock, x0, y0, W, H, 0.0, false );// update viewlcBlockUpdate( hBlock, true, 0 );lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
三、Arc Text
void DemoArcText (HANDLE hLcWnd)
{WCHAR* szStyleName = L"New Style";WCHAR* szText = L"THIS IS THE ARC TEXT";double X[3], Y, R, H, Gap, Angle;int i, k, Align[3];HANDLE hDrw, hBlock, hTStyle;bool bClockwise = true;// get drawing and block, linked with CAD windowhDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// get text style with specified namehTStyle = lcDrwGetObjectByName( hDrw, LC_OBJ_TEXTSTYLE, szStyleName );if (hTStyle == NULL){// the style don't exist, create new text stylehTStyle = lcDrwAddTextStyle( hDrw, szStyleName, L"Times New Roman", true );}// set current text stylelcPropPutHandle( hDrw, LC_PROP_DRW_TEXTSTYLE, hTStyle );// add graphicsR = 10.0;X[0] = 0;X[1] = R * 3.0;X[2] = R * 6.0;Y = 0.0;H = R / 5.0;Gap = H / 4.0;Angle = 90.0 * LC_DEG_TO_RAD;Align[0] = LC_ATA_LEFT;Align[1] = LC_ATA_CENTER;Align[2] = LC_ATA_RIGHT;for (k=0; k<2; ++k){for (i=0; i<3; ++i){lcBlockAddCircle( hBlock, X[i], Y, R, false );lcBlockAddLine( hBlock, X[i], Y, X[i], Y+R );lcBlockAddArcText( hBlock, szText, X[i], Y, R+Gap, Angle, bClockwise, H, 1.0, Align[i] );}bClockwise = !bClockwise;Y -= R * 3.0;}// update viewlcBlockUpdate( hBlock, true, 0 );lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
四、Raster Image
Create raster image (set pixels)
void DemoImage2 (HANDLE hLcWnd)
{int ImgW, ImgH, PixX, PixY, R, G, B;double x0, y0, x1, y1, W, H, Htxt, Gap;HANDLE hDrw, hBlock, hImage, hImgRef;WCHAR* szImageName = L"Sample image";// get drawing and block, linked with CAD windowhDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// get image by name hImage = lcDrwGetObjectByName( hDrw, LC_OBJ_IMAGE, szImageName );if (hImage == NULL){// image size, pixelsImgW = 500;ImgH = 500;// create imagehImage = lcDrwAddImage2( hDrw, szImageName, ImgW, ImgH, 24 );// set color of the image pixelsfor (PixX=0; PixX<ImgW; ++PixX){R = (255 * PixX) / ImgW;for (PixY=0; PixY<ImgH; ++PixY){G = (255 * PixY) / ImgH;B = 255 - abs(R-G);lcImageSetPixelRGB( hImage, PixX, PixY, R, G, B );}}}// add image referencex0 = 10.0;y0 = 20.0;W = 50.0;H = 50.0;Htxt = 5.0;Gap = Htxt * 0.3;lcBlockAddImageRef( hBlock, hImage, x0, y0, W, H, false );// add more graphic objectsx0 = x0 - Gap;y0 = y0 - Gap;W = W + Gap + Gap;H = H + Gap + Gap;lcBlockAddRect2( hBlock, x0, y0, W, H, 0, false );x1 = x0 + W + Gap;y1 = y0 + H + Gap;x0 = x0 - Gap;y0 = y0 - Gap;lcBlockAddText2( hBlock, L"RED", x1, y0, LC_TA_LEFTOP, Htxt, 1, 0, false );lcBlockAddText2( hBlock, L"GREEN", x0, y1, LC_TA_RIGBOT, Htxt, 1, 0, false );lcBlockAddText2( hBlock, L"BLUE", x0, y0, LC_TA_RIGTOP, Htxt, 1, 0, false );lcBlockAddText2( hBlock, L"WHITE", x1, y1, LC_TA_LEFBOT, Htxt, 1, 0, false );// displaylcBlockUpdate( hBlock, true, 0 );lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
五、Image reference
Create raster image (from a file)
void DemoImage (HANDLE hLcWnd)
{HANDLE hDrw, hBlock, hImage, hImage2, hImageRef;WCHAR* szImageFile1 = L"d:/___TMP/Image01.jpg";WCHAR* szImageFile2 = L"d:/___TMP/Image03.png";double X, Y, W, H, W2, Xc, Yc;int Wpix, Hpix;// get drawing and block, linked with CAD windowhDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// add raster image from a filehImage = lcDrwAddImage( hDrw, L"", szImageFile1 );// get image dimensions (pixels)Wpix = lcPropGetInt( hImage, LC_PROP_IMAGE_WPIX );Hpix = lcPropGetInt( hImage, LC_PROP_IMAGE_HPIX );// add one more raster imagehImage2 = lcDrwAddImage( hDrw, L"", szImageFile2 );// insert the image into a drawingX = 0.0;Y = 0.0;W = 100.0; // width of image ref. (height will be set according the ratio of image dimensions)hImageRef = lcBlockAddImageRef( hBlock, hImage, X,Y, W,0, true );// get height of the image referenceH = lcPropGetFloat( hImageRef, LC_PROP_IMGREF_H );// add 2nd image reference above the 1stY+=H;hImageRef = lcBlockAddImageRef( hBlock, hImage, X,Y, W,0, false );// flip verticallylcPropPutBool( hImageRef, LC_PROP_IMGREF_FLIPVER, true );// and make it greyscalelcPropPutBool( hImageRef, LC_PROP_IMGREF_GREY, true );// add 3rd image reference at right of the 2ndX+=W;hImageRef = lcBlockAddImageRef( hBlock, hImage, X,Y, W,0, true );// reduce resolution 8 timeslcImgRefResize( hImageRef, Wpix/8, Hpix/8, LC_IMGRES_BICUBIC );// add 4rd image referenceY-=H;hImageRef = lcBlockAddImageRef( hBlock, hImage, X,Y, W,0, false );// get center pointXc = lcPropGetFloat( hImageRef, LC_PROP_IMGREF_XC );Yc = lcPropGetFloat( hImageRef, LC_PROP_IMGREF_YC );// scale and rotate the image ref.lcEntScale( hImageRef, Xc, Yc, 0.8 );lcEntRotate( hImageRef, Xc, Yc, 30.0 * LC_DEG_TO_RAD );// add image ref. of hImage2Y += H;W2 = W / 4.0;hImageRef = lcBlockAddImageRef( hBlock, hImage2, X-W2/2, Y-W2/2, W2,0, false );// set transparent colorlcPropPutInt( hImageRef, LC_PROP_IMGREF_TRANSP, 1 );lcPropPutInt( hImageRef, LC_PROP_IMGREF_TRCOLOR, RGB(255,255,255) );// displaylcBlockUpdate( hBlock, true, 0 );lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
Draw custom raster image (rendered by application)
...// register event procedurelcEventSetProc( LC_EVENT_DRAWIMAGE, DrawImageProc, 0, 0 );
...// create image object in a drawingHANDLE hImgRef;hImgRef = lcBlockAddImagePlace( hBlock, 105, 10,20,100,50, true );lcBlockUpdate( hBlock, false, hImgRef );lcWndRedraw( m_hLcWnd );
...// This function is called on LC_EVENT_DRAWIMAGE event
//-----------------------------------------------
void CALLBACK DrawImageProc (HANDLE hEvent)
{COkDib Dib;OK_DIBDRAWPRM Prm;double W, H, PixelSize;int idImage;HANDLE hLcWnd;if (Dib.Load( L"d:/Pictures/SomeImage.bmp" ) == false){return;}hLcWnd = lcPropGetHandle( hEvent, LC_PROP_EVENT_WND );idImage = lcPropGetInt( hEvent, LC_PROP_EVENT_INT6 ); // ID passed by lcBlockAddImagePlace()W = lcPropGetFloat( hEvent, LC_PROP_EVENT_FLOAT1 ); // image width (drawing's units)H = lcPropGetFloat( hEvent, LC_PROP_EVENT_FLOAT2 ); // image height (drawing's units)memset( &Prm, 0, sizeof(Prm) );Prm.hDC = (HDC)lcPropGetHandle( hEvent, LC_PROP_EVENT_HDC );Prm.ImgLeft = lcPropGetInt( hEvent, LC_PROP_EVENT_INT1 );Prm.ImgBottom = lcPropGetInt( hEvent, LC_PROP_EVENT_INT2 );PixelSize = lcPropGetFloat( hLcWnd, LC_PROP_WND_PIXELSIZE );Prm.ImgWidth = (UINT)(W/PixelSize + 0.5); // 0 for non-scalable imagePrm.ImgHeight = (UINT)(H/PixelSize + 0.5); // 0 for non-scalable image
// Prm.Align = 1; // alignment for non-scalable image, 0: center, 1: left-bottomPrm.bDevRectValid = true; // if TRUE then a device rectangle (below parameters) are validPrm.DevLeft = 0;Prm.DevTop = 0;Prm.DevRight = lcPropGetInt( hEvent, LC_PROP_EVENT_INT3 );Prm.DevBottom = lcPropGetInt( hEvent, LC_PROP_EVENT_INT4 );// the next function draws the image using WinAPI function StretchDIBitsDib.Draw( Prm );
}
六、ECW / Jpeg2000 Image
七、Hatch
void DemoHatch (HANDLE hLcWnd)
{HANDLE hBlock, hEnt;bool bSolid = false; // if TRUE then solid fillint Method = 0; // method of creating a hatch entitydouble Scale = 8.0; // scale of hatch patterndouble Angle = 45 * LC_DEG_TO_RAD; // rotation of hatch pattern// get a block, linked with CAD windowhBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// clear selection setlcBlockUnselect( hBlock );// create entities and add them into selectionhEnt = lcBlockAddCircle( hBlock, 10, 10, 5, false );lcBlockSelectEnt( hBlock, hEnt, true );hEnt = lcBlockAddCircle( hBlock, 30, 10, 5, false );lcBlockSelectEnt( hBlock, hEnt, true );hEnt = lcBlockAddRect2( hBlock, 0, 0, 40, 20, 5, false );lcBlockSelectEnt( hBlock, hEnt, true );// create Hatch entity using selected entities as an outlineif (bSolid){hEnt = lcBlockAddHatch( hBlock, L"", L"", 0.0, 0.0 );// set filling colorlcPropPutStr( hEnt, LC_PROP_ENT_FCOLOR, L"0,255,255" );}else{if (Method == 0){// hatch pattern is defined in *.pat filelcBlockAddHatch( hBlock, L"hatches.pat", L"ANGLE", Scale, Angle );}else{// hatch pattern is defined by text stringlcBlockAddHatch( hBlock, L"", L"0, 0,0, 0,.275, .2,-.075\n90, 0,0, 0,.275, .2,-.075", Scale, Angle );}} // clear selection set and update block extentslcBlockUnselect( hBlock );lcBlockUpdate( hBlock, false, 0 );// zoom viewlcWndZoomRect( hLcWnd, -10, -10, 50, 30 );
}
Create hatch:lcHatchBoundStart;lcHatchBoundEntity; lcHatchBoundEndLoop;lcHatchBoundEnd.
void DemoHatch2 (HANDLE hLcWnd)
{HANDLE hBlock, hHatch, hEnt;bool bSolid = false; // if TRUE then solid fillint Method = 1; // method of creating a hatch entitydouble Scale = 5.0; // scale of hatch patterndouble Angle = 30.0 * LC_DEG_TO_RAD; // rotation of hatch patternWCHAR* szPattern;// get a block, linked with CAD windowhBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// create Hatch entity using selected entities as an outlineif (bSolid){hHatch = lcBlockAddHatch( hBlock, L"", L"", 0.0, 0.0 );// set filling colorlcPropPutStr( hHatch, LC_PROP_ENT_FCOLOR, L"0,255,255" );}else{Scale = 5.0;Angle = 30.0 * LC_DEG_TO_RAD;if (Method == 0){// hatch pattern is defined in *.pat fileszPattern = L"ANGLE";hHatch = lcBlockAddHatch( hBlock, L"hatches.pat", szPattern, Scale, Angle );}else{// hatch pattern is defined by text stringszPattern = L"0, 0,0, 0,.275, .2,-.075\n90, 0,0, 0,.275, .2,-.075";hHatch = lcBlockAddHatch( hBlock, L"", szPattern, Scale, Angle );}}// the hatch entity has not boundaries, so we have to add itlcHatchBoundStart( hHatch );// create outer boundary from lines and arcshEnt = lcBlockAddLine( hBlock, 0, 0, 15, 0 );lcHatchBoundEntity( hHatch, hEnt );hEnt = lcBlockAddArc( hBlock, 15, 5, 5, 270*LC_DEG_TO_RAD, 180*LC_DEG_TO_RAD );lcHatchBoundEntity( hHatch, hEnt );hEnt = lcBlockAddLine( hBlock, 15, 10, 0, 10 );lcHatchBoundEntity( hHatch, hEnt );hEnt = lcBlockAddArc( hBlock, 0, 5, 5, 90*LC_DEG_TO_RAD, 180*LC_DEG_TO_RAD );lcHatchBoundEntity( hHatch, hEnt );lcHatchBoundEndLoop( hHatch ); // add inner boundarieshEnt = lcBlockAddCircle( hBlock, 0, 5, 2.0, false );lcHatchBoundEntity( hHatch, hEnt );hEnt = lcBlockAddRect( hBlock, 12,5, 6, 3, 0, false );lcHatchBoundEntity( hHatch, hEnt );// finish boundaries definitionlcHatchBoundEnd( hHatch );lcBlockUpdate( hBlock, true, 0 );// zoom viewlcWndZoomRect( hLcWnd, -15, -10, 30, 20 );
}
void DemoGetHatchOutlines (HANDLE hLcWnd)
{int Key = 123; // required hatch entity is marked with this key valueHANDLE hBlock, hEntHatch, hPline;int i, j, k, n, nPaths;double x, y, dx, dy;// get a block, linked with CAD windowhBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_VIEWBLOCK );// get required hatch entityhEntHatch = lcBlockGetEntByKey( hBlock, Key );dx = 30.0;dy = 15.0;// get hatch outlinesnPaths = lcPropGetInt( hEntHatch, LC_PROP_HATCH_NLOOP );k = 0;for (i=0; i<nPaths; ++i){// create a polyline which will be a copy of the hatch outlinehPline = lcBlockAddPolyline( hBlock, 0, true, false );// get outline verticesn = lcHatchGetLoopSize( hEntHatch, i );for (j=0; j<n; ++j) {lcHatchGetPoint( hEntHatch, k, &x, &y );++k;// add vertex to the polylinelcPlineAddVer( hPline, 0, x+dx, y+dy );}lcPlineEnd( hPline );// set red color for the polylinelcPropPutInt( hPline, LC_PROP_ENT_COLOR, RGB(255,0,0) );}lcBlockUpdate( hBlock, true, 0 );// view drawing's extentslcWndZoomRect( hLcWnd, 0, 0, 0, 0 );
}
void DemoGetHatchEnts (HANDLE hLcWnd)
{int Key = 123; // required hatch entity is marked with this key valueint NumEnts;HANDLE hBlock, hEnt, hEntHatch;BOOL bAssoc;// get a block, linked with CAD windowhBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_VIEWBLOCK );// find required hatch by user-defined keyhEntHatch = lcBlockGetEntByKey( hBlock, Key );if (hEntHatch){// check if the hatch is associativebAssoc = lcPropGetBool( hEntHatch, LC_PROP_HATCH_ASSOC );if (bAssoc){// get number of boundary entitiesNumEnts = lcPropGetInt( hEntHatch, LC_PROP_HATCH_NENTS );// get first entity of hatch boundaryhEnt = lcHatchGetEnt( hEntHatch, 0 ); while( hEnt ){// set red color for the entitylcPropPutInt( hEnt, LC_PROP_ENT_COLOR, RGB(255,0,0) );// get next entity of hatch boundaryhEnt = lcHatchGetEnt( hEntHatch, 1 ); }lcWndRedraw( hLcWnd );}}
}
八、Dimension
1.Dimension Linear (rotated)
2.Dimension Aligned
In aligned dimensions, the dimension line is parallel to the extension line origins.
3.Dimension Angular
Angular dimensions measure the angle between two lines or three points.
4.Dimension Radial
5.Dimension Diametric
6.Dimension Ordinate
void DemoDims (HANDLE hLcWnd)
{HANDLE hBlock, hEnt;WCHAR* szColor = L"200,150,50";// get a block linked to graphics windowhBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );// linear dimensionslcBlockAddDimLin( hBlock, 0,0, 30,20, 15,40, 10*LC_DEG_TO_RAD, L"L=<>" );lcBlockAddDimLin( hBlock, 0,0, 30,20, 40,10, 95*LC_DEG_TO_RAD, L"" );lcBlockAddDimHor( hBlock, 100,0, 130,20, 40, L"L=<>" );lcBlockAddDimVer( hBlock, 100,0, 130,20, 140, L"" );// aligned dimensionslcBlockAddDimAli( hBlock, 0,0, 30,20, 0,50, L"" );lcBlockAddDimAli2( hBlock, 100,0, 130,20, 20, L"" );// ordinate dimensionslcBlockAddDimOrd( hBlock, 40,30, 35,50, true, L"X=<>" );lcBlockAddDimOrd( hBlock, 40,30, 60,35, false, L"Y=<>" );// additional entitieshEnt = lcBlockAddArc( hBlock, 70,50, 20, -30*LC_DEG_TO_RAD, 90*LC_DEG_TO_RAD );lcPropPutStr( hEnt, LC_PROP_ENT_COLOR, szColor );lcPropPutBool( hEnt, LC_PROP_ARC_SECTOR, true );hEnt = lcBlockAddArc( hBlock, 70,50, 28.284, -110*LC_DEG_TO_RAD, 200*LC_DEG_TO_RAD );lcPropPutStr( hEnt, LC_PROP_ENT_COLOR, szColor );hEnt = lcBlockAddCircle( hBlock, 170,50, 20, false );lcPropPutStr( hEnt, LC_PROP_ENT_COLOR, szColor );// radius dimensionslcBlockAddDimRad( hBlock, 70,50, 90,50, 100,50, L"" );lcBlockAddDimRad2( hBlock, 170,50, 20,-30*LC_DEG_TO_RAD, 10, L"" );// diameter dimensionslcBlockAddDimDia( hBlock, 70,50, 90,70, 80,100, L"" );lcBlockAddDimDia2( hBlock, 170,50, 20,30*LC_DEG_TO_RAD, 30, L"" );// angular dimensionslcBlockAddDimAng( hBlock, 0,100, 10,100, 0,110, 20,101, 0.5, L"" );lcBlockAddDimAng( hBlock, 0,100, 10,98, 10,100, 23,99.9, -2, L"" );lcBlockAddDimAng2( hBlock, 50,100, 60,100, 50,110, 60,111, 70,100, 0.5, L"" );// update viewlcBlockUpdate( hBlock, false, 0 );lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}
九、Leader
LiteCAD参考文档的学习四(单文本、多文本、弧形文本、光栅图像、图像引用、ECW/Jpeg2000 Image图像、填充图案、尺寸、引线)相关推荐
- LiteCAD参考文档的学习二(命令接口,命名对象之块、块的引用、块的属性、命令接口块的插入、块的复制)
LiteCAD API reference 一.Command Interface Almost all functionality can be accessed via the lcWndExeC ...
- LiteCAD参考文档的学习七(图像窗口、放大窗口、鸟瞰图、对象属性窗口、极轴跟踪、跳线、事件、用户自定义命令、其它功能)
LiteCAD API reference 一.Graphics window The LiteCAD graphics window is used to display and edit grap ...
- GNU sed 4.5 版参考文档全文翻译 各命令和随带20个示例详细解析(四)
GNU sed 流编辑器 GNU sed 一个流编辑器(四) 5. 正则表达式:选择文本 5.1 sed正则表达式摘要 5.2 基础正则表达式和扩展正则表达式 5.3 基础正则表达式语法摘要 5.4 ...
- Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档) 9-16
9. 数据 Spring Boot与多个数据技术集成,包括SQL和NoSQL. 9.1. SQL数据库 Spring Framework提供扩展支持用于与SQL数据工作,从使用JdbcTemplate ...
- Hibernate中文参考文档(JFIS)
HIBERNATE - 符合Java习惯的关系数据库持久化 下一页 HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.0.4 目录 前言 1. 翻译 ...
- 面向开放域密集检索多视图文档表示学习,微软提出MVR,性能SOTA!(ACL 2022)...
关注公众号,发现CV技术之美 本文分享 ACL 2022 论文『Multi-View Document Representation Learning for Open-Domain Dense Re ...
- 【毕业设计】60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程、源代码、低重复率参考文档、实物图)
[毕业设计]60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程.源代码.低重复率参考文档.实物图) 文章目录 [毕业设计]60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原 ...
- [参考文档] [翻译]Oracle 12c R2优化器白皮书
[参考文档] [翻译]Oracle 12c R2优化器白皮书 原文链接: http://www.oracle.com/technetwor ... edb-12c-1963236.pdf 第一版翻译链 ...
- 刷新4项文档智能任务纪录,百度TextMind打造ERNIE-Layout登顶文档智能权威榜单
来源:机器之心本文约2300字,建议阅读5分钟 文档智能国际权威榜单文档视觉问答 DocVQA 迎来了新霸主. 百度提出跨模态文档理解模型 ERNIE-Layout,首次将布局知识增强技术融入跨模态文 ...
最新文章
- 实验四 主存空间的分配和回收
- CentOS7.4下DNS服务器软件BIND安装及相关的配置(一)
- Go 初体验 - 令人惊叹的语法 - defer.3 - defer 函数参数计算时机
- java父线程子线程
- 三菱变频器e700参数表_三菱Q系列PLC,用CCLink控制变频器正反转和多段速
- 利用css布局效果图
- 担忧医生因AI技术而失业?杞人忧天
- [置顶]动态网页开发基础【笔记】
- nginx反向代理配置实例分享
- 信息学奥赛一本通(1049:晶晶赴约会)
- Prepo —— 图标转化器
- Python: 自定义类对象序列化为Json串
- MySQL 基础 —— 数据类型、各种变量
- Vue项目需求实现记录总目录(永久更新)
- 海南工会云会员认证_“网上工会”大普惠全面升级 全体会员共享生活大福利...
- JAVA实现SHA256算法
- 串口硬盘如何应用于并口硬盘计算机,并口硬盘和串口硬盘如何一起用
- android toast居中显示_Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明...
- Cfree5可以JAVA_Free C++ (and C)
- angular中自定义webpack配置
热门文章
- 10份可直接套用的华为项目管理模板
- 搭建社群积分系统,使用这个工具足以
- 不要被假相迷惑-有意思的声卡驱动
- 网络数据帧中的(Jumbo Frame)巨帧、超长帧
- 发那科机器人plc电池_FANUC机器人维修保养故障简析
- UVA - 1103:Ancient Messages
- 【MATLAB】基本绘图 ( plot 函数绘制多个图形 | legend 函数标注图形 | 图形修饰 )
- 平台服务器的配置信息失败,安装程序配置服务器失败-安装程序配置服务器失败.参考服务器错误日志和Cwindowssqlstp.log了解更多信息...
- VBA 2000年之后活期存款利息计算
- 【Crow】一款开源C++Web框架的安装与构建