Функции ObjectARX, которые обрабатывают наборы выбора, подобны тем в AutoLISP. AcedSSGet () функция обеспечивает большинство общих средств создания набора выборов. Это создает набор выборов способом из трех путей:
§
Подсказка пользователя, чтобы выбрать объекты.
§ Явно определяющий примитивы, чтобы выбрать, используя набор PICKFIRST или Пересечение, Многоугольник Пересечения, Заграждающую метку, Последнюю{*прошлую*}, Предыдущую, Окно, или опции Window Polygon (как в интерактивном использовании AutoCAD), или, определяя одиночную точку или заграждающую метку точек.
§ Фильтрация базы данных текущего рисунка, определяя список атрибутов и условий, которым выбранные примитивы должны соответствовать. Вы можете использовать фильтры с любой из предыдущих опций.
int
acedSSGet (
const char *str,
const void *pt1,
const void *pt2,
const struct resbuf *entmask,
ads_name ss);
Первый параметр к acedSSGet () - строка, которая описывает которые опции выбора использовать, как получено в итоге в следующей таблице.
Selection options for acedSSGet
Selection |
Code Description |
NULL |
Single-point selection (if pt1 is specified) or user selection (if pt1 is also NULL) |
# |
Nongeometric (all, last, previous) |
:$ |
Prompts supplied |
. |
User p ick |
:? |
Other callbacks |
A |
All |
B |
Box |
C |
Crossing |
CP |
Crossing Polygon |
:D |
Duplicates OK |
:E |
Everything in aperture |
F |
Fence |
G |
Groups |
I |
Implied |
:K |
Keyword callbacks |
L |
Last |
M |
Multiple |
P |
Previous |
:S |
Force single object selection only |
W |
Window |
WP |
Window Polygon |
X |
Extended search (search whole database) |
Следующие два параметра определяют значения точки для уместных опций. (Они должны быть NULL, если они не применяются.) Если четвертый параметр, entmask, - не NULL, это указывает на список значений поля примитива, используемых в фильтрации. Пятый параметр, ss, идентифицирует имя набора выбора.