CAD利用实体闪烁制作动画

1、我们在使用CAD制图过程中,可能会遇到需要制作动画的时候,但是一般的情况就是插入一个GIF文件,这里我们以MxCAD控件为例,讲解如何制作动画的方法(上一篇文章讲解了闪烁的用法,这里不一一赘述,不明白的可以翻阅上一篇文章)。

2、实现思路:首先我们先定义需要制作动画的文件,然后利用DrawImageMark方法绘制一个图像标记对象,得到这个标记对象的id,最后我们利用TwinkeEnt将其闪烁起来。

3、主要用到函数说明:

(1)_DMxDrawX::DrawImageMark

绘图制一个图象标记对象。详细说明如下:

参数

说明

BSTR pszName

图层名

DOUBLE dPosX

绘制位置,是图片的中心点X

DOUBLE dPosY

绘制位置,是图片的中心点y

DOUBLE dScale

缩放比例,如果输入负数时,表示图片随视区大小缩放,负数的决对值表示图片的高度,图片宽度自动计算

DOUBLE dAng

图片旋转角度

BSTR pszFileName

图片显示文件名

BSTR pszTwinkeImageFiles

闪烁时使用的ImageFile.,设置该文件后,调用MxDraw::TwinkeEnt后将交替闪烁显示。 可以同时设置多个闪烁文件,文件间用逗号隔开,比如: 1.jgp,2.jpg,3.jpg

VARIANT_BOOL isSaveData

图片数据,是否随图保存

(2)MxDraw::TwinkeEnt

闪烁实体。详细说明如下:

参数

说明

McDbObjectId id

被闪烁的实体对象id

long lCount = -1

闪烁次数,默认为-1表示不限闪烁次数

js中实现代码说明:

function  DrawGif()
{
    //新建一个COM组件对象 参数为COM组件类名
    var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getPt.message = "点取图片的插入中点";
    if (getPt.go() != 1) {
        return;
    }
    var frstPt = getPt.value();
    if (frstPt == null) {
        return;
    }
    //控件程序在磁盘的文件路径
    var sImageFile1 = mxOcx.GetOcxAppPath() + "\\1.png";
    var sImageFile2 = mxOcx.GetOcxAppPath() + "\\2.png";
    var sImageFile3 = mxOcx.GetOcxAppPath() + "\\3.png";
    // 绘图制一个图象标记对象
    //参数一为绘制位置,是图片的中心点X ;参数二为绘制位置,是图片的中心点Y;参数三为缩放比例;参数四为旋转角度;
    //参数五为图片显示文件名;参数六为闪烁文件设置;参数七为图片数据是否随图保存
    var lId = mxOcx.DrawImageMark(frstPt.x, frstPt.y, -20, 0, sImageFile1,
        sImageFile1 + "," + sImageFile2 + "," + sImageFile3, true);
    //闪烁实体
    //参数一为被闪烁的实体对象id;参数二为闪烁次数,默认为-1表示不限闪烁次数,成功返回true
    mxOcx.TwinkeEnt(lId);
}

4、效果展示:

用户可以通过点击制作动画按钮,触发DrawGif()事件,将在js代码设置的图片制作成动画显示到控件视区中。如下图所示:

                                                             img8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值