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 DynWorldDrawCloudComment(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 frstPt = pCustomEntity.GetPoint("frstPt");
    // 创建一个批注对象.
    var comment = mxOcx.NewEntity("IMxDrawComment");
    comment.Text = sText;
    comment.TextHeight = dTextHeight;
    comment.EdgeNumber = iEdgeNumber;
    comment.ShapRadius = dShapRadius;
    comment.basePoint = basePoint;
    comment.Position = curPt;
    comment.BoundingBoxType = 5;
    comment.ArrowType = 2;
    comment.ShapRadius = 40;
    var points = mxOcx.NewComObject("IMxDrawPoints");
    //向点数组中增加一个点坐标
    points.Add2(frstPt);
    points.Add2(basePoint);
    //标注框坐标数据
    comment.Bounding = points;
    var tmpp = mxOcx.NewResbuf();
    tmpp.AddLong(1);
    comment.SetProp("isAlwaysShowLineWeight", tmpp);
    //线重
    comment.Lineweight = 25;
    //实体的CAD颜色索引值属性
    comment.colorIndex = 1;
    // 设置文字样式。
    pWorldDraw.TextStyle = "MyCommentFont";
    // 动态绘制.
    pWorldDraw.DrawEntity(comment);
}
动态绘制文字:
function DoCloudCircleComment() {
    var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getPt.message = "点取第一点";
    if (getPt.go() != 1) {
        return;
    }
    var frstPt = getPt.value();
    if (frstPt == null)
        return;
    var getPt2 = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getPt2.message = "指定第二个点";
    var spDrawData = getPt2.InitUserDraw("DrawCircle");
    spDrawData.SetPoint("pt1", frstPt);
    if (getPt2.go() != 1) {
        return;
    }
    var secondPt = getPt2.value();
    if (secondPt == null)
        return;
    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 getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getSecondPt.message = "输入标注位置点";
    getSecondPt.basePoint = secondPt;
    getSecondPt.setUseBasePt(false);
    spDrawData = getSecondPt.InitUserDraw("DrawCloudComment");
    // 设置动态绘制参数.
    spDrawData.SetPoint("frstPt", frstPt);
    spDrawData.SetPoint("BasePoint", secondPt);
    spDrawData.SetString("Text", txt);
    spDrawData.SetDouble("TextHeight", txtH);
    spDrawData.SetLong("EdgeNumber", 2);
    spDrawData.SetDouble("ShapRadius", 1);
    // 开始取第二个点。
    if (getSecondPt.go() != 1)
        return;
    var ret = spDrawData.Draw();
    // 设置绘制的批注文字样式。
    var ent = ret.AtObject(0);
    ent.colorIndex = 1;
}												
											CAD交互绘制圆形云线批注(网页版)的更多相关文章
- CAD交互绘制多段线(网页版)
		
多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下 ...
 - CAD参数绘制多段线(网页版)
		
多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度. 主要用到函数说明: _DMxDrawX::PathLineTo 把路径下一个点移到指定 ...
 - CAD交互绘制块引用对象(网页版)
		
主要用到函数说明: _DMxDrawX::DrawBlockReference 绘制块引用对象.详细说明如下: 参数 说明 DOUBLE dPosX 插入点的X坐标 DOUBLE dPosY 插入点的 ...
 - CAD交互绘制圆形批注(网页版)
		
js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...
 - CAD交互绘制多段线(com接口)
		
多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下 ...
 - CAD参数绘制实心圆弧填充(网页版)
		
js中实现代码说明: function DrawPathToHatch1() { //把路径的开始位置移动指定的点 //参数一为点的X坐标 ,参数二为点的Y坐标,参数三为该点处开始宽度,对Polyli ...
 - CAD参数绘制多行文字(网页版)
		
在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dP ...
 - CAD参数绘制块引用对象(网页版)
		
主要用到函数说明: _DMxDrawX::DrawBlockReference 绘制块引用对象.详细说明如下: 参数 说明 DOUBLE dPosX 插入点的X坐标 DOUBLE dPosY 插入点的 ...
 - CAD绘制固定圆形云线标注(网页吧)
		
js中实现代码说明: function DoCloudCircleCommentFix() { var comment = mxOcx.NewEntity("IMxDrawComment&q ...
 
随机推荐
- Srping MVC入门推荐
			
看了不少大牛们的博客,对Spring MVC心里还是一团迷雾. 看了<Spring in Action>(Spring实战),疑惑渐渐明朗. 特推荐此书.
 - YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24(转载)
			
转自:http://www.latelee.org/my-study/yuv-learning-yuv420p-to-rgb24.html 对于YUV420的格式,网上有一大堆资料,这里就不说了.直奔 ...
 - (Android)截图批处理
			
新建一个批处理文件 输入下面的内容 @echo off rem set name=%,%%,%%,%%,%%,%%,% //设置截图文件名称 set screenShotName=%,%%,%%,% ...
 - phpstudy的mysql版本升级至5.7
			
phpstudy安装的mysql版本一般都是5.5或5.4的,但是有时候做项目又必须用到mysql5.7版本,所以我们现在来看一下如何在phpstudy的环境下将mysql版本升级至5.7 温馨提醒: ...
 - (转载) 车牌识别EasyPR--开发详解
			
车牌识别EasyPR--开发详解 http://blog.csdn.net/liuuze5/article/details/46290455 源码GitHub:https://github.com/l ...
 - 洛谷P3723 [AH2017/HNOI2017]礼物(FFT)
			
传送门 首先,两个数同时增加自然数值相当于只有其中一个数增加(此增加量可以小于0) 我们令$x$为当前的增加量,${a},{b}$分别为旋转后的两个数列,那么$$ans=\sum_{i=1}^n(a_ ...
 - [Xcode 实际操作]八、网络与多线程-(23)多线程的同步与异步的区别
			
目录:[Swift]Xcode实际操作 本文将演示线程的同步与异步的区别. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 异步线程的运行,是没有按照顺序执行的. ...
 - light OJ 1282 - Leading and Trailing  数学 || double技巧
			
http://lightoj.com/volume_showproblem.php?problem=1282 #include <cstdio> #include <cstdlib& ...
 - html 手机端click 事件去掉黑色阴影效果
			
添加css样式 html{-webkit-text-size-adjust: 100%;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);} 1. -web ...
 - 图像处理库CImg
			
CImg 是一个用C++编写的开源数字图像处理库. 作者介绍 作者David Tschumperlé, 之前是法国La Rochelle大学的一名教授,现受雇于CNRS 图像组.据说作者从19 ...