junhua1123 发表于 2008-3-18 15:41:00

请教:过滤语法好像没错,为什么选择集里没对象呢?

<p>Dim Pt1 As Variant<br/>Dim Pt2 As Variant<br/>EntObj(0).GetBoundingBox Pt1, Pt2</p><p>'创建选择集<br/>Dim ssetObj As AcadSelectionSet<br/>Set ssetObj = ThisDrawing.SelectionSets("SSET")<br/>If Err Then Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")<br/>ssetObj.Clear</p><p>'设置图层过滤</p><p>&nbsp;&nbsp;&nbsp; Dim gpCode(0) As Integer<br/>&nbsp;&nbsp;&nbsp; Dim dataValue(0) As Variant<br/>&nbsp;&nbsp;&nbsp; gpCode(0) = 8<br/>&nbsp;&nbsp;&nbsp; dataValue(0) = "dgx"</p><p><br/>'选择与该直线相交或者包含在外框中的所有实体<br/>ssetObj.Select acSelectionSetCrossing, Pt1, Pt2, gpCode, dataValue</p>

jxh2003zfr 发表于 2008-3-18 16:31:00

本帖最后由 作者 于 2008-3-18 16:39:29 编辑

1.你这一段是完整代码吗?没见到EntObj(0)的值,没见到错误处理
2.确认层dgx中与该直线有相交的物体。Public Sub mx()
    Dim Pt1 As Variant
    Dim Pt2 As Variant
    Dim ssEnt As AcadSelectionSet
    Dim EntObj(0) As AcadEntity
    On Error Resume Next
    Set ssEnt = ThisDrawing.SelectionSets.Add("ssEnt")
    ssEnt.SelectOnScreen
    Set EntObj(0) = ssEnt.Item(0)
    ssEnt.Clear: ssEnt.Delete
    EntObj(0).GetBoundingBox Pt1, Pt2
   
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
    ssetObj.Clear

    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 8
    dataValue(0) = "1"

ssetObj.Select acSelectionSetCrossing, Pt1, Pt2, gpCode, dataValue
ssetObj.Clear
ssetObj.Delete
End Sub

junhua1123 发表于 2008-3-18 18:08:00

<p>谢谢了,搞定!</p>
页: [1]
查看完整版本: 请教:过滤语法好像没错,为什么选择集里没对象呢?