Home
Reply
New Visitor
marlanzo
Posts: 1

Edges created in a boolean operation

Hello,

I'm very new to ACIS and I'm not able to find the way to find the edges created after a boolean union operation.

I have two solid bodies, I unite them and at the end I got a body with many edges and I would like to know what

are the edges created by the union (but not the edges modified by the union, for examples some edges

have now shorter than before the union).

I checked the online documentation but I had no time to do a deep reading of the whole documentation.

Thanks.

Regards,

Marco

Spatial Moderator
ybiyani
Posts: 231

Re: Edges created in a boolean operation

Dear Sir,

 

As you are new to ACIS please review http://doc.spatial.com/index.php/Tutorial:ACIS_Tutorials before you start. You can get hold of the create entities by scanning the bulletin_board of the outcome object.

 

Regards,

Yogesh

 

// Routine to scan the current bulletin board
void bb_scan(outcome result)
{
    printf("Entered bb_scan\n");
    if( ! result.ok() ) {
        printf( "Unable to scan bb\n" );
        return;
    }

    if ( result.bb() == NULL ){
        printf("NULL bulletin\n");
        return;
    }

    int icount = 0;    
    int ichang = 0;    
    int icreat = 0;    
    int idelet = 0;    

    BULLETIN *b_ptr = result.bb()->start_bulletin();

    while ( b_ptr != NULL )
    {
        icount++;
        if ( !b_ptr->old_entity_ptr() && b_ptr->new_entity_ptr() )
            icreat++; // this will give you the access to created edges
        if ( b_ptr->old_entity_ptr() && b_ptr->new_entity_ptr() )
            ichang++;
        if ( b_ptr->old_entity_ptr() && !b_ptr->new_entity_ptr() )
            idelet++;
        b_ptr = b_ptr->next();
    }
    printf("There are %d bulletins on the board\n",icount);
    printf("\t%d \tCreated\n\t%d \tChanged\n\t%d \tDeleted\n",
            icreat,ichang,idelet);
    printf("Exit bb_scan\n");
}