机械行业资料网 - 分享快乐
网站首页行业新闻机械资料求购信息供应信息机械产品机械企业机械软件招商展会

 首页 ->  机械软件 ->  AutoCAD -> 正文

 
Google

Autocad VBA初级教程 (第九课:创建选择集)

1.在创建对象的同时可以直接引用.以前的例程中已经做过多次了,现在复习一下,看例程:先随机画300个圆,在画圆时直接引用,然后再把这些圆根本大小修改颜色.

Sub c300()

Dim myselect(0 To 300) As AcadEntity '定义选择集数组
Dim pp(0 To 2) As Double '圆心坐标

For i = 0 To 300 '循环300次
pp(0) = 3000 * Rnd: pp(1) = 3000 * Rnd: pp(2) = 0 '设置圆心坐标
Set myselect(i) = ThisDrawing.ModelSpace.AddCircle(pp, Rnd * 30 + 1) '画不同大小的圆
Next i

For i = 1 To 300
If myselect(i).Radius > 10 Then '判断圆的直径是否大于10
 myselect(i).color = Int(255 * Rnd + 1) '大圆颜色改为随机数
Else
 myselect(i).color = 0 '小圆改为白色
End If
Next i

ZoomExtents '缩放到显示全部对象

End Sub


pp(0) = 3000 * Rnd: pp(1) = 3000 * Rnd: pp(2) = 0
这一行实际上应该是三条语句,用三行合并为一行,用冒号分开
rnd是随机数函数,它的数值为0-1之间的小数,3000*rnd得到的数值就是在0-3000之间的随机数

Set myselect(i) = ThisDrawing.ModelSpace.AddCircle(pp, Rnd * 30 + 1)
这条语句的作用是以pp点坐标为圆心,画一个圆,半径是1-30之间的随机数,赋值给myselect选择集.

2.提标用户在屏幕中选取
选择语句这样写:Set sset = ThisDrawing.SelectionSets.Add("ss1"),其中”ss1”是一个选择集名称,这个参数可以随意写一个,注意不要重复就可以了.
下面的例程是让用户选择对象,然后把选中的对象改为绿色,最后把选择集删除

Sub mysel()

Dim sset As AcadSelectionSet '定义选择集对象
Dim element As AcadEntity '定义选择集中的元素对象

Set sset = ThisDrawing.SelectionSets.Add("ss1") '新建一个选择集
sset.SelectOnScreen '提示用户选择

For Each element In sset '在选择集中进行循环
  element.color = acGreen '改为绿色
Next
sset.Delete '删除选择集

End Sub

3.选择全部对象
用select方法,参数为acSelectionSetAll ,看例程,这个程序选择全部对象,显示选中的对象,并计算对象数.
Sub allsel()
Dim sel1 As AcadSelectionSet '定义选择集对象
Set sel1 = ThisDrawing.SelectionSets.Add("s") '新建一个选择集
Call sel1.Select(acSelectionSetAll) '全部选中
sel1.Highlight (True) '显示选择的对象
sco= sel1.Count '计算选择集中的对象数
MsgBox "选中对象数:" & CStr(sco) '显示对话框
End Sub


3.运用select方法
上面的例题已经运用了select方法,下面讲一下select的5种选择方式:
1:择全部对象(acselectionsetall)
2.选择上次创建的对象(acselectionsetlast)
3.选择上次选择的对象(acselectionsetprevious)
4.选择矩形窗口内对象(acselectionsetwindow)
5.选择矩形窗口内以及与边界相交的对象(acselectionsetcrossing)
还是看代码来学习.其中选择语句是:
Call sel1.Select(Mode, p1, p2)
Mode已经定义为5,也就是选择矩形窗口内以及与边界相交的对象,p1和p2是两个点坐标,
Sub selnew()
Dim sel1 As AcadSelectionSet '定义选择集对象
Dim p1(0 To 2) As Double '坐标1
Dim p2(0 To 2) As Double '坐标2
p1(0) = 0: p1(1) = 0: p1(2) = 0 '设置坐标1
p2(0) = 300: p2(1) = 300: p2(2) = 0 '设置坐标1
Mode = 5 '把选择模式存入mode变量中
Set sel1 = ThisDrawing.SelectionSets.Add("sel3") '新建一个选择集
Call sel1.Select(Mode, p1, p2) '选择对象
sel1.Highlight (ture) '显示已选中的对象
End Sub

其他课程回顾:

Autocad VBA初级教程 (第一课:入门)

Autocad VBA初级教程 (第二课 编程基础)

Autocad VBA初级教程 (第三课 编程基础二)

Autocad VBA初级教程 (第四课 程序的调试和保存)

Autocad VBA初级教程 (第五课 画函数曲线)

Autocad VBA初级教程 (第六课 数据类型的转换)

Autocad VBA初级教程 (第七课 写文字)

Autocad VBA初级教程 (第八课:图层操作)

 

• CATIA的一些小技巧
• CATIA V5 曲面观念解析
• CATIA在航空界的应用
• Saving as V4 Data
• V4 / V5 DRAW
• V4 / V5 SPACE
• V4 / V5 SPEC
• Migration Batch
• CATIA软件的10个使用技巧
• catia实战教程从简单到复杂

AutoCAD | Inventor | Catia | CAXA | Solidworks
Pro/Engineer | Unigraphics | ANSYS | CAE综合
CAM综合 | 数控加工 | 机械软件综合
 网站地图 - 广告服务 - 联系我们 - 友情连接 - - 站长邮箱:555jx@163.com QQ:57075944 © 55jx.com 蜀ICP备05026423号