[在线求助]急!怎样将屏幕上已选中的实体加入到selectionset中??
<P>小弟是cad开发的新手,现在想请教各位大哥一个比较弱智的问题</P><P>我的目的是想将屏幕上已经被选取的实体放到一个selectionset中,而不希望用SelectOnScreen,因为这个函数要提示用户再去到屏幕中去选择。比如说我已经在屏幕上选取了3条线,然后点击按钮,我希望是对包含这三条线的selectionset进行操作,而不要再提示用户去选择这三条线。</P>
<P>小弟实在对cad中各个对象和函数不大熟悉,已经被这个问题折磨几天了,希望有高人能帮我解决一下。</P> <P>On Error Resume Next<BR>acaddoc.SelectionSets("sel").Delete<BR>Set sl = acaddoc.SelectionSets.Add("sel")</P>
<P>Set sl = acaddoc.ActiveSelectionSet '将屏幕上已经被选取的实体放到sl</P> <P>怎么没有高人来指点下啊!!小弟真的是很急啊。</P> <P>2楼的大哥,我按你的方法试过了,怎么就算我已经在屏幕上选中了实体再运行代码,最后用a = sl.count检验得到的始终是a = 0啊!!!??</P> <P>置顶的帖子就有</P>
<P><A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=28516" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=28516</A></P> <P>在模块中</P>
<P>Option Explicit<BR>Dim acadApp As Object<BR>Dim Preference As Object<BR>Dim acaddoc As Object<BR>Dim Paspace As Object<BR>Dim MoSpace As Object<BR></P>
<P>在窗体中</P>
<P>Private Sub Form_Load()<BR>On Error Resume Next<BR>Set acadApp = GetObject(, "AutoCAD.Application")<BR>If Err Then<BR> Err.Clear<BR> Set acadApp = CreateObject("AutoCAD.Application")<BR> If Err Then<BR> MsgBox Err.Description<BR> Exit Sub<BR> End If<BR>End If</P>
<P>acadApp.Visible = True<BR>Set Preference = acadApp.Preference<BR>Set acaddoc = acadApp.ActiveDocument<BR>Set MoSpace = acaddoc.ModelSpace<BR>Set Paspace = acaddoc.PaperSpace</P>
<P>On Error Resume Next<BR>acaddoc.SelectionSets("sel").Delete<BR>Set sl = acaddoc.SelectionSets.Add("sel")</P>
<P>Set sl = acaddoc.ActiveSelectionSet</P>
<P>Text1 = sl.Count</P>
<P><BR>End Sub<BR>我测试可以,,,好象函数是区分大小写的,</P> <P>楼上两位大哥,我按你们的方法都试过了,有点进展,但是还是有点小问题。我试的结果是无论是用pickfirstselection还是activeselection,当多次运行程序后,都只能将刚刚选中的第一个实体加入到选择集中,而后面的实体都无法进入,结果就是从第二次开始无论我选中多少实体,sl.Count始终为1,感觉好奇怪啊!希望各位大哥再出来指点下。 </P>
<P>注:小弟用的是autocad2002(在线等待回复)!!!</P> <P>我又做了一下测试,是我自己代码的问题,现在问题已经完全解决了!!!</P>
<P>谢谢各位的帮忙,第一次来这里,感觉收获很大,希望以后好能多多交流哈!!!</P>
页:
[1]