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();
}
浙公网安备 33010602011771号