CAD交互绘制带颜色线宽的直线(网页版)
本帖最后由 lihao2014 于 2019-6-27 14:34 编辑用户可以在CAD控件视区任意位置绘制直线。
主要用到函数说明:
_DMxDrawX::DrawLine
绘制一个直线。详细说明如下:
参数 说明
DOUBLE dX1 直线的开始点x坐标
DOUBLE dY1 直线的开始点y坐标
DOUBLE dX2 直线的结束点x坐标
DOUBLE dY2 直线的结束点y坐标
IMxDrawCustomEntity::Draw
把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。
_DMxDrawXEvents::DynWorldDraw
动态拖放时的绘制事件。详细说明如下:
参数 说明
DOUBLE dX 当前鼠标位置X坐标
DOUBLE dY 当前鼠标位置Y坐标
IDispatch* pWorldDraw IMxDrawWorldDraw对象,用于动态绘制
IDispatch* pData IMxDrawCustomEntity对象,动态绘制数据
_DMxDrawX::DrawText
绘制一个单行文字。详细说明如下:
参数 说明
DOUBLE dPosX 文字的位置的X坐标
DOUBLE dPosY 文字的位置的Y坐标
BSTR pszText 文字内容字符串
DOUBLE dHeight 文字高度
DOUBLE dRotation 文字的旋转角度
SHORT horizontalMode 文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight
SHORT verticalMode 文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop
js中实现代码说明:
动态拖放时的绘制事件:function DynWorldDrawWidthline( pCustomEntity, pWorldDraw, curPt) {
//与用户交互在图面上提取一个点
var vBasePt = pCustomEntity.GetPoint("BasePoint");
//设置颜色
pWorldDraw.Color= 16711680;
//设置线宽
pWorldDraw.LineWidth = 4;
//绘制一个直线
//参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标
pWorldDraw.DrawLine (vBasePt.x, vBasePt.y, curPt.x, curPt.y);
}动态绘制带颜色宽度的直线://绘制带宽度颜色的直线
function DrawWidthline() {
// 创建一个与用户交互取点的对象。
var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:");
if(point1 == null)
{
return;
}
var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getSecondPt.message = "第二点";
getSecondPt.basePoint = point1;
//不开启皮筋效果
getSecondPt.setUseBasePt(false);
//调用
var spDrawData = getSecondPt.InitUserDraw("TestDynDrawWidthline");
// 设置动态绘制参数.
spDrawData.SetPoint("BasePoint", point1);
// 开始取第二个点。
if (getSecondPt.go() != 1)
return;
var ret = spDrawData.Draw();
}
页:
[1]