主要用到函数说明:

_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. 执行多个Sql脚本,Sqlplus

    1.先制作需要执行的Sql文件list CMD 中输入[dir E:\FolderName >E:\ExcuteSqlList.txt ] 2.根据ExcuteSqlList.txt 中的文件名 ...

  2. Withdraw From OI

    Withdraw From OI 已经退役一周了,但还是迟迟没有去写退役记,在这个2017年的最后一天,写下这一篇沉重的“withdraw from OI”. 距离联赛成绩出来已经一个多月了.这一个月 ...

  3. [Xcode 实际操作]二、视图与手势-(5)给图像视图添加圆角效果

    目录:[Swift]Xcode实际操作 本文将演示给矩形图片添加圆角效果 import UIKit class ViewController: UIViewController { override ...

  4. AndroidTV开发

    AndroidTV的开发其实和Android的开发是一样的,现在的电视机可以安装AnroidApp

  5. 基于nginx的配置网站密码认证

    在nginx配置服务中,创建访问网站密码认证. 1)需要ngx_http_auth_basic_module模块 语法: Syntax: auth_basic string | off; Defaul ...

  6. 微信开发(一)URL配置

    启用开发模式需要先成为开发者,而且编辑模式和开发模式只能选择一个,进入微信公众平台-开发模式,如下: 需要填写url和token,当时本人填写这个的时候花了好久,我本以为填写个服务器的url就可以了( ...

  7. [JSOI2015]染色游戏

    Description 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格. 现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1.棋盘的每一个小方格既可以染色(染 ...

  8. JetSpeed2因dom4j包冲突导致PSML页面文件数据丢失

    使用JetSpeed2进行二次开发时突然出现在保存Portlet配置信息时出现PSML页面文件数据丢失的情况,几经测试,最终发现是因为Portlet中的dom4j.jar与jetspeed应用中的do ...

  9. 工作的时候 用到了 获取时间 DateTime 整理了一下

    获得当前系统时间: DateTime dt = DateTime.Now; Environment.TickCount可以得到“系统启动到现在”的毫秒值 DateTime now = DateTime ...

  10. C#中MessageBox用法大全(附效果图)<转>

    我们在程序中经常会用到MessageBox. MessageBox.Show()共有21中重载方法.现将其常见用法总结如下: 1.MessageBox.Show("Hello~~~~&quo ...