CAD交互绘制mcdbsolid对象(网页版)

主要用到函数说明:


_DMxDrawX::DrawSolid


绘McDbSolid对象。详细说明如下:


参数 说明

DOUBLE dX1

第一个点X

DOUBLE dY1

第一个点Y

DOUBLE dX2

第二个点X

DOUBLE dY2

第二个点Y

DOUBLE dX3

第三个点X

DOUBLE dY3

第三个点Y

DOUBLE dX4

第四个点X

DOUBLE dY4

第四个点Y


js中实现代码说明:


动态拖放时的绘制事件:


function DynWorldDrawMcDbSolid( pCustomEntity, pWorldDraw, curPt) {
    //与用户交互在图面上提取一个点
    var vFirstPt = pCustomEntity.GetPoint("vFirstPt");
    var vSecondPt = pCustomEntity.GetPoint("vSecondPt");
    var vThirdPt = pCustomEntity.GetPoint("vThirdPt");
    pWorldDraw.DrawSolid(vFirstPt.x, vFirstPt.y,vSecondPt.x, vSecondPt.y, vThirdPt.x, vThirdPt.y,  curPt.x, curPt.y);
}


动态绘制mcdbsolid对象:


function DrawSolid () {
    // 创建一个与用户交互取点的对象。
    var point1 = mxOcx.GetPoint(false,0,0,"点取第一点:");
    if(point1 == null)
    {
        return;
    }
    var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getSecondPt.message = "点取第二点";
    getSecondPt.basePoint = point1;
    //开启皮筋效果
    getSecondPt.setUseBasePt(true);
    // 开始点第二点。
    if (getSecondPt.go() != 1)
        return;
    var getThirdPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getThirdPt.message = "点取第三点";
    getThirdPt.basePoint = getSecondPt.value();
    //开启皮筋效果
    getThirdPt.setUseBasePt(true);
    // 开始第三点。
    if (getThirdPt.go() != 1)
        return;
    var getFourthPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getFourthPt.message = "点取第四点";
    var spDrawData = getFourthPt.InitUserDraw("TestDynDrawMcDbSolid");
    spDrawData.SetPoint("vFirstPt", point1);
    spDrawData.SetPoint("vSecondPt", getSecondPt.value());
    spDrawData.SetPoint("vThirdPt", getThirdPt.value());
    getFourthPt.basePoint = getThirdPt.value();
    //不开启皮筋效果
    getFourthPt.setUseBasePt(false);
    //调用
    // 开始第四点。
    if (getFourthPt.go() != 1)
        return;
    var ret = spDrawData.Draw();
}

posted on 2019-06-25 10:16  梦想CAD控件  阅读(182)  评论(0)    收藏  举报

导航