Если entmask определяет больше чем
Если entmask определяет больше чем одно свойство, примитив включен в выбор, устанавливают только, если это соответствует всем указанным условиям{*состояниям*}, как показано в следующем примере:
eb3.restype = 62; // Entity color
eb3.resval.rint = 1; // Request red entities.
eb3.rbnext = NULL; // Last property in list
eb1.rbnext = &eb2; // Add the two properties
eb2.rbnext = &eb3; // to form a list.
// Retrieve all red circles on layer FLOOR3.
acedSSGet("X", NULL, NULL, &eb1, ssname1);
Примитив проверен против всех полей, указанных в списке фильтрации, если список не содержит относительные или условные операторы, как описано в “ Относительные Испытания ” на странице 207 и “ Фильтрация Условного выражения ” на странице 208.
AcedSSGet () функциональные возвращения RTERROR, если никакие примитивы в базе данных не соответствуют{*согласовывают*} указанным критериям фильтрации.
Предыдущий acedSSGet () примеры используют опцию “X”, которая просматривает полную базу данных рисунка. Если списки фильтра используются вместе с другими опциями (выбор пользователя, окно, и т.д), фильтр применяется только к примитивам, первоначально выбранным.
Следующее - пример фильтрации выбранных пользователем примитивов.
eb1.restype = 0; // Entity type group
strcpy(sbuf1, "TEXT");
eb1.resval.rstring = sbuf1; // Entity type is text.
eb1.rbnext = NULL;
// Ask the user to generally select entities, but include
// only text entities in the selection set returned.
acedSSGet(NULL, NULL, NULL, &eb1, ssname1);
Следующий пример демонстрирует фильтрацию предыдущего набора выборов.
eb1.restype = 0; // Entity type group
strcpy(sbuf1, "LINE");
eb1.resval.rstring = sbuf1; // Entity type is line.
eb1.rbnext = NULL;
// Select all the lines in the previously created selection set.
acedSSGet("P", NULL, NULL, &eb1, ssname1);
eb1.restype = 8; // Layer
strcpy(sbuf1, "FLOOR9");
eb1.resval.rstring = sbuf1; // Layer name
eb1.rbnext = NULL;
// Select all the entities within the window that are also on the layer FLOOR9.
acedSSGet("W", pt1, pt2, &eb1, ssname1);
ОБРАТИТЕ ВНИМАНИЕ, что значение некоторых кодов группы может отличиться от примитива до примитива, и не, все коды группы присутствуют во всех примитивах. Если специфический код группы определен в фильтре, примитивы, которые не содержат тот код группы, исключены из наборов выбора, которые acedSSGet () возвращается.
Содержание Назад Вперед