ahlzl 发表于 2005-2-22 11:39:00

如何用VB.NET的ARX方法生成面域

我写了一段代码,先画一个圆,再生成面域。结果圆能画出,面域却创建失败,请各位高手看看错在哪?先谢谢了!
Imports Autodesk..ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common
Public Class Class1
                          Public Shared Sub TestTemp()
                                                       Dim bt As BlockTable
                                                       Dim btr As BlockTableRecord
                                                       Dim CenPt As New Point3d(0, 0, 0)                                                                                                                                               '先画一个圆
                                                       Dim CircleObj As Circle
                                                       Try
                                                                                       Dim db As Database = HostApplicationServices.WorkingDatabase
                                                                                       Dim objId As ObjectId = db.BlockTableId
                                                                                       bt = objId.Open(OpenMode.ForRead)
                                                                                       objId = bt.Item(btr.ModelSpace)
                                                                                       btr = objId.Open(OpenMode.ForWrite)
                                                                                       CircleObj = New Circle
                                                                                       CircleObj.Center = CenPt
                                                                                       CircleObj.Radius = 300
                                                                                       btr.AppendEntity(CircleObj)
                                                       Catch
                                                       Finally
                                                                                       CircleObj.Close()
                                                                                       btr.Close()
                                                                                       bt.Close()
                                                       End Try
                                                       Dim Array As DBObjectCollection = New DBObjectCollection '建立一个集合
                                                       Array.Add(CircleObj)                                                                                                                                                                                                                                                               '将圆添加到集合中
                                                       Dim Reginobj As Region
                                                       Try
                                                                                       Dim db As Database = HostApplicationServices.WorkingDatabase
                                                                                       Dim objId As ObjectId = db.BlockTableId
                                                                                       bt = objId.Open(OpenMode.ForRead)
                                                                                       objId = bt.Item(btr.ModelSpace)
                                                                                       btr = objId.Open(OpenMode.ForWrite)
                                                                                       ReginObj = New Region
                                                                                       Region.CreateFromCurves(Array)
                                                                                       btr.AppendEntity(Reginobj)
                                                       Catch
                                                       Finally
                                                                                       Reginobj.Close()
                                                                                       btr.Close()
                                                                                       bt.Close()
                                                       End Try
                       End Sub
               
End Class

baby408 发表于 2007-4-5 16:15:00

Region.CreateFromCurves(Array)
返回的是dbobjectcollection类型
你的ReginObj 还是null,并没有付给它
页: [1]
查看完整版本: 如何用VB.NET的ARX方法生成面域