[求助]由面域拉伸生成实体的疑问?
<P>想用以下代码拉伸生成实体,结果什么也没有得到,也没有报错?请大家看看!</P><P>'构造选择集<BR> Dim gear As AcadSelectionSet<BR> On Error Resume Next<BR> If Not IsNull(AcadApp.ActiveDocument.SelectionSets.Item("gear_set")) Then<BR> Set gear = AcadApp.ActiveDocument.SelectionSets.Add("gear_set")<BR> End If<BR> <BR> gear.Select acSelectionSetAll<BR> <BR> '复制选择集里的对象<BR> Dim ents(11) As AcadEntity<BR> For i = 0 To gear.Count - 1<BR> Set ents(i) = gear.Item(i).Copy<BR> Next i<BR> <BR> '定义面域<BR> Dim reg As Variant<BR> Set reg = AcadApp.ActiveDocument.ModelSpace.AddRegion(ents)<BR> <BR> '拉伸实体<BR> Dim height As Double<BR> Dim taperAngle As Double<BR> height = 8<BR> taperAngle = 0<BR> <BR> Dim rack As Acad3DSolid<BR> Set rack = AcadApp.ActiveDocument.ModelSpace.AddExtrudedSolid(reg, height, taperAngle)</P> <P>是不是定义面域部分就出错了?</P>
<P>面域的属性和方法都不能通过reg对象引用啊?</P>
<P>是怎么回事?</P>
<P>另外,我看到帮助文件里类似的例子在使用AddExtrudedSolid方法是第一个参数写成了数组形式,即写成:</P>
<P>Set rack = AcadApp.ActiveDocument.ModelSpace.AddExtrudedSolid(reg(0), height, taperAngle)</P>
<P>帮助中的实体可以拉伸生成,我的却不行,为什么?</P>
<P>帮助中的例子如下:</P><PRE class=Code>Sub Example_AddExtrudedSolid()
' This example extrudes a solid from a region.
' The region is created 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)
' Define the extrusion
Dim height As Double
Dim taperAngle As Double
height = 3
taperAngle = 0
' Create the solid
Dim solidObj As Acad3DSolid
Set solidObj = ThisDrawing.ModelSpace.AddExtrudedSolid(regionObj(0), height, taperAngle)
End Sub</PRE>
页:
[1]