主要用到函数说明:

_DMxDrawX::DrawBlockReference

绘制块引用对象。详细说明如下:

参数 说明

DOUBLE dPosX

插入点的X坐标

DOUBLE dPosY

插入点的Y坐标

BSTR pszBlkName

图块名

DOUBLE dScale

图块缩放比例

DOUBLE dAng

图块的旋转角度

js中实现代码说明:

动态拖放时的绘制事件:

function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData)
{
var sGuid = pData.Guid;
mxOcx.SetEventRet(0);
if(sGuid == "TestDynDraw")
{
//动态插入图块
// 与用户交互到在图上提取一个点
var firstPt = pData.GetPoint("pt1");
if(firstPt == null)
return;
//与用户交互,从命令中取字符串
var sBlkName = pData.GetString("BlkName");
var secondPt = mxOcx.NewPoint();
secondPt.x = dX;
secondPt.y = dY;
//计算this点减去pPoint,得到的向量
var vec = firstPt.SumVector(secondPt);
//返回向量顺时针转到与X轴的角度.[0,2PI)
var dAng = vec.Angle();
//绘制块引用对象
//参数一为插入点的X坐标;参数二为插入点的Y坐标;
//参数三为图块名;参数四为图块缩放比例;参数五为图块的旋转角度
pWorldDraw.DrawBlockReference(firstPt.x,firstPt.y,sBlkName,1.0,dAng * 180.0 / 3.14159265 + 90.0);
//设置自定义事件的返回值
mxOcx.SetEventRet(1);
}
else if (sGuid == "TestDynDraw1") {
var sBlkName = pData.GetString("BlkName");
//绘制块引用对象
pWorldDraw.DrawBlockReference(dX, dY, sBlkName, 1.0, 0.0);
} }

动态插入图块:

function DynInsert() {
var sBlkName = "Tree";
//用户需要出入图块的路径 控件程序在磁盘的文件路径
var sBlkFile = mxOcx.GetOcxAppPath() + "\\Blk\\树.dwg";
//向控件数据库中插入一个图块,不用它插入匿名块
mxOcx.InsertBlock(sBlkFile, "Tree");
//新建一个COM组件对象
var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getPt.message = "点取插入点";
//初始动态绘制
var spDrawData1 = getPt.InitUserDraw("TestDynDraw1");
//设置string类型的属性
spDrawData1.SetString("BlkName","Tree");
if (getPt.go() != 1) {
return;
}
var frstPt = getPt.value();
if (frstPt == null) {
return;
}
var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
var spDrawData = getSecondPt.InitUserDraw("TestDynDraw");
getSecondPt.message = "点取旋转角度";
//得到点时的拖放基点
getSecondPt.basePoint = frstPt;
//设置是否启用拖放基点 true:使用,false:不使用
getSecondPt.setUseBasePt(true);
//设置point类型的属性
spDrawData.SetPoint("pt1", frstPt);
//设置string类型的属性
spDrawData.SetString("BlkName", "Tree");
if (getSecondPt.go() != 1) {
return;
}
//把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上
var ret = spDrawData.Draw();
// 给属性块写文字.
var blkRef = ret.AtObject(0);
if (blkRef != null)
{
var param = mxOcx.NewResbuf();
blkRef.SetProp("createAttribute",param);
}
}

CAD交互绘制块引用对象(网页版)的更多相关文章

  1. CAD参数绘制块引用对象(网页版)

    主要用到函数说明: _DMxDrawX::DrawBlockReference 绘制块引用对象.详细说明如下: 参数 说明 DOUBLE dPosX 插入点的X坐标 DOUBLE dPosY 插入点的 ...

  2. CAD参数绘制块引用对象(com接口)

    主要用到函数说明: _DMxDrawX::DrawBlockReference 绘制块引用对象.详细说明如下: 参数 说明 DOUBLE dPosX 插入点的X坐标 DOUBLE dPosY 插入点的 ...

  3. CAD交互绘制样条线(网页版)

    在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...

  4. CAD交互绘制圆形批注(网页版)

    js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...

  5. CAD交互绘制矩形批注(网页版)

    js中实现代码说明: 动态拖放时的绘制事件: function DynWorldDrawComment2( pCustomEntity,pWorldDraw, curPt) { // 得到绘制参数. ...

  6. CAD交互绘制矩形框(网页版)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  7. CAD动态绘制样条线(网页版)

    在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...

  8. CAD参数绘制固定批注(网页版)

    js中实现代码说明: 自定义实体绘制函数 function ExplodeFun(pCustomEntity, pWorldDraw, txt) { var sGuid = pCustomEntity ...

  9. CAD参数绘制图案填充(网页版)

    绘制工程图,常常需要将某种图案填充到某一区域,例如剖面线的绘制.MxCAD提供了丰富的填充图案,可以利用这些图案进行快速填充. js中实现代码说明: function DrawPathToHatch2 ...

随机推荐

  1. UVa 12661 Funny Car Racing (dijkstra)

    题意:给定一个有向图,每条路有5个整数修饰,u, v, a, b, t,表示起点为u,终点为v,打开时间a,关闭时间为b,通过时间为t,打开关闭是交替进行的, 问你从s到t最短时间是多少. 析:使用d ...

  2. Unity2016 Unity3D开发VR游戏的经验

    http://z.youxiputao.com/articles/8313 在4月12日的Unite 2016大会上,暴风魔镜高级产品经理吴涛分享他用Unity3D开发VR游戏的经验,以下为分享实录: ...

  3. 聪明的质监员(codevs 1138)

    题目描述 Description 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价值vi.检验矿产的流程是:见图   ...

  4. 笔记-JavaWeb学习之旅10

    Servlet server applet运行在服务器端的小程序,servlet就是一个接口,定义了Java类被浏览器访问到的规则(Java类重写这个接口,就可以被浏览器(tomcat)识别) Ser ...

  5. Spring Boot Autowirted注入找不到Bean对象解决方法

    报错:Consider defining a bean of type 'xxxxxxxxxxxxx' in your configuration 1. 你应该在 ApplyApplication 启 ...

  6. iOS中UIWebView使用JS交互

    iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...

  7. sequoiadb sdbexprt 导入工具进阶使用

    在做sdb 导入操作时,通过more 查看数据,格式是比较正常的,样例数据如下: CB20160630968101173208|||||_*||BZ|B3412|||||09664.8900| ||| ...

  8. luoguP2408不同子串个数

    传送门 可以知道每一个子串都是后缀的前缀,那么对于第\(i\)小的后缀的贡献就可以表示为n-sa[i]+1 然而会存在重复的子串,注意height数组的定义,对于sa[i-1]和sa[i],只有hei ...

  9. Tomcat - ClassFormatException的解决方法

    问题与分析 在使用Tomcat7运行web项目时报错如下: 严重: Compilation error org.eclipse.jdt.internal.compiler.classfmt.Class ...

  10. 条件运算符?:接受三个操作数,是C#中唯一的三元运算符(转)

    int i = 10; int j = i == 10 ? 1 : 2; //转换成if选择结果如下 if (i == 10) { j = 1; } else { j = 2; } 需要根据还可以嵌套 ...