SelectByPolygon 方法 (ActiveX)
选择围栏内的对象并将其添加到选择集中。 支持的平台:仅限 Windows 签名VBA: object.SelectByPolygon Mode, PointsList [, FilterType, FilterData]
返回值 (RetVal)无返回值。 言论提供以下选择模式:
此方法支持过滤机制。 有关更多选择模式选项,请参见 、 和 方法。SelectSelectAtPointSelectOnScreen 例子VBA: 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
可视化 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-10-29 22:45
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.