请教:过滤语法好像没错,为什么选择集里没对象呢?
<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> Dim gpCode(0) As Integer<br/> Dim dataValue(0) As Variant<br/> gpCode(0) = 8<br/> dataValue(0) = "dgx"</p><p><br/>'选择与该直线相交或者包含在外框中的所有实体<br/>ssetObj.Select acSelectionSetCrossing, Pt1, Pt2, gpCode, dataValue</p> 本帖最后由 作者 于 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
<p>谢谢了,搞定!</p>
页:
[1]