function ExplodeFun(pCustomEntity, pWorldDraw, txt) { var sGuid = pCustomEntity.Guid; if (sGuid == "TestMxCustomEntity" ) { if (!pCustomEntity.IsHave( "First" )) return ; var stp = pCustomEntity.GetPoint( "First" ); var ept = pCustomEntity.GetPoint( "BasePoint" ); var dimpt = pCustomEntity.GetPoint( "DimPoint" ); var txt = pCustomEntity.GetString( "Text" ); var textH = pCustomEntity.GetDouble( "TextHeight" ); var edgeNum = pCustomEntity.GetLong( "EdgeNumber" ); var shapRadius = pCustomEntity.GetDouble( "ShapRadius" ); var isCircle = pCustomEntity.GetLong( "isCircle" ); // 创建一个批注对象. var comment = mxOcx.NewEntity( "IMxDrawComment" ); //标注文字 comment.Text = txt; //标注文字高度 comment.TextHeight = textH; //标注位置提示多边形的边数. 小于2不绘制,=2绘制圆,大于2绘制多边形 comment.EdgeNumber = edgeNum; //标注位置提示多边形的半径 comment.ShapRadius = shapRadius; //标注基点 comment.basePoint = ept; //标注位置点 comment.Position = dimpt; // 设置文字样式 pWorldDraw.TextStyle = "MyCommentFont" ; // 动态绘制. pWorldDraw.DrawEntity(comment); if (isCircle) { var dR = stp.DistanceTo(ept) * 0.5; var vec = stp.SumVector(ept); vec.Mult(0.5); ept.Add(vec); //绘制一个圆 //参数一为圆的中心X值 ,参数二为圆的中心Y值, //参数三为半径 pWorldDraw.DrawCircle(ept.x, ept.y, dR); } // 绘制矩形框. else { //绘制一个直线 //参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标 pWorldDraw.DrawLine(stp.x, stp.y, stp.x, ept.y); pWorldDraw.DrawLine(stp.x, ept.y, ept.x, ept.y); pWorldDraw.DrawLine(ept.x, ept.y, ept.x, stp.y); pWorldDraw.DrawLine(ept.x, stp.y, stp.x, stp.y); } mxOcx.SetEventRet(1); } } |