| 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); } } |