0
点赞
收藏
分享

微信扫一扫

CAD交互绘制批注(网页版)


js中实现代码说明:

动态拖放时的绘制事件:

function DynWorldDrawComment( pCustomEntity, pWorldDraw, curPt) {

// 得到绘制参数.



var sText = pCustomEntity.GetString("Text");

var dTextHeight = pCustomEntity.GetDouble("TextHeight");

var iEdgeNumber = pCustomEntity.GetLong("EdgeNumber");

var dShapRadius = pCustomEntity.GetDouble("ShapRadius");

// 创建一个批注对象.

var comment = mxOcx.NewEntity("IMxDrawComment");

comment.Text = sText;

comment.TextHeight = dTextHeight;

comment.EdgeNumber = iEdgeNumber;

comment.ShapRadius = dShapRadius;

comment.basePoint = curPt;

comment.Position = curPt;

pWorldDraw.TextStyle = "MyCommentFont";

// 动态绘制.

pWorldDraw.DrawEntity(comment);

}
————————————————

动态绘制文字:

function  DynWorldDrawComment2( pCustomEntity,pWorldDraw,  curPt) {

// 得到绘制参数.



var sText = pCustomEntity.GetString("Text");

var dTextHeight = pCustomEntity.GetDouble("TextHeight");

var iEdgeNumber = pCustomEntity.GetLong("EdgeNumber");

var dShapRadius = pCustomEntity.GetDouble("ShapRadius");

var basePoint = pCustomEntity.GetPoint("BasePoint");

// 创建一个批注对象.

var comment = mxOcx.NewEntity("IMxDrawComment");

comment.Text = sText;

comment.TextHeight = dTextHeight;

comment.EdgeNumber = iEdgeNumber;

comment.ShapRadius = dShapRadius;

comment.basePoint = basePoint;

comment.Position = curPt;

// 设置文字样式。

pWorldDraw.TextStyle = "MyCommentFont";

// 动态绘制.

pWorldDraw.DrawEntity(comment);

}

动态绘制文字:

function DoComment() {

// 出来一个对象,让用户输入文字.

var winWidth = 440;

var winHeight = 140;

var winLeft = (screen.width - winWidth) / 2;

var winTop = (screen.height - winHeight) / 2 - 20;

var str = 'dialogHeight:' + winHeight + 'px;dialogWidth:' + winWidth + 'px;dialogTop:' + winTop + 'px;dialogLeft:' + winLeft + 'px;resizable:yes;center:yes;status:no;'

var rt = window.showModalDialog("Gettext.htm?tmp=" + Math.random(), "输入文字", str);

var txt;

if (typeof (rt) == "undefined") {

return;

} else {

var arr = rt.split(",");

txt = arr[0];

}

// 加入换行操作符\\P

//txt = txt + "\\PTEST";

// 创建一个文字样式,用于批注文字字体.

mxOcx.AddTextStyle2("MyCommentFont","黑体",0.7);

// 创建一个与用户交互取点的对象。

var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");

getPt.message = "输入标注插入基点";

// 开始取第一个点。

if (getPt.go() != 1)

return;

// 创建一个与用户交互取点的对象。

var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");

getSecondPt.message = "输入标注位置点";

getSecondPt.basePoint = getPt.value();

getSecondPt.setUseBasePt(false);

spDrawData = getSecondPt.InitUserDraw("DrawComment2");

// 设置动态绘制参数.

spDrawData.SetPoint("BasePoint", getPt.value());

spDrawData.SetString("Text", txt);

spDrawData.SetDouble("TextHeight", 100);

spDrawData.SetLong("EdgeNumber", 0);

spDrawData.SetDouble("ShapRadius", 300);

// 开始取第二个点。

if (getSecondPt.go() != 1)

return;

var ret = spDrawData.Draw();

// 设置绘制的批注文字样式。

for (var i = 0; i < ret.Count; i++)

{

var ent = ret.AtObject(i);

ent.TextStyle = "MyCommentFont";

ent.colorIndex = 4;

}

}
————————————————

举报

相关推荐

0 条评论