选择围栏内的对象并将其添加到选择集中。 支持的平台:仅窗口 签名工 务 局: object.SelectByPolygon Mode, PointsList [, FilterType, FilterData]
返回值(RetVal)无返回值。 言论以下选择模式可用:
此方法支持筛选机制。 有关更多选择模式选项,请参阅、和方法。SelectSelectAtPointSelectOnScreen 例子工 务 局: Sub Example_SelectByPolygon() ' This example adds objects to a selection set by defining a polygon. Dim ssetObj As AcadSelectionSet Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET2") ' Add to the selection set all the objects that lie within a fence Dim mode As Integer Dim pointsArray(0 To 11) As Double mode = acSelectionSetFence pointsArray(0) = 28.2: pointsArray(1) = 17.2: pointsArray(2) = 0 pointsArray(3) = -5: pointsArray(4) = 13: pointsArray(5) = 0 pointsArray(6) = -3.3: pointsArray(7) = -3.6: pointsArray(8) = 0 pointsArray(9) = 28: pointsArray(10) = -3: pointsArray(11) = 0 ssetObj.SelectByPolygon mode, pointsArray ' Add to the selection set all the Circles that lie within fence ReDim gpCode(0 To 1) As Integer gpCode(0) = 0 gpCode(1) = 10 Dim pnt(0 To 2) As Double pnt(0) = 3: pnt(1) = 6: pnt(2) = 0 ReDim dataValue(0 To 1) As Variant dataValue(0) = "Circle" dataValue(1) = pnt Dim groupCode As Variant, dataCode As Variant groupCode = gpCode dataCode = dataValue ssetObj.SelectByPolygon mode, pointsArray, groupCode, dataCode End Sub Visual LISP: (vl-load-com) (defun c:Example_SelectByPolygon() ;; This example adds objects to a selection set by defining a polygon. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq ssetObj (vla-Add (vla-get-SelectionSets doc) "TEST_SSET2")) ;; Add to the selection set all the objects that lie within a fence (setq mode acSelectionSetFence) (setq pointsArray (vlax-make-safearray vlax-vbDouble '(0 . 11))) (vlax-safearray-fill pointsArray '(28.2 17.2 0 -5 13 0 -3.3 -3.6 0 28 -3 0 ) ) (vla-SelectByPolygon ssetObj mode pointsArray) (alert (strcat "Objects selected: " (itoa (vla-get-Count ssetObj)))) (vla-Clear ssetObj) ;; Add to the selection set all the Circles that lie within fence and at point 3,6 (setq gpCode (vlax-make-safearray vlax-vbInteger '(0 . 1))) (vlax-safearray-put-element gpCode 0 0) (vlax-safearray-put-element gpCode 1 10) (setq pnt (vlax-3d-point 3 6 0)) (setq dataValue (vlax-make-safearray vlax-vbVariant '(0 . 1))) (vlax-safearray-put-element dataValue 0 "Circle") (vlax-safearray-put-element dataValue 1 pnt) (vla-SelectByPolygon ssetObj mode pointsArray gpCode dataValue) (alert (strcat "Objects selected: " (itoa (vla-get-Count ssetObj)))) (vla-Delete ssetObj) ) |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:35
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.