|
+------------<------------------------------+
| |
-->(GET_SELECTION)-->+-->(:FOCUS_TYPE)-+->{focus type}---------->+
| | |
| +->{focus type list}----->+
| |
+-->(:SINGLE_SELECTION)-------------------->+
| |
+-->(:CURR_WP_ONLY)------------------------>+
| |
+-->(:CURR_PART_ONLY)---------------------->+
| |
+-->(:ALLOW_FACE_PART)--------------------->+
| |
+-->(:ALLOW_WIRE_PART)--------------------->+
| |
+-->(:ALLOW_GRAPHICS_ONLY)->{keyword list}->+
| |
+-->(:DISABLE_AUTOMATIC_RELOAD)------------>+
| |
+-->(:WITH_STOCK_CONTAINER)---------------->+
| |
+-->(:NO_HIGHLIGHT)------------------------>+
| |
+-->(:CHECK_FUNCTION)-->|Lisp function|---->+
|
|
+----->(:SELECT)-->|select subaction|--------------->
Note: This interrupt action should only be used programmatically via sd-call-cmds as a way to inquire topological information from the system.
Note: Non construction geometry types select real geometry only.
Note: The select focus types for Annotation objects are listed in the Annotation select documentation.
nil ;default (list :part) (list :assembly) (list :part :assembly)
Select all top-level parts in the system, including wire and face parts:
(sd-call-cmds (get_selection :focus_type *sd-part-seltype*
:allow_wire_part
:allow_face_part
:select
:all_at_top))
Select all parts in a specific assembly:
(sd-call-cmds (get_selection :focus_type *sd-part-seltype*
:select
:in_assembly assembly-sel-item))
Select all edges of the current part:
(sd-call-cmds (get_selection :focus_type *sd-edge-3d-seltype*
:curr_part_only
:select
:all_3d))
(sd-call-cmds (get_selection :focus_type *sd-edge-3d-seltype*
:select
:current_part
:all_3d))
Select all circular edges of a specific part:
(sd-call-cmds (get_selection :focus_type *sd-circle-3d-seltype*
:select
:selected_part part-sel-item
:all_3d))
Select all planar faces of a specific part:
(sd-call-cmds (get_selection :focus_type *sd-plane-seltype*
:select
:selected_part part-sel-item
:all_3d))
Select a list of all faces of a part that have a transparency setting
greater than 0.5:
(defun check-transparent-face (face)
(let ((ft (sd-inq-face-transparency face)))
(if (and ft (>= ft 0.5))
:ok
:filter)))
(sd-call-cmds (get_selection :focus_type *sd-face-seltype*
:check_function #'check-transparent-face
:select
:selected_part part-sel-item
:all_3d))
(sd-get-faces-along-ray part ray-point ray-direction
:include-details include-details-flag
:in-dir-only in-dir-only-flag)
(sd-get-faces-along-ray a-part-sel-item
-32.70855155006501,39.938131591119159,189.79696386352623
0.60402277355505363,0.34202014332566871,-0.71984631039295421)
=> ((face1-sel-item -7.3395950607527531,54.302977610797249,159.56341882702216 42)
(face2-sel-item -32.708551550065003,39.938131591119159,189.79696386352623 0))
(sd-get-faces-along-ray a-part-sel-item
-32.70855155006501,39.938131591119159,189.79696386352623
0.60402277355505363,0.34202014332566871,-0.71984631039295421
:include-details nil)
=> (face1-sel-item face2-sel-item)
|
| © 2023 Parametric
Technology GmbH (a subsidiary of PTC Inc.), All Rights Reserved |