• 【Hello AutoCAD 005】几个常用的绘图函数


    1 '创建直线
    2   Public Function addLine(ByVal startPt As Point3d, ByVal endPt As Point3d) As ObjectId
    3 '在内存中创建一个直线对象
    4   Dim LineEnt As New Line(startPt, endPt)
    5 '调用AppendEntity函数,将直线加入到模型空间
    6 Dim entID As ObjectId = AppendEntity(LineEnt)
    7 Return entID
    8 End Function
    9
    10 '创建圆
    11 Public Function addCircle(ByVal cenPt As Point3d, ByVal Radius As Double) As ObjectId
    12 '在内存中创建一个圆对象
    13 Dim Ent As New Circle(cenPt, Vector3d.ZAxis, Radius)
    14 Dim entID As ObjectId = AppendEntity(Ent)
    15 Return entID
    16 End Function
    17
    18 '创建圆弧【由圆心、半径、起始角度和终止角度创建圆弧】
    19 Public Function addArc(ByVal cenPt As Point3d, ByVal Radius As Double, ByVal startAng As Double, ByVal endAng As Double) As ObjectId
    20 '在内存中创建一个圆弧对象
    21 Dim Ent As New Arc(cenPt, Radius, startAng, endAng)
    22 Dim entID As ObjectId = AppendEntity(Ent)
    23 Return entID
    24 End Function
    25 '由二维点集合和线宽创建二维优化多线段函数
    26 Public Function addPline(ByVal Pts As Point2dCollection, ByVal Width As Double) As ObjectId
    27 Try
    28 '得到点集合的数量
    29 Dim n As Integer = Pts.Count
    30 '在内存中创建一个二维优化多线段对象
    31 Dim Ent As New Polyline(n)
    32 '向多线段添加顶点
    33 For i As Integer = 0 To n - 1
    34 Ent.AddVertexAt(i, Pts.Item(i), 0, Width, Width)
    35 Next
    36 Dim entID As ObjectId = AppendEntity(Ent)
    37 Return entid
    38 Catch ex As Exception
    39 '创建失败,则返回一个空的ObjectId
    40 Dim nullId As ObjectId = ObjectId.Null
    41 Return nullId
    42 End Try
    43 End Function
    44
    45 '将图形对象加入到模型空间的函数
    46 Public Function AppendEntity(ByVal Ent As Entity) As ObjectId
    47 '得到当前文档的数据库对象
    48 Dim Db As Database = HostApplicationServices.WorkingDatabase
    49 Dim entID As ObjectId
    50 Using Trans As Transaction = Db.TransactionManager.StartTransaction()
    51 '以读方式打开块表
    52 Dim Bt As BlockTable = CType(Trans.GetObject(Db.BlockTableId, OpenMode.ForRead), BlockTable)
    53 '以写方式打开模型空间块表记录
    54 Dim Btr As BlockTableRecord = CType(Trans.GetObject(Bt.Item(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
    55 '将图形对象的信息加到块表记录中,并返回ObjectId对象
    56 entID = Btr.AppendEntity(Ent)
    57 '把直线添加到事物处理中
    58 Trans.AddNewlyCreatedDBObject(Ent, True)
    59 '提交事物处理
    60 Trans.Commit()
    61 End Using
    62 Return entID
    63 End Function
    64
  • 相关阅读:
    c#常用正则表达式
    亲密接触Discuz!NT之架构篇:优良架构 方便网站整合与二次开发
    即时对话,在线对话,QQ,MSN,UC,popo
    C#事务处理
    正则表达式中的特殊字符
    9:38 2009729
    16:43 200981 缓解疲劳的七大唱片 免费短信
    复选框 全选
    9:05 2009721
    9:34 2009728
  • 原文地址:https://www.cnblogs.com/transteel/p/1886411.html
Copyright © 2020-2023  润新知