cad二次开发中介绍vba
源代码在线查看: cad世界__autocad vba初级教程 (第九课创建选择集).htm
CAD世界__Autocad VBA初级教程 (第九课:创建选择集)
BODY {
BACKGROUND-IMAGE: url(image/pagebg.gif)
}
.style1 {
FONT-WEIGHT: bold; COLOR: #ff0066
}
.style2 {
FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: Times New Roman, Times, serif, "黑体"
}
.style3 {
COLOR: #336699
}
.style4 {
COLOR: #333333
}
.style6 {
COLOR: #f76c8c
}
.style15 {
COLOR: #ff0033
}
.style16 {
FONT-WEIGHT: bold; COLOR: #ff0000
}
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/headadA.js">
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/headmenuA.js">
align=center>
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/mu_search_red.gif"
width=159>
value=all name=datesearch> name=AreaSearch>
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/leftmenu2_01_red.gif"
width=159>
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/class2.js">
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/leftmenu2_02_red.gif"
width=160>
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/lttop6.js">
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/mu_mail_red.gif"
width=160>
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/tougaoA.js">
background="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/lbg1.gif">
-->
当前位置:ICAD首页 >> 数字化设计 >> CAD >>
正文
href="http://www.icad.com.cn/zhuanti/jingdiananli/index.htm"
target=_blank> src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/jingdiananli2.gif" width=468
align=absMiddle border=0>
style="FONT-SIZE: 16px">Autocad VBA初级教程
(第九课:创建选择集)
作者:普天同庆 | 阅读次数:2089 转自: color=#cc0000>CAD世界网-论坛
时间:2005年6月2日14:55
size=3>
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
其他课程回顾:
href="http://www.icad.com.cn/html/2005-4-25/2005425163833.asp"> color=#0000ff>Autocad VBA初级教程 (第一课:入门)
href="http://www.icad.com.cn/html/2005-4-25/2005425163954.asp"> color=#0000ff>Autocad VBA初级教程 (第二课 编程基础)
href="http://www.icad.com.cn/html/2005-4-26/2005426112553.asp"> color=#0000ff>Autocad VBA初级教程 (第三课 编程基础二)
href="http://www.icad.com.cn/html/2005-4-26/2005426112638.asp"> color=#0000ff>Autocad VBA初级教程 (第四课 程序的调试和保存)
href="http://www.icad.com.cn/html/2005-5-8/20055893119.asp"> color=#0000ff>Autocad VBA初级教程 (第五课 画函数曲线)
href="http://www.icad.com.cn/html/2005-5-8/20055893328.asp"> color=#0000ff>Autocad VBA初级教程 (第六课 数据类型的转换)
href="http://www.icad.com.cn/html/2005-5-9/200559102708.asp"> color=#0000ff>Autocad VBA初级教程 (第七课 写文字) href="http://www.icad.com.cn/html/2005-5-30/2005530154133.asp"> color=#0000ff>Autocad VBA初级教程
(第八课:图层操作)(编辑:zhaozh)
if (window.print) {
document.write('【打印本文】 ');
}
// End -->
【 href="http://old.icad.com.cn/review/index.asp?article=200562132544"
target=_blank>发表评论】【 href="javascript:window.close()"> color=#cc0000>关闭窗口】
上一篇: href="http://old.icad.com.cn/html/2005-6-2/200562132358.asp"
target=_blank>[入门] DMS应用系统功能模块简介下一篇: href="http://old.icad.com.cn/html/2005-6-2/200562132713.asp"
target=_blank>[文章]从传统OA到协同OA的飞跃
src="CAD世界__Autocad VBA初级教程 (第九课创建选择集).files/endA.js">