yulijin608 发表于 2005-1-6 10:23:00

在VB中该如何构造选择集

Public AcadApp As Object<BR>Public Thisdrawing As Object


Sub main()<BR>                                <BR>                       Call ConnectCAD<BR>                       Set Thisdrawing = AcadApp.ActiveDocument                       


               Dim blockSet As Object<BR>               Set blockSet = Thisdrawing.SelectionSets.Add("Block")<BR>               Dim FType() As Integer<BR>               Dim FData() As Variant<BR>               ReDim FType(1) As Integer<BR>               ReDim FData(1) As Variant<BR>               FType(0) = 0: FData(0) = "INSERT"<BR>               FType(1) = 8: FData(1) = "给水"<BR>               blockSet.Select acSelectionSetAll, , , FType, FData<BR>               Msgbox blockSet.Count<BR>End Sub


Public Sub ConnectCAD()<BR>                       '连接到AutoCAD<BR>                       On Error Resume Next<BR>                       Set AcadApp = GetObject(, "AutoCAD.Application")<BR>                       If Err Then '如果没有一个AutoCAD副本在运行<BR>                       Err.Clear<BR>                       Set AcadApp = CreateObject("AutoCAD.Application")<BR>                       AcadApp.Visable = True '启动一个AutoCAD副本并设为可见<BR>                       If Err Then<BR>                       MsgBox Err.Description '如果失败,给出错误提示<BR>                       Exit Sub<BR>                       End If<BR>                       End If<BR>End Sub<BR>为什么程序执行到 blockSet.Select acSelectionSetAll, , , FType, FData时提示:


实时错误 '-2147467259(80004005)':


对象 'Select'的方法 'IAcadSelectionSet' 失败


而我在另外一个VB程序中使用sset.SelectAtPoint point, FType, FData选择时没有错误,这是为什么,在VB中该如何构造选择集?

雪山飞狐_lzh 发表于 2005-1-6 13:25:00

你没有引入类型库,把acSelectionSetAll用常量代替掉就可以了

yulijin608 发表于 2005-1-6 14:24:00

谢谢斑竹,又学到一招.嘻嘻.
页: [1]
查看完整版本: 在VB中该如何构造选择集