乐筑天下

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

创建区域的问题,大虾,请教一下,在此谢谢了!!!

[复制链接]

3

主题

15

帖子

4

银币

初来乍到

Rank: 1

铜币
27
发表于 2003-8-18 17:04:00 | 显示全部楼层 |阅读模式
Private Sub CommandButton1_Click()
Dim curves(0 To 1) As AcadEntity
Dim centerpoint(0 To 2) As Double
Dim radius As Double
Dim startangle As Double
Dim endangle As Double
centerpoint(0) = 125#: centerpoint(1) = 75#: centerpoint(2) = 0#
radius = 50#
startangle = 0
endangle = 3.141592
Set curves(0) = ThisDrawing.ModelSpace.AddArc(centerpoint, radius, startangle, endangle)

Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).StartPoint, curves(0).EndPoint)

Dim regionobj As Variant

regionobj = ThisDrawing.ModelSpace.AddRegion(curves)

regionobj(0).Color = acRed
ZoomAll

Dim i As Integer
For i = LBound(regionobj) To UBound(regionobj)

MsgBox "区域的名称为:" & regionobj(i).ObjectName

Next

End Sub
这是书上的例子,创建了一个由圆弧和直线组成的区域。我的问题是,我的直线和圆弧已知,在图上已生成了。于是我想用选择集的办法,从屏幕上直接选取要组成区域的这俩图元。然后生成面域。可是生成域的命令却执行不了。说是方法addregion作用于iacadmodelspace时失败。
我的程序是
Private Sub CommandButton1_Click()
Dim ssetobj As AcadSelectionSet
Dim i As Integer
Dim regions As Variant
Dim entobj(2) As Variant
Dim ssetcount As Integer
If ThisDrawing.SelectionSets.Count  0 Then
For i = 0 To ThisDrawing.SelectionSets.Count - 1
Set ssetobj = ThisDrawing.SelectionSets.Item(i)
   ssetobj.Delete
    Next
   End If
Set ssetobj = ThisDrawing.SelectionSets.Add("test")
ssetobj.SelectOnScreen
ssetcount = ssetobj.Count
For i = 0 To ssetcount - 1
   Set entobj(i) = ssetobj.Item(i)
   MsgBox "选择集的图元名称为:" & entobj(i).ObjectName
   Next
regions = ThisDrawing.ModelSpace.AddRegion(entobj)           ‘就是这句话执行不了方法addregion作用于iacadmodelspace时失败
End Sub
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-8-19 00:52:00 | 显示全部楼层
注意Dim entobj(2) As Variant这里有误。
程序可以这样写:
  1. Private Sub lick()
  2. Dim ssetobj As AcadSelectionSet
  3. Dim i As Integer
  4. Dim regions As Variant
  5. Dim entobj() As AcadEntity
  6. Dim ssetcount As Integer
  7. If ThisDrawing.SelectionSets.Count  0 Then
  8. For i = 0 To ThisDrawing.SelectionSets.Count - 1
  9. Set ssetobj = ThisDrawing.SelectionSets.Item(i)
  10.    ssetobj.Delete
  11.     Next
  12.    End If
  13. Set ssetobj = ThisDrawing.SelectionSets.Add("test")
  14. ssetobj.SelectOnScreen
  15. ssetcount = ssetobj.Count
  16. ReDim entobj(ssetcount - 1) As AcadEntity
  17. For i = 0 To ssetcount - 1
  18.    Set entobj(i) = ssetobj.Item(i)
  19.    'MsgBox "选择集的图元名称为:" & entobj(i).ObjectName
  20.    Next
  21. regions = ThisDrawing.ModelSpace.AddRegion(entobj)
  22. End Sub
回复

使用道具 举报

3

主题

15

帖子

4

银币

初来乍到

Rank: 1

铜币
27
发表于 2003-8-19 11:19:00 | 显示全部楼层
的确是啊,高人呢!谢谢了!谢谢!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 16:23 , Processed in 2.639031 second(s), 58 queries .

© 2020-2025 乐筑天下

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