ssadd and ssdel. You can use the ssadd function to create a new selection set, as shown in the following example. The following code fragment creates a selection set that includes the first and last entities in the current drawing (entnext and entlast are described later in this chapter).
Once a selection set has been created, you can add entities to it or remove entities from it with the functions(setq fname (entnext)) ; Gets first entity in the
; drawing.
(setq lname (entlast)) ; Gets last entity in the
; drawing.
(if (not fname)
(princ "\nNo entities in drawing. ")
(progn
(setq ourset (ssadd fname)) ; Creates a selection set of the
; first entity.
(ssadd lname ourset) ; Adds the last entity to the
; selection set.
)
)
entnext and entlast set their arguments to the same entity name). If ssadd is passed the name of an entity already in the selection set, it ignores the request and does not report an error. The following function removes the first entity from the selection set created in the previous example:
The example runs correctly even if only one entity is in the database (in which case both(ssdel fname ourset)
fname and lname are not equal), then the selection set ourset contains only lname, the last entity in the drawing.
If there is more than one entity in the drawing (that is, ifsslength returns the number of entities in a selection set, and ssmemb tests whether a particular entity is a member of a selection set. Finally, the function ssname returns the name of a particular entity in a selection set, using an index to the set (entities in a selection set are numbered from 0).
The functionssname:
The following code shows calls to(setq sset (ssget)) ; Prompts the user to create a
; selection set.
(setq ent1 (ssname sset 0)) ; Gets the name of the first
; entity in sset.
(setq ent4 (ssname sset 3)) ; Gets the name of the fourth
; entity in sset.
(if (not ent4)
(princ "\nNeed to select at least four entities. ")
)
(setq ilast (sslength sset)) ; Finds index of the last entity
; in sset.
; Gets the name of the
; last entity in sset.
(setq lastent (ssname sset (1- ilast)))
sslength accurately returns the number of distinct entities in the specified selection set.
Regardless of how entities are added to a selection set, the set never contains duplicate entities. If the same entity is added more than once, the later additions are ignored. Therefore,