singlegu 发表于 2006-5-22 10:56:00

关于创建面域的问题,进来看看吧,很简单的!!!

各位大虾:
       我想把圆创建成一个面域,可是有问题代码如下,希望能帮我看看哪里出了问题
   Sub addRegion()
      Dim circle As AcadEntity
      Dim regionObj As Variant
      Dim point(0 To 2) As Double
      Dim radius As Double
      point(0) = 300
      point(1) = 300
      point(2) = 300
      radius = 80
      Set circle = ThisDrawing.ModelSpace.AddCircle(point, radius)
      regionObj = ThisDrawing.ModelSpace.AddRegion(circle)   
    End Sub

bihumanbu 发表于 2006-5-22 11:22:00

Sub addRegion()
      Dim eircle(0) As AutoCAD.AcadEntity
   
      Dim regionObj As Variant
      Dim point(0 To 2) As Double
      Dim radius As Double
      point(0) = 300
      point(1) = 300
      point(2) = 300
      radius = 80
      Set eircle(0) = ThisDrawing.ModelSpace.AddCircle(point, radius)
      regionObj = ModelSpace.addRegion(eircle)
      ZoomAll
    End Sub
circle为系统标识,你不能用;另外生成面域的曲线似乎要用数组

xinghesnak 发表于 2006-5-22 11:22:00

注意,增加区域的时候,添加的对象必须是一个对象数组,应该将circle定义成一个数组就行了。。。下面是改完的程序
Dim circle1(0) As AcadEntity
Dim regionObj As Variant
Dim point(0 To 2) As Double
Dim radius As Double
point(0) = 300
point(1) = 300
point(2) = 300
radius = 80
Set circle1(0) = ThisDrawing.ModelSpace.AddCircle(point, radius)
regionObj = ThisDrawing.ModelSpace.AddRegion(circle1)

xinghesnak 发表于 2006-5-22 11:25:00

呵呵!比楼上的晚了1秒啊。。。。。。^_^!真巧。。。。。

singlegu 发表于 2006-5-22 13:10:00

呵呵,谢谢楼上两位的帮忙,还有一个问题,我想要生成圆环
步骤:1.先画两个同心圆,分别生成面域
      2.运用布尔差运算,外圆减去内圆,生成圆环.程序还是有问题
程序如下:
Dim circle1(0) As AcadEntity
   Dim circle2(0) As AcadEntity
   Dim regionObj1 As Variant
   Dim regionObj2 As Variant
   Dim point(0 To 2) As Double
   Dim radius1 As Double
   Dim radius2 As Double
   point(0) = 300
   point(1) = 300
   point(2) = 300
   radius1 = 80
   radius2 = 60
   
   '创建面域
   Set circle1(0) = ThisDrawing.ModelSpace.AddCircle(point, radius1)
   Set circle2(0) = ThisDrawing.ModelSpace.AddCircle(point, radius2)
   regionObj1 = ThisDrawing.ModelSpace.AddRegion(circle1)
   regionObj2 = ThisDrawing.ModelSpace.AddRegion(circle2)
   
   '布尔运算
   regionObj1.Boolean acSubtraction, regionObj2
应该是最后一句有问题,可不知道怎么改

xinghesnak 发表于 2006-5-22 14:42:00

改成:
regionObj1(0).Boolean acSubtraction, regionObj2(0)
就行了!

xujian8498 发表于 2006-6-9 16:25:00

面域生成后拉申为实体,实体转动后,面域不动,delete 也删除不了,请问如何去掉面域?

xinghesnak 发表于 2006-6-9 16:41:00

邪门,delete不了?

bjjob1 发表于 2013-5-19 12:14:00

autocad 真他妈邪门,我有两段代码,结构一模一样,一个布尔运算成功,另一个就是不成功,快他妈疯了,我查,这autodesk公司是越来越不行了!!!

bjjob1 发表于 2013-5-29 11:39:00


yes,I agree with you,必须得用数组才行
页: [1]
查看完整版本: 关于创建面域的问题,进来看看吧,很简单的!!!