CAD增加一个图案填充数据

1、实现思路:首先我们需要根据我们的需求利用AddPatternDefinition方法增加一个图案定义,第一个参数是图案名称,由我们自行设置,第二个参数是图案定义字符串,也是由我们自己定义的,然后将之前增加好的图案设置为当前绘制填充对象时使用的图案名,最后我们就可以使用啦。

2、主要用到函数说明:

(1)_DMxDrawX::PathMoveToEx

把路径的开始位置移动指定的点。详细说明如下:

参数

说明

DOUBLE dX

点的X坐标

DOUBLE dY

点的Y坐标

DOUBLE dStartWidth 

该点处开始宽度,对Polyline线的绘制有效 

DOUBLE dEndWidth 

该点处结束宽度,对Polyline线的绘制有效 

DOUBLE dBulge 

该点处的凸度,对Polyline线的绘制有效

(2)_DMxDrawX::PathLineTo

把路径下一个点移到指定位置。详细说明如下:

参数

说明

DOUBLE dX

点的X坐标

DOUBLE dY

点的Y坐标

(3)_DMxDrawX::PatternDefinition

当前绘制填充对象时使用的图案名。

(4)_DMxDrawX::AddPatternDefinition

增加一个图案定义。

参数

说明

BSTR pszName

图案名称

BSTR pszPatternDefinition

图案定义字符串

js代码实现如下:

    //绘制一个有图案的填充
    //angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, …
    //45 = angle 是图案线角度.
    //0 = x-origin 是第一个填充线经过的点位置X坐标
    //0 = y-origin 是第一个填充线经过的点位置Y坐标
    //0 = delta-x   是下一个填充线相对前一个线的X方向偏移
    //0.125 = delta-y   是下一个填充线相对前一个线的Y方向偏移
    mxOcx.AddPatternDefinition("MyHatchPattern1", "((45, 0,0, 0,0.125))");
    //把路径变成一个填充对象
    mxOcx.PatternDefinition = "MyHatchPattern1";
    //把路径的开始位置移动指定的点
    //参数一为点的X坐标 ,参数二为点的Y坐标,参数三为该点处开始宽度,对Polyline线的绘制有效
    //参数四为该点处结束宽度,对Polyline线的绘制有效
    //参数五为该点处的凸度,对Polyline线的绘制有效
    mxOcx.PathMoveToEx(0, 30, 0.3, 0.3, 0.3) ;
    //路径的一下个点
    mxOcx.PathLineTo( 100, 30);
    //路径的一下个点
    mxOcx.PathLineTo(100, 60);
    //路径的一下个点
    mxOcx.PathLineTo(0, 30);
    //把路径变成一个填充,80,是填充图案的缩放比例.
    mxOcx.DrawPathToHatch(100);
    
   
    mxOcx.UpdateDisplay();
    //绘制图案填充2
    mxOcx.AddPatternDefinition("MyHatchPattern2", "((0,0,0,0,8)(90,0,0,8,8,8,-8))");
    //把路径变成一个填充对象
    mxOcx.PatternDefinition = "MyHatchPattern2";
    //把路径的开始位置移动指定的点
    //参数一为点的X坐标 ,参数二为点的Y坐标,参数三为该点处开始宽度,对Polyline线的绘制有效
    //参数四为该点处结束宽度,对Polyline线的绘制有效
    //参数五为该点处的凸度,对Polyline线的绘制有效
    mxOcx.PathMoveToEx(100, 30, 0, 0, 0.3) ;
    //路径的一下个点
    mxOcx.PathLineTo( 200, 30);
    //路径的一下个点
    mxOcx.PathLineTo(200, 60);
    //路径的一下个点
    mxOcx.PathLineTo(100, 30);
    //把路径变成一个填充,80,是填充图案的缩放比例.
    mxOcx.DrawPathToHatch(1);
    mxOcx.UpdateDisplay();

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值