田草博客

互联网田草博客


网友交流QQ群:11740834 需注明申请加入原因

微信 公众号:ByCAD

邮箱:tiancao1001x126.com
ByCAD,微信公众号
首页 | 普通 | 电脑 | AutoCAD | VB/VB.NET | FLash | 结构 | 建筑 | 电影 | BIM | 规范 | 软件 | ID
-随机-|-分布-
-博客论坛-|-﨣﨤﨧﨨-
-网站导航-|-规范下载-
-BelovedFLash欣赏-

用户登陆
用户:
密码:
 

站点日历
73 2024 - 11 48
     12
3456789
10111213141516
17181920212223
24252627282930


站点统计

最新评论



隐藏日志,无权浏览 AutoCAD File Extensions
未知 .NET AutoCAD二次开发之路(五、填充篇)   [ 日期:2019-08-31 ]   [ 来自:本站原创 ]  HTML
https://www.cnblogs.com/twofly/p/5093876.html
【1.pdf】点击下载此文件

程序代码:

''' <summary>
''' 图案填充
''' </summary>
''' <param name="db">图形数据库</param>
''' <param name="loopTypes"></param>
''' <param name="patternName">图案名称</param>
''' <param name="scale">填充比例</param>
''' <param name="degree">旋转角度</param>
''' <param name="entid">边界图形的ObjectId</param>
''' <returns></returns>
<System.Runtime.CompilerServices.Extension> _
Public Shared Function HatchEnity(db As Database, loopTypes As List(Of HatchLoopTypes), patternName As String, scale As Double, degree As Double, ParamArray entid As ObjectId()) As ObjectId
' 一个方法只能传递一个可变参数 且需要放在最后
    Dim hatchId As ObjectId = ObjectId.Null
    Using trans As Transaction = db.TransactionManager.StartTransaction()
        ' 声明一个图案填充对象
        Dim hatch As New Hatch()
        ' 设置填充比例
        hatch.PatternScale = scale
        ' 设置填充类型和图案名称
        hatch.SetHatchPattern(HatchPatternType.PreDefined, "ANGLE")
        ' 加入图形数据库
        Dim bt As BlockTable = CType(trans.GetObject(db.BlockTableId, OpenMode.ForRead), BlockTable)
        Dim btr As BlockTableRecord = CType(trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
        hatchId = btr.AppendEntity(hatch)
        trans.AddNewlyCreatedDBObject(hatch, True)

        ' 设置填充角度
        hatch.PatternAngle = degree
        ' 设置关联
        hatch.Associative = True
        ' 设置边界图形和填充方式

        Dim obIds As New ObjectIdCollection()
        ' 依次添加图形填充样式
        Dim i As Integer = 0
        While i < entid.Length
            obIds.Clear()
            obIds.Add(entid(i))
            hatch.AppendLoop(loopTypes(i), obIds)
            System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
        End While
        ' 计算填充并显示
        hatch.EvaluateHatch(True)
        ' 提交事务
        trans.Commit()
    End Using
    Return hatchId
End Function


[本日志由 tiancao1001 于 2020-06-05 06:30 PM 编辑]


暂时没有评论
发表评论 - 不要忘了输入验证码哦!
作者: 用户:  密码:   注册? 验证:  防止恶意留言请输入问题答案:1*2=?  
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字

字体样式 文字大小 文字颜色
插入粗体文本 插入斜体文本 插入下划线
左对齐 居中对齐 右对齐
插入超级链接 插入邮件地址 插入图像
插入 Flash 插入代码 插入引用
插入列表 插入音频文件 插入视频文件
插入缩进符合
点击下载按钮 下标 上标
水平线 简介分割标记
表  情
 
Tiancao Blog All Rights Reserved 田草博客 版权所有
Copyright ©