乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 164|回复: 9

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

[复制链接]

7

主题

15

帖子

1

银币

初来乍到

Rank: 1

铜币
43
发表于 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
回复

使用道具 举报

4

主题

10

帖子

2

银币

初来乍到

Rank: 1

铜币
26
发表于 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为系统标识,你不能用;另外生成面域的曲线似乎要用数组
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 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)
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-5-22 11:25:00 | 显示全部楼层
呵呵!比楼上的晚了1秒啊。。。。。。^_^!真巧。。。。。
回复

使用道具 举报

7

主题

15

帖子

1

银币

初来乍到

Rank: 1

铜币
43
发表于 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
应该是最后一句有问题,可不知道怎么改
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-5-22 14:42:00 | 显示全部楼层
改成:
regionObj1(0).Boolean acSubtraction, regionObj2(0)
就行了!
回复

使用道具 举报

3

主题

12

帖子

2

银币

初来乍到

Rank: 1

铜币
24
发表于 2006-6-9 16:25:00 | 显示全部楼层
面域生成后拉申为实体,实体转动后,面域不动,delete 也删除不了,请问如何去掉面域?
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-6-9 16:41:00 | 显示全部楼层
邪门,delete不了?
回复

使用道具 举报

0

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
13
发表于 2013-5-19 12:14:00 | 显示全部楼层
autocad 真他妈邪门,我有两段代码,结构一模一样,一个布尔运算成功,另一个就是不成功,快他妈疯了,我查,这autodesk公司是越来越不行了!!!
回复

使用道具 举报

0

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
13
发表于 2013-5-29 11:39:00 | 显示全部楼层

yes,I agree with you,必须得用数组才行
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 19:03 , Processed in 0.976153 second(s), 83 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表