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 ...
随机推荐
- UVa 557 Burger (概率+递推)
题意:有 n 个牛肉堡和 n 个鸡肉堡给 2n 个客人吃,在吃之前抛硬币来决定吃什么,如果剩下的汉堡一样,就不用投了,求最后两个人吃到相同的概率. 析:由于正面考虑还要要不要投硬币,太麻烦,所以我们先 ...
- android opengl es 源码
[转自:http://blog.csdn.net/happyhell/article/details/6086973] The entire OpenGL ES API on Android is i ...
- python---socket与socketserver
1.socket的方socket.getaddrinfo(host, port, family=0, type=0, proto=0, flags=0) #获取要连接的对端主机地址sk.bind(ad ...
- lightoj 1027【数学概率】
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N=1e2+10; int ma ...
- Lightoj 1129【字典树】
题意:如果存在一个串是另一个串的公共前缀就是NO,否则就是YES 思路:利用字典树的特性搞搞就好了 #include <bits/stdc++.h> using namespace std ...
- [題解](最小生成樹/LCA)luogu_P1967貨車運輸
一道好題不出所料又抄的題解 1.首先對於這張圖肯定要考慮走哪些邊不走哪些邊,發現我們想要的肯定那些邊權最大的邊,所以想到最大生成樹 這樣能保證選到盡量大的邊 2.跑完最大生成樹后每兩點之間就有唯一路徑 ...
- 大数加法 HDU 1002
#include <iostream> #include <cstring> #include <string> #include <cstdio> # ...
- Django (五) modeld进阶
day 05 models进阶 1.models基本操作 django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 对于ORM框架里: 我们写的类表示数据库的表 ...
- 洛谷 P1121 环状最大两段子段和
https://www.luogu.org/problemnew/show/P1121 不会做啊... 看题解讲的: 答案的两段可能有两种情况:一是同时包含第1和第n个,2是不同时包含第1和第n个 对 ...
- 将GitLab上面的代码克隆到本地
1.安装GitLab客户端 2.去GitLab服务端找项目路径 3.去GitLab客户端去克隆代码 右键-->git Clone 4.最后结果