function MyDynDrawCommentWorldDraw(pt1) { var _pt1 = pt1; this.worldDraw = function(currentPoint) { this.drawLine(currentPoint,_pt1); var sText = "测试Test"; var txtH = MxFun.screenCoordLong2Doc(50); var ptTxt = new THREE.Vector3; var dTxtWidth = txtH * 6.0; ptTxt.x = currentPoint.x + txtH * 0.3 + dTxtWidth * 0.5; ptTxt.y = currentPoint.y + txtH * 0.1 + txtH * 0.5; this.drawText(sText,txtH,0.0,ptTxt); var pt3 = new THREE.Vector3; pt3.x = currentPoint.x + dTxtWidth;; pt3.y = currentPoint.y this.drawLine(pt3,currentPoint); } } mxModule.regist(()=>{ MxFun.addCommand("Mx_Comment",()=>{ // .. var getPoint = new MrxDbgUiPrPoint(); getPoint.go((status)=>{ if(status != 0) { console.log(status); return; } var pt1 = getPoint.value(); getPoint.setBasePt(pt1); getPoint.setUseBasePt(true); MyDynDrawCommentWorldDraw.prototype = new McEdGetPointWorldDraw(); var worldDrawComment = new MyDynDrawCommentWorldDraw(getPoint.value()); getPoint.setUserDraw(worldDrawComment); getPoint.go((status)=>{ if(status != 0) { console.log(status); return; } var currentPoint = getPoint.value(); var scene = MxFun.getCurrentDraw().getDrawContainer(); var iColor = 0XFFFFFF; scene.add(MxThreeJS.createLine(currentPoint,pt1,iColor)); var sText = "测试Test"; var txtH = MxFun.screenCoordLong2Doc(50); var ptTxt = new THREE.Vector3; var dTxtWidth = txtH * 6.0; ptTxt.x = currentPoint.x + txtH * 0.3 + dTxtWidth * 0.5; ptTxt.y = currentPoint.y + txtH * 0.1 + txtH * 0.5; scene.add(MxThreeJS.creatTextSprite(sText,ptTxt,txtH,0.0,iColor) ); var pt3 = new THREE.Vector3; pt3.x = currentPoint.x + dTxtWidth;; pt3.y = currentPoint.y scene.add(MxThreeJS.createLine(currentPoint,pt3,iColor)); MxFun.updateDisplay(); }); }); // .. }); })