taoboq 发表于 2006-12-13 20:41:00

关于region的问题

帮助文档中说:(见下)
Each object in the region retains its layer, linetype, and color.deletes the original objects after converting them to regions and does not hatch the regions by default.
在面域中的每一对象保留着其图层、线型和颜色。AutoCAD 在将它们转换为面域后删除了原始对象,默认情况下面域不填充。
可是我用帮助文档中addregion的例子时,再绘图界面上将创建的region移开后发现原来用来创建region的图元没有被删除??
帮助文档中的例子是:
Sub Example_AddRegion()
    ' This example creates a region from an arc and a line.
   
    Dim curves(0 To 1) As AcadEntity
    ' Define the arc
    Dim centerPoint(0 To 2) As Double
    Dim radius As Double
    Dim startAngle As Double
    Dim endAngle As Double
    centerPoint(0) = 5#: centerPoint(1) = 3#: centerPoint(2) = 0#
    radius = 2#
    startAngle = 0
    endAngle = 3.141592
    Set curves(0) = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngle, endAngle)
   
    ' Define the line
    Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).startPoint, curves(0).endPoint)
      
    ' Create the region
    Dim regionObj As Variant
    regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
    ZoomAll
   
End Sub为什么??]
我有自己编了个程序来记录图元时发现也是没有删除原来用来创建region的图元??
explode也有同样的问题!!

mildleevba 发表于 2006-12-21 21:21:00

你创建面域的那一段程序,没必要把它设置成Variant型,当做3维时它要被当成一参数时才看成数组的吧,你要不换一下类型看看

mccad 发表于 2006-12-21 21:36:00

帮助文件有问题,在VBA中,生成面域和炸开图块,并不能自动删除原始对象。需要通过程序删除。

兰州人 发表于 2006-12-24 14:59:00

我看了很多程序的解决方法都是采用obj.delete的方法.
你举例的addregion的帮助文件示例,我的工作方法是
for i = 0 to 2
curvers(i).delete '删除生成面域的图元
next i
'要生在三维图形
regionObj.delete '还要删除要面域
set regionObj = Nothing
页: [1]
查看完整版本: 关于region的问题