CAD交互绘制云线批注(网页版)
js中实现代码说明:
动态拖放时的绘制事件:
- function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) {
- //自定义实体的GUID标识符
- var sGuid = pData.Guid;
- //设置自定义事件的返回值
- mxOcx.SetEventRet(0);
- var curPt = mxOcx.NewPoint();
- curPt.x = dX;
- curPt.y = dY;
- if (sGuid == "DrawCircle") {
- var pt1 = pData.GetPoint("pt1");
- var dR = curPt.DistanceTo(pt1) * 0.5;
- var vec = curPt.SumVector(pt1);
- vec.Mult(0.5);
- pt1.Add(vec);
- pWorldDraw.DrawCircle(pt1.x, pt1.y, dR);
- }
- }
动态拖放时的绘制事件:
- 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 ExplodeFun(pCustomEntity, pWorldDraw, txt) {
- var sGuid = pCustomEntity.Guid;
- if (sGuid == "TestMxCustomEntity1") {
- if (!pCustomEntity.IsHave("First"))
- return;
- var stp = pCustomEntity.GetPoint("First");
- var ept = pCustomEntity.GetPoint("BasePoint");
- var dimpt = pCustomEntity.GetPoint("DimPoint");
- var txt = pCustomEntity.GetString("Text");
- var textH = pCustomEntity.GetDouble("TextHeight");
- var edgeNum = pCustomEntity.GetLong("EdgeNumber");
- var shapRadius = pCustomEntity.GetDouble("ShapRadius");
- var isCircle = pCustomEntity.GetLong("isCircle");
- var comment = mxOcx.NewEntity("IMxDrawComment");
- comment.Text = txt;
- comment.TextHeight = textH;
- comment.EdgeNumber = edgeNum;
- comment.ShapRadius = shapRadius;
- comment.basePoint = ept;
- comment.Position = dimpt;
- pWorldDraw.TextStyle = "MyCommentFont";
- // 动态绘制.
- pWorldDraw.DrawEntity(comment);
- // 绘制矩形框.
- if (isCircle) {
- var dR = stp.DistanceTo(ept) * 0.5;
- var vec = stp.SumVector(ept);
- vec.Mult(0.5);
- ept.Add(vec);
- pWorldDraw.DrawCircle(ept.x, ept.y, dR);
- }
- else {
- pWorldDraw.DrawLine(stp.x, stp.y, stp.x, ept.y);
- pWorldDraw.DrawLine(stp.x, ept.y, ept.x, ept.y);
- pWorldDraw.DrawLine(ept.x, ept.y, ept.x, stp.y);
- pWorldDraw.DrawLine(ept.x, stp.y, stp.x, stp.y);
- }
- mxOcx.SetEventRet(1);
- }
- }
动态绘制文字:
- function DoCloudLineComment() {
- var param = mxOcx.NewResbuf();
- param.AddString("");
- param.AddDouble(100);
- var ret = mxOcx.CallEx("Mx_ShowMTextDialog", param);
- if (ret.AtString(0) != "Ok") {
- return;
- }
- var txt = ret.AtString(1);
- var txtH = ret.AtDouble(2);
- var txtColorIndex = ret.AtLong(3);
- // 加入换行操作符\\P
- //txt = txt + "\\PTEST";
- // 创建一个文字样式,用于批注文字字体.
- mxOcx.AddTextStyle2("MyCommentFont", "黑体", 0.7);
- // 创建一个与用户交互取点的对象。
- var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
- getPt.message = "输入标注插入基点";
- // 设置动态绘制参数.
- var spDrawData = getPt.InitUserDraw("DrawComment");
- spDrawData.SetString("Text", txt);
- spDrawData.SetDouble("TextHeight", txtH);
- spDrawData.SetLong("EdgeNumber", 0);
- spDrawData.SetDouble("ShapRadius", 300);
- // 开始取第一个点。
- 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", txtH);
- 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 = txtColorIndex;
- if(ent.ObjectName == "McDbComment")
- {
- ent.BoundingBoxType = 4;
- ent.ArrowType = 2;
- ent.ShapRadius = 40;
- }
- }
- }
CAD交互绘制云线批注(网页版)的更多相关文章
- CAD交互绘制样条线(网页版)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
- CAD参数绘制样条线(网页版)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::PathLineTo 把路径下一个点移到指定位置.详细说明如下: 参数 说明 DOUBL ...
- CAD动态绘制样条线(网页版)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
- CAD交互绘制mcdbsolid对象(网页版)
主要用到函数说明: _DMxDrawX::DrawSolid 绘McDbSolid对象.详细说明如下: 参数 说明 DOUBLE dX1 第一个点X DOUBLE dY1 第一个点Y DOUBLE d ...
- CAD交互绘制矩形框(网页版)
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
- CAD交互绘制样条线(com接口)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
- CAD参数绘制对齐标注(网页版)
主要用到函数说明: _DMxDrawX::DrawDimAligned 绘制一个对齐标注.详细说明如下: 参数 说明 DOUBLE dExtLine1PointX 第一条界线开始点X值 DOUBLE ...
- CAD参数绘制线型标注(网页版)
主要用到函数说明: _DMxDrawX::DrawDimRotated 绘制一个线型标注.详细说明如下: 参数 说明 DOUBLE dExtLine1PointX 输入第一条界线的起始点X值 DOUB ...
- CAD参数绘制图案填充(网页版)
绘制工程图,常常需要将某种图案填充到某一区域,例如剖面线的绘制.MxCAD提供了丰富的填充图案,可以利用这些图案进行快速填充. js中实现代码说明: function DrawPathToHatch2 ...
随机推荐
- 甩掉 ashx/asmx,使用jQuery.ajaxWebService请求WebMethod,Ajax处理更加简练
在WebForm下 开发ajax程序,需要借助于一般处理程序(*.ashx)或web服务(*.asmx),并且每一个ajax请求,都要建一个这样的文件,如此一来,如果在一个项目中ajax程序多了,势必 ...
- XSL简单实例
利用xsl可以做到将数据和格式完全分离,下面比较一个xml+css和xml+xsl的区别. XML + css resume.xml文件内容如下: <?xml version="1.0 ...
- Spring入门(四):使用Maven管理Spring项目
让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要 ...
- 洛谷 - P1390 - 公约数的和 - 莫比乌斯反演 - 欧拉函数
https://www.luogu.org/problemnew/show/P1390 求 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} gcd(i,j) $ ...
- Unity2016 Unity3D开发VR游戏的经验
http://z.youxiputao.com/articles/8313 在4月12日的Unite 2016大会上,暴风魔镜高级产品经理吴涛分享他用Unity3D开发VR游戏的经验,以下为分享实录: ...
- 洛谷P2485 [SDOI2011]计算器(exgcd+BSGS)
传送门 一题更比三题强 1操作直接裸的快速幂 2操作用exgcd求出最小正整数解 3操作用BSGS硬上 然后没有然后了 //minamoto #include<cstdio> #inclu ...
- chmod 详解
http://man.linuxde.net/chmod chmod u+x,g+w f01 //为文件f01设置自己可以执行,组员可以写入的权限 chmod u=rwx,g=rw,o=r f01 c ...
- idea | 命名空间改过后重新导入项目方法
file菜单-->Open-->找到项目中pom文件-->会提示as project 和as file-->选择as project,会自动生成idea所有相关的文件
- python_18(Django基础)
第1章 web框架的本质 1.1 socket 1.2 空格后面是主体内容 1.3 HTTP协议 1.3.1 响应流程 1.4 HTTP请求方法 1.5 HTTP工作原理 1.6 URL 1.7 HT ...
- 遍历list集合的三种方式
List<String> list1 = new ArrayList<String>(); list1.add("1"); list1.add(" ...