<div dir="ltr">David,<div><br></div><div>I tried both of your programs, you are right that the key for success in build_facet_surface relies on the how the CubitPoints are defined. I have observed the following:</div><div>
<br></div><div>1. If you define new CubitPoints for each facet, even they share the same location, the code is creating separate surface for each facet.</div><div><br></div><div>2. It doens't matter if you provide the point list or not as long as the facets are created through different sets of points. I attach another file here to demonstrate, where you can see, if you define 4 facets using 12 different points (just pointer different), even you don't provide the point list, the code still generates 4 surfaces(which is prefered). When building a body, the duplicate vertices and edges are merged, leaving 4 refedges and 4 refpoints in the model.</div>
<div><br></div><div>3. If you define facets using shared points, you indicates to connect the edges and don't separate the model on the points. In this case, you have to give all such facets in one build_facet_surface call, otherwise, code crashes on not being able to find the shared edges.</div>
<div><br></div><div>I'll put the feature-angle issue as an enhancement bug to the system.</div><div><br></div><div>Thanks and have a nice day!</div><div><br></div><div>Jane</div><div><br></div><div><br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Sat, Jan 18, 2014 at 3:08 PM, David Thompson <span dir="ltr"><<a href="mailto:david.thompson@kitware.com" target="_blank">david.thompson@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Jane,<br>
<br>
I've found a combination of things that allow me to build models with multiple faceted surfaces per shell. It boils down to creating disjoint sets of CubitPointData instances for each FacetSurface, but which re-use a given CubitPoint shared among facets on the same FacetSurface. When multiple FacetSurfaces are combined into a shell, the facet engine merges the duplicate vertices on their common boundaries. I tried passing an empty point_list, but that failed. Passing CubitFacetData instances to the same build_facet_surface() call that have coincident points encoded in multiple CubitPointData instances (instead of a shared instance) also fails. Attached are working examples (one build 4 FacetSurfaces from 4 triangles, the other 2 FacetSurfaces from 4 triangles).<br>

<br>
It would be nice if the documentation for build_facet_surface() was updated to include some mention of this:<br>
<br>
    //- Create one or more new FacetSurfaces with all of its lower<br>
    //- order entities.  Use an optional feature_angle to break<br>
    //- surface.<br>
    //-<br>
    //- Where the input CubitFacet and/or CubitQuadFacet instances<br>
    //- share a vertex, they should reference the same CubitPoint<br>
    //- pointer. However, no CubitPoint instance shared with a<br>
    //- surface created by a separate call to build_facet_surface()<br>
    //- should be referenced; if multiple build_facet_surface() calls<br>
    //- are made, points on shared boundaries between will be merged<br>
    //- when the a shell containing the surfaces is created.<br>
    //-<br>
    //- The point_list should contain exactly the points in<br>
    //- the input facets and no others.<br>
<br>
I still have not been able to get surface-splitting by feature_angle working, so that is probably still worth a bug report.<br>
<span class="HOEnZb"><font color="#888888"><br>
        David<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Jane Hu<br>
<br>
Asst. Researcher<br>
Dept. of Engineering Physics<br>
UW @ Madison<br>
<br>
"And we know that for those who love God, that is, for those who are 
called according to his purpose, all things are working together for 
good." (Romans 8:28)
</div>