CAD交互绘制块引用对象(网页版)
主要用到函数说明:
_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交互绘制块引用对象(网页版)的更多相关文章
- CAD参数绘制块引用对象(网页版)
		
主要用到函数说明: _DMxDrawX::DrawBlockReference 绘制块引用对象.详细说明如下: 参数 说明 DOUBLE dPosX 插入点的X坐标 DOUBLE dPosY 插入点的 ...
 - CAD参数绘制块引用对象(com接口)
		
主要用到函数说明: _DMxDrawX::DrawBlockReference 绘制块引用对象.详细说明如下: 参数 说明 DOUBLE dPosX 插入点的X坐标 DOUBLE dPosY 插入点的 ...
 - CAD交互绘制样条线(网页版)
		
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
 - CAD交互绘制圆形批注(网页版)
		
js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...
 - CAD交互绘制矩形批注(网页版)
		
js中实现代码说明: 动态拖放时的绘制事件: function DynWorldDrawComment2( pCustomEntity,pWorldDraw, curPt) { // 得到绘制参数. ...
 - CAD交互绘制矩形框(网页版)
		
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
 - CAD动态绘制样条线(网页版)
		
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
 - CAD参数绘制固定批注(网页版)
		
js中实现代码说明: 自定义实体绘制函数 function ExplodeFun(pCustomEntity, pWorldDraw, txt) { var sGuid = pCustomEntity ...
 - CAD参数绘制图案填充(网页版)
		
绘制工程图,常常需要将某种图案填充到某一区域,例如剖面线的绘制.MxCAD提供了丰富的填充图案,可以利用这些图案进行快速填充. js中实现代码说明: function DrawPathToHatch2 ...
 
随机推荐
- python 并发编程之IO 模型
			
首先说一下 IO 发生时涉及的对象和步骤.以read 为例,会经历两个阶段: 1)等待数据准备 2)将数据从内核拷贝到进程中 二,阻塞Io(blocking IO) 在 Linux中 默认情况下所有 ...
 - CodeForces Gym 100685E Epic Fail of a Genie (贪心,控制精度)
			
题意:给定 n 个数,然后让从中选取一些数使得它们的总乘积最大.如果有多个,要求这些数尽量少,如果还有多个,随便输出一组即可. 析:一个贪心题,根据乘法的性质,很容易知道,如果一个数大于1,那么肯定要 ...
 - qq开放平台可以应用到网页游戏的api整理
			
创建角色界面api整理 一.需求描述 1. 创建角色名称可以用qq空间昵称代替 2. 如果玩家是在新区玩的话,赠送老玩家支持礼包 3. 可以看到,好友xxx也在玩,而且到了多少等级,如果加为好友 ...
 - 《Android学习笔记》Android Studio如何去除顶部标题栏教程
			
序] 在初步开发Android应用中,我们会遇到一个问题,顶部标题栏的名字是项目名字(app名字)并且不可编辑.非常的不方便,那么我们有什么办法把他去掉呢? [相关文章] [开发工具] Android ...
 - Unity AnimatorController注意事项
			
通过assetbundle加载的单独打包AnimatorController使用下面方法赋值 Go.GetComponent<Animator>().runtimeAnimatorCont ...
 - Node.js 自定义模块
			
Node.js内置多个模块,也可以使用第三方模块,今天学习一下如何使用自己定义的模块 在同级目录下定义两个js文件 第一个:custom1.js "use strict"; fun ...
 - app发布证书、真机调试证书、测试证书、推送证书详细过程
			
原文网址: http://www.cnblogs.com/cxbblog/p/4028159.html 一:发布证书 遵旨:哪个开发者的哪台电脑要发布哪个app (这句话可以多读几遍) 通过上边的遵旨 ...
 - A - Wireless Network
			
#include <cstdio> #include <algorithm> #include <cstring> #include <iostream> ...
 - mongodb数据库分片实现链接
			
http://www.lanceyan.com/tech/arch/mongodb_shard1.html
 - UILabel和UIbutton(富文本)封装方法
			
/** 方法说明:设置label的富文本属性 参数说明:contentStr富文本内容 textColor字体颜色 rangeSet设置字体颜色及大小的位置 */ - (UILabel *)backf ...