Home
Reply
Regular Contributor
jineshmac
Posts: 48

Advanced Covering Failing

Hi,

I am trying to use "api_advanced_cover_no_stitch" to cover a set of edges without success.  The api gives message "An internal error occured in advanced covering".  I am attaching the SAT file which contains all the edges which are to be covered.

The edges I am trying to cover are free edges and there are no constraints which I need to impose.

I tried specifying adjacency tolerance through "acovr_edge_constraint", but that did not help.  Here is the code snippet:

 

------------------------------------------------------------------------------------------------------------

    FACE * face = NULL;
    acovr_edge_constraint constr;
    constr.set_continuity(acovr_G0);
    constr.set_pos_tol(1e-2);
    
    acovr_options opts;
    opts.set_default_constraint(constr);

     o = api_advanced_cover_no_stitch(face, edgList, &opts);

------------------------------------------------------------------------------------------------------------

 

Any help regarding this will be greatly appreciated.

 

Thanks!

Jinesh.

Spatial Employee
asdf
Posts: 106

Re: Advanced Covering Failing

Dear Jinesh

 

I loaded the edges you saved into scheme and tried api_advanced_cover_no_stitch on them.  The reason you get an API failure is because the edges don't have COEDGE objects; I am sorry the error message for this is so cryptic and that the header file documentation for the API does not express this requirement adaquately.  From reading the docs, I thought what you were trying would work.

 

However, there is a workaround.  Please try using api_make_ewires with an options object specifying the coincidence tolerance is 1.0e-2 (I got this from your constraint tolerance, it might work with smaller coincidence tolerances but I haven't tried it that way).  That will give you one united wire.  Then use api_advanced_cover providing one edge from the new wire as an input.  I tried this in scheme and it worked, producing the attached sat file.

 

I think api_advanced_cover_no_stitch is expecting existing edges from a valid body.  Typical BODYs in ACIS do have coedges on each edge.  The workflow I describe consumes the input edges.  If for some reason, you need to keep them around, you can use api_copy_entity_list to copy the edges and do the destructive workflow on a copy.

 

I hope this helps.  Please let us know if you run into further difficulty.

 

Eric Zenk

Regular Contributor
jineshmac
Posts: 48

Re: Advanced Covering Failing

Dear Eric,

 

Thanks a lot for the reply.

Your workflow worked perfectly.

 

Best Regards,

Jinesh.