27/07/2013
Как получить заштрихованный примитив из примитива штриховки (HATCH)?
Когда примитив заштрихован ассоциативной штриховкой (AcDbHatch) – штриховка ассоциирована с заштрихованным примитивом. Как можно найти эту штриховку?
Штриховка реагирует на изменение примитива путём уведомления. В действительности штриховка имеет постоянный реактор на заштрихованный примитив. Этим можно воспользоваться для получения штриховки. Следующий код демонстрирует это:
Код - C++: [Выделить]
- void getHatchEntity()
- {
- ads_name eName;
- ads_point pt;
- if( RTNORM != acedEntSel(_T("\nВыберите примитив: "), eName, pt ) )
- return;
- AcDbObjectId id;
- acdbGetObjectId( id, eName );
- AcDbEntity* pEnt;
- acdbOpenObject(pEnt, id, AcDb::kForRead );
- if( pEnt == NULL )
- return;
- AcDbHatch* pHatch = NULL;
- AcDbVoidPtrArray* pReactors = pEnt->reactors();
- for( int i=0; pHatch == NULL && i<pReactors->length(); i++ ) {
- if( acdbIsPersistentReactor( pReactors->at(i) )) {
- AcDbObjectId id =
- acdbPersistentReactorObjectId(pReactors->at(i));
- acdbOpenObject(pHatch, id, AcDb::kForRead );
- }
- }
- if( pHatch != NULL ) {
- pHatch->highlight();
- pHatch->close();
- }
- pEnt->close();
- }
Обсуждение: http://adn-cis.org/forum/index.php?topic=139.0
Опубликовано 27.07.2013
Отредактировано 04.08.2013 в 17:21:39
Отредактировано 04.08.2013 в 17:21:39