在图上有一个圆和一条直线,我想把圆心半径和直线两端点都提取出来,我做了这么一个程序,可运行不成,Private Sub Command3_Click()Set objacad = GetObject(, "autocad.application")
objacad.WindowState = acMax
Dim sset As AcadSelectionSet '定义选择集对象
Dim element As AcadEntity '定义选择集中的元素对象
Set sset = objacad.ActiveDocument.SelectionSets.Add("ss1") '新建一个选择集 sset.SelectOnScreen '提示用户选择
objacad.Visible = True
For Each element In sset '在选择集中进行循环
element.Color = acGreen '改为绿色
NextDim objcircle As AcadCircle
Dim objline As AcadLine
For Each element In sset
If element Is objcircle Then
Text1(0) = objcircle.Center(0)
Text1(1) = objcircle.Center(1)
Text1(2) = objcircle.Center(2)
Text1(3) = objcircle.Radius
ElseIf element Is objline Then
Text2(0) = objline.StartPoint(0)
Text2(1) = objline.StartPoint(1)
Text2(2) = objline.EndPoint(0)
Text2(3) = objline.EndPoint(1)
End If
Next
sset.Delete '删除选择集
Me.Show
End Sub
但如果单独提取圆或直线都可实现,如下
Private Sub Command3_Click()
Set objacad = GetObject(, "autocad.application")
objacad.WindowState = acMax
Dim sset As AcadSelectionSet '定义选择集对象
Dim element As AcadEntity '定义选择集中的元素对象
Set sset = objacad.ActiveDocument.SelectionSets.Add("ss1") '新建一个选择集 sset.SelectOnScreen '提示用户选择
objacad.Visible = True
For Each element In sset '在选择集中进行循环
element.Color = acGreen '改为绿色
NextDim objcircle As AcadCircle
Dim objline As AcadLine
For Each objcircle In sset
'If element Is objcircle Then
Text1(0) = objcircle.Center(0)
Text1(1) = objcircle.Center(1)
Text1(2) = objcircle.Center(2)
Text1(3) = objcircle.Radius
'ElseIf element Is objline Then
'Text2(0) = objline.StartPoint(0)
'Text2(1) = objline.StartPoint(1)
'Text2(2) = objline.EndPoint(0)
'Text2(3) = objline.EndPoint(1)
'End If
Next
sset.Delete '删除选择集
Me.Show
End Sub
我怎么才能同时选择它们呢
解决方案 »
- VBA求二维数组删除选定数据
- 关于rdoPreparedStatement的问题
- **************散分发泄怒气!~~~***********
- 如何求一个二维数组第二维的下标?
- 我在picturebox里加入了一个label控件,我能保存在picturebox中画的曲线,但是label中的内容没有被保存下来,只有我画的曲线,怎样才能把l
- 怎么样才能......,在线等~~~~~~~
- 连上SQL真不容易
- 用 CREATE TABLE 语句为ACCESS库建表,怎样将字段类型设为“自动编号”?
- 如何利用VB打开WEBBROSWER打开的网页文件
- 简单问题~如何得到下拉式选项框中选项的总数值~用vb!!
- MSHFlexGrid 选择问题当鼠标选择MSHFlexGrid 的空白区域时相近单元格就被选择中了,现在想避免个动作能否实现?
- 请问哪位高手如何更改下接框控件的下拉按钮小方块(小方块里面显示小三角形的)的颜色?
Option Explicit
Dim objacad As AutoCAD.AcadApplicationPrivate Sub Command3_Click()Set objacad = GetObject(, "autocad.application")objacad.WindowState = acMax
Dim sset As AcadSelectionSet '定义选择集对象
Dim element As AcadEntity '定义选择集中的元素对象Set sset = objacad.ActiveDocument.SelectionSets.Add("ss1") '新建一个选择集
objacad.Visible = Truesset.SelectOnScreen '提示用户选择
objacad.Visible = True
For Each element In sset '在选择集中进行循环
element.Color = acGreen '改为绿色
NextDim objcircle As AcadCircle
Dim objline As AcadLine
For Each element In ssetSelect Case element.ObjectName
Case "AcDbLine"
Set objline = element
Text2(0) = objline.StartPoint(0)
Text2(1) = objline.StartPoint(1)
Text2(2) = objline.EndPoint(0)
Text2(3) = objline.EndPoint(1)
Case "AcDbCircle"
Set objcircle = element
Text1(0) = objcircle.Center(0)
Text1(1) = objcircle.Center(1)
Text1(2) = objcircle.Center(2)
Text1(3) = objcircle.Radius
Case Else
End SelectNext
sset.Delete '删除选择集
Me.Show
End Sub