Тема: Групповой фильтр слоев
Здравствуйте, все!
Скажите, кто-нибудь знает, как в ObjectARX создать групповой фильтр (Group Filter) и засунуть туда необходимые слои?
Я везде уже покопался, но :( ничего не нашел.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Групповой фильтр слоев
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте, все!
Скажите, кто-нибудь знает, как в ObjectARX создать групповой фильтр (Group Filter) и засунуть туда необходимые слои?
Я везде уже покопался, но :( ничего не нашел.
Обнаружил некую вещь
AcDbLayerFilter
но не знаю что с ней делать =(
Подскажите плиз!!!
Создай вручную групповой фильтр. Поизучай extensionDictionary для LayerTable. Найдешь там Dictionary с именем "ACAD_LAYERFILTERS", а в ней записи ссылающиеся на фильтры слоев.
А так же Dictionary с именем "ACLYDICTIONARY".
Ну или так (без особой проверки на ошибки):
static void LayerFilterAdd(void) { Acad::ErrorStatus es; AcLyLayerFilterManager *pLFMan = aclyGetLayerFilterManager(acdbCurDwg()); if (!pLFMan) return; AcLyLayerFilter *pRoot = NULL, *pCurrent = NULL; if ((es = pLFMan->getFilters(pRoot,pCurrent)) != Acad::eOk) { acutPrintf(_T("\npLFMan->getFilters(pRoot,pCurrent)=%s"),acadErrorStatusText(es)); return; } AcLyLayerGroup *pNew = new AcLyLayerGroup(); pNew->setName(_T("Моя группа фильтров")); // Добавим 5 слоев { AcDbLayerTablePointer pLT(acdbCurDwg()->layerTableId(),AcDb::kForWrite); for (int i=0; i < 5; i++) { AcDbLayerTableRecord *pLTR = new AcDbLayerTableRecord(); ACHAR layerName[512]; acutSPrintf(layerName,_T("Новый слой %d"),i); pLTR->setName(layerName); AcDbObjectId eid; if (pLT->add(eid,pLTR) != Acad::eOk) { pLT->getAt(layerName,eid); } if (!eid.isNull()) { pLTR->close(); pNew->addLayerId(eid); } else { delete pLTR; } } } pRoot->addNested(pNew); if ((es = pLFMan->setFilters(pRoot,pNew)) != Acad::eOk) { acutPrintf(_T("\npLFMan->setFilters(pRoot,pNew)=%s"),acadErrorStatusText(es)); return; } }
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Групповой фильтр слоев
Форум работает на PunBB, при поддержке Informer Technologies, Inc