正文

Autocad VBA初级教程 (第九课:创建选择集)2006-01-03 06:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/stef/9246.html

分享到:

  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 300If myselect(i).Radius > 10 Then '判断圆的直径是否大于10 myselect(i).color = Int(255 * Rnd + 1) '大圆颜色改为随机数Else myselect(i).color = 0 '小圆改为白色End IfNext 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 '改为绿色Nextsset.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 '坐标1Dim p2(0 To 2) As Double '坐标2p1(0) = 0: p1(1) = 0: p1(2) = 0 '设置坐标1p2(0) = 300: p2(1) = 300: p2(2) = 0 '设置坐标1Mode = 5 '把选择模式存入mode变量中Set sel1 = ThisDrawing.SelectionSets.Add("sel3") '新建一个选择集Call sel1.Select(Mode, p1, p2) '选择对象sel1.Highlight (ture) '显示已选中的对象End Sub

阅读(5417) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册