Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Public Class class1
<CommandMethod("ViewForm")> _
Public Sub ViewForm()
Dim Frm As New ViewForm
Application.ShowModelessDialog(Frm)
End Sub
End Class
Imports Autodesk.AutoCAD.ApplicationServices
Public Class class1
<CommandMethod("ViewForm")> _
Public Sub ViewForm()
Dim Frm As New ViewForm
Application.ShowModelessDialog(Frm)
End Sub
End Class
Imports acApp = Autodesk.AutoCAD.ApplicationServices.Application
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.GraphicsSystem
Imports GI = Autodesk.AutoCAD.GraphicsInterface
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Public Class ViewForm
Dim device As Device
Dim view As View
Dim model As Model
Private Sub Form_OnLoad(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim doc As Document = acApp.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim gsm As Manager = doc.GraphicsManager
' Create a device that will draw into our panel
device = gsm.CreateAutoCADDevice(ViewPanel.Handle)
' Create a view and add it to the device
view = New View
device.Add(view)
device.Update()
Using tr As Transaction = _
db.TransactionManager.StartTransaction()
model = gsm.CreateAutoCADModel()
Dim bt As BlockTable = _
tr.GetObject(db.BlockTableId, OpenMode.ForRead)
Dim ms As BlockTableRecord = _
tr.GetObject( _
bt(BlockTableRecord.ModelSpace), OpenMode.ForRead)
' Add the model space to the view
view.Add(ms, model)
' Make sure that the area that you want to show
' lies between these two points
view.ZoomExtents(New Point3d(-10, -10, 0), New Point3d(200, 200, 0))
' In case you want to show some solids in shaded mode
view.Mode = Autodesk.AutoCAD.GraphicsSystem.RenderMode.GouraudShaded
view.VisualStyle = _
New GI.VisualStyle(GI.VisualStyleType.GouraudWithEdges)
' Just to make sure that not perspective but parallel
' mode is used
view.SetView(view.Position, view.Target, _
view.UpVector, view.FieldWidth, _
view.FieldHeight, Projection.Parallel)
End Using
End Sub
Private Sub Panel_OnPaint( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles ViewPanel.Paint
' Redraw the view
view.Invalidate()
view.Update()
End Sub
Private Sub Form_OnClosing( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles MyBase.FormClosing
' Call dispose to free the underlying ObjectARX objects
device.Dispose()
view.Dispose()
model.Dispose()
End Sub
End Class
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.GraphicsSystem
Imports GI = Autodesk.AutoCAD.GraphicsInterface
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Public Class ViewForm
Dim device As Device
Dim view As View
Dim model As Model
Private Sub Form_OnLoad(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim doc As Document = acApp.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim gsm As Manager = doc.GraphicsManager
' Create a device that will draw into our panel
device = gsm.CreateAutoCADDevice(ViewPanel.Handle)
' Create a view and add it to the device
view = New View
device.Add(view)
device.Update()
Using tr As Transaction = _
db.TransactionManager.StartTransaction()
model = gsm.CreateAutoCADModel()
Dim bt As BlockTable = _
tr.GetObject(db.BlockTableId, OpenMode.ForRead)
Dim ms As BlockTableRecord = _
tr.GetObject( _
bt(BlockTableRecord.ModelSpace), OpenMode.ForRead)
' Add the model space to the view
view.Add(ms, model)
' Make sure that the area that you want to show
' lies between these two points
view.ZoomExtents(New Point3d(-10, -10, 0), New Point3d(200, 200, 0))
' In case you want to show some solids in shaded mode
view.Mode = Autodesk.AutoCAD.GraphicsSystem.RenderMode.GouraudShaded
view.VisualStyle = _
New GI.VisualStyle(GI.VisualStyleType.GouraudWithEdges)
' Just to make sure that not perspective but parallel
' mode is used
view.SetView(view.Position, view.Target, _
view.UpVector, view.FieldWidth, _
view.FieldHeight, Projection.Parallel)
End Using
End Sub
Private Sub Panel_OnPaint( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles ViewPanel.Paint
' Redraw the view
view.Invalidate()
view.Update()
End Sub
Private Sub Form_OnClosing( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles MyBase.FormClosing
' Call dispose to free the underlying ObjectARX objects
device.Dispose()
view.Dispose()
model.Dispose()
End Sub
End Class
【在NET窗体对话框中显示模型空间的一部分.rar】点击下载此文件
[本日志由 tiancao1001 于 2014-01-18 11:27 PM 编辑]
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |