vb.net&cad二开自学笔记6:第一个绘制线段命令

.net编写绘制直线已完全不同于ActiveX的(VBA)的方式,过程更类似于arx程序,需要通过操作AutoCAD 数据库添加对象!下面的代码是在以前代码基础上添加了一个新myline命令。

AutoCAD 数据库结构

myline命令代码

Imports Autodesk.AutoCAD.ApplicationServices

Imports Autodesk.AutoCAD.DatabaseServices

Imports Autodesk.AutoCAD.EditorInput

Imports Autodesk.AutoCAD.Geometry

Imports Autodesk.AutoCAD.Internal

Imports Autodesk.AutoCAD.Runtime

Public Class WellcomCAD

Implements IExtensionApplication

Dim acapp As AcadApplication

Public Sub Initialize() Implements IExtensionApplication.Initialize

'Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor

'ed.WriteMessage("net程序已经初始化!")

'acapp = Application.AcadApplication

MsgBox("net程序已经初始化!",, "WellcomCAD")

End Sub

Public Sub Terminate() Implements IExtensionApplication.Terminate

Debug.WriteLine("net程序即将销毁")

End Sub

<CommandMethod("Hello")>

Public Sub Hello()

Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor

ed.WriteMessage("欢迎进入cad世界!")

'acapp = Application.AcadApplication

'acapp.ActiveDocument.Utility.Prompt("prompt")

End Sub

<CommandMethod("MyLine")>

Public Sub MyLine()

Dim db As Database = HostApplicationServices.WorkingDatabase

Dim Pt1 As New Point3d(0, 0, 0)

Dim Pt2 As New Point3d(300, 100, 0)

Dim LinEnt As New Line(Pt1, Pt2)

Using Trans As Transaction = db.TransactionManager.StartTransaction()

Dim Bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForRead)

Dim Btr As BlockTableRecord = trans.GetObject(Bt.Item(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

Btr.AppendEntity(LinEnt)

Trans.AddNewlyCreatedDBObject(LinEnt, True)

Trans.Commit()

End Using

End Sub

End Class

运行结果

技术交流,软件开发,欢迎微信沟通:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwLink1996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值