求教CAD平键的三维 自己写了一些代码但是面域的出现问题了Dim objlist(4) As AcadEntity 
 Dim my As AcadRegion
  Dim centerPoint1(0 To 2) As Double
  Dim centerPoint2(0 To 2) As Double
  Dim radius As Double
  Dim startAngleInDegree1 As Double
  Dim endAngleInDegree1 As Double
  Dim startAngleInDegree2 As Double
  Dim endAngleInDegree2 As Double
' Define the circle
centerPoint1(0) = 0: centerPoint1(1) = 0: centerPoint1(2) = 0
centerPoint2(0) = 100: centerPoint2(1) = 0: centerPoint2(2) = 0  '右半个圆心随标准定
radius = 5
 startAngleInDegree1 = 90
endAngleInDegree1 = 270
startAngleInDegree2 = 270
endAngleInDegree2 = 450  Dim pt1(0 To 2) As Double
  Dim pt2(0 To 2) As Double
  Dim pt3(0 To 2) As Double
  Dim pt4(0 To 2) As Double
  pt1(0) = 0: pt1(1) = 5: pt1(2) = 0
  pt2(0) = 100: pt2(1) = 5: pt2(2) = 0
  pt3(0) = 0: pt3(1) = -5: pt3(2) = 0
  pt4(0) = 100: pt4(1) = -5: pt4(2) = 0
' Convert the angles in degrees to angles in radians
Dim startAngleInRadian1 As Double
Dim endAngleInRadian1 As Double
Dim startAngleInRadian2 As Double
Dim endAngleInRadian2 As Double
startAngleInRadian1 = startAngleInDegree1 * 3.141592653 / 180
endAngleInRadian1 = endAngleInDegree1 * 3.141592653 / 180
startAngleInRadian2 = startAngleInDegree2 * 3.141592653 / 180
endAngleInRadian2 = endAngleInDegree2 * 3.141592653 / 180
' Create the arc object in model space
Set objlist(0) = ThisDrawing.ModelSpace.AddArc(centerPoint1, radius, startAngleInRadian1, endAngleInRadian1)
Set objlist(1) = ThisDrawing.ModelSpace.AddArc(centerPoint2, radius, startAngleInRadian2, endAngleInRadian2)
Set objlist(2) = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
Set objlist(3) = ThisDrawing.ModelSpace.AddLine(pt3, pt4)
Set my = ThisDrawing.ModelSpace.AddRegion(objlist)
ZoomAll

解决方案 »

  1.   

    自己加载到CAD里面就知道了
      

  2.   

    面域就是实体数组Entity,检查一下数组定义.
      

  3.   

    周末没有Autocad1你这里定义的Dim objlist(4) As AcadEntity  2但是你只实例化了其中的三个
    Set objlist(0) = ThisDrawing.ModelSpace.AddArc(centerPoint1, radius, startAngleInRadian1, endAngleInRadian1)
    Set objlist(1) = ThisDrawing.ModelSpace.AddArc(centerPoint2, radius, startAngleInRadian2, endAngleInRadian2)
    Set objlist(2) = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
    Set objlist(3) = ThisDrawing.ModelSpace.AddLine(pt3, pt4)如果是这样的话你试试看objlist(3) As AcadEntity  
      

  4.   


    这是凑数了,一定要对封闭曲线有几个Autocadntity比较清楚.比如是5条曲线(直线,弧线,多义线)组成的封闭线,5-1数组为4
    碰到这种事最好手动看是否封闭.你们这种方法是瞎猜,费时费力费工夫.
    这种事碰的多了,都在这绕弯子.