[cgma-dev] Why can't I create surfaces from curves
Patrick Shriwise
shriwise at wisc.edu
Tue Jul 28 14:55:17 CDT 2015
Evan,
Spot on. We got it working after adjusting the cubit flag to
TORUS_SURFACE_TYPE.
Seems like this is a problem from 13.1 on as I had the same issue in
Cubit 14....
Cheers,
Patrick
On 07/28/15 11:21, Vander Zee, Evan B. wrote:
>
> Andy,
>
> I reproduced your problem using a version of CGM that I built on
> Cubit13.1. After some experimentation, I think that the problem is
> that the GeometryType is off by one in CGMA from what the Cubit
> library expects. I got successful RefFaces when passing arguments
> CONE_SURFACE_TYPE (which I am guessing is interpreted as the one-later
> enum value PLANE_SURFACE_TYPE) and TORUS_SURFACE_TYPE (which I am
> guessing is interpreted as the one-later enum value
> BEST_FIT_SURFACE_TYPE).
>
> We ought to fix the off-by-one error, but for now just the information
> I’ve given will probably help you with whatever you are doing.
>
> I’m not sure which value would have to be removed/renumbered to get
> CGMA to agree with Cubit. Is anyone else familiar with the
> GeometryType enumeration? I’m just making my best guess here . . .
>
> -Evan
>
> *From:*Vander Zee, Evan B.
> *Sent:* Monday, July 27, 2015 4:48 PM
> *To:* cgma-dev at mcs.anl.gov
> *Cc:* Patrick Shriwise; 'Andrew Davis'
> *Subject:* RE: [cgma-dev] Why can't I create surfaces from curves
>
> It is a little hard to tell exactly what you are trying to do, but it
> looks like you are trying to create a circular patch in the y-z
> plane. I tried running the code you provided with OCC geometry
> engine, and I got no errors.
>
> Some things you could try would be giving more than two edges and
> linking edges better in a loop, i.e., making sure that the end vertex
> of one edge is the beginning vertex of the next. I planned to try
> these, but my only successful build of CGM with acis so far is a cmake
> build, and I’m still a novice in the cmake build system, so I didn’t
> get far enough to reproduce the problem. What version are you using?
>
> -Evan
>
> *From:*cgma-dev-bounces at mcs.anl.gov
> <mailto:cgma-dev-bounces at mcs.anl.gov>
> [mailto:cgma-dev-bounces at mcs.anl.gov] *On Behalf Of *Andrew Davis
> *Sent:* Monday, July 27, 2015 10:01 AM
> *To:* Patrick Shriwise
> *Cc:* Andrew Davis; cgma-dev at mcs.anl.gov <mailto:cgma-dev at mcs.anl.gov>
> *Subject:* Re: [cgma-dev] Why can't I create surfaces from curves
>
> Hi Patrick
>
> Irrespective of whether or not I use planar, best fit, sphere, its the
> same error message over and over again.
>
> Thanks
>
> Andy
>
> On Sat, Jul 25, 2015 at 8:00 AM, Patrick Shriwise <shriwise at wisc.edu
> <mailto:shriwise at wisc.edu>> wrote:
>
> Hey Andy,
>
> The error message seems to indicate it's trying to make a surface
> which isn't planar.. maybe thats a good starting point? Are there
> other flags to hand that function by chance?
>
> Cheers,
>
> Patrick
>
> On 07/23/2015 02:34 PM, Andrew Davis wrote:
>
> Hi Guys
>
> I have the following function that I've added to my version of iGeom,
>
> ITAPS_API void
>
> iGeom_createSurface2(iGeom_Instance instance,
>
> /*in*/ iBase_EntityHandle *input_curves,
>
> /*in*/ int num_curves,
>
> /*out*/ iBase_EntityHandle *geom_entity,
>
> int* err)
>
> {
>
> CubitVector p1(0, 0, 5);
>
> RefVertex* v1 = gmt->make_RefVertex(p1);
>
> CubitVector p2(0, 0, -5);
>
> RefVertex* v2 = gmt->make_RefVertex(p2);
>
> CubitVector p3(0, 5, 0);
>
> RefVertex* v3 = gmt->make_RefVertex(p3);
>
> CubitVector p4(0, -5, 0);
>
> RefVertex* v4 = gmt->make_RefVertex(p4);
>
> RefEdge* e1 = gmt->make_RefEdge(ARC_CURVE_TYPE,v1,v2,&p3);
>
> RefEdge* e2 = gmt->make_RefEdge(ARC_CURVE_TYPE,v1,v2,&p4);
>
> DLIList<RefEdge*> curves;
>
> curves.insert(e1);
>
> curves.insert(e2);
>
> RefFace* tmp_surface = gmt->make_RefFace(PLANE_SURFACE_TYPE,
>
> curves,
>
> false);
>
> *geom_entity = reinterpret_cast<iBase_EntityHandle>(tmp_surface);
>
> RETURN ((tmp_surface ? iBase_SUCCESS : iBase_FAILURE));
>
> }
>
> When I run this, I can sucessfully create the vertices, and create
> curves from those verts using make_RefEdge. When I try to create a
> surface from those two ref edges I get the following error.
>
> WARNING: In AcisGeometryEngine::make_FACE
>
> At this time, cannot make a FACE that isn't planar or
> best fit.
>
> ERROR: In AcisModifyEngine::make_Surface
>
> Cannot make Surface object.
>
> ERROR: Couldn't make new RefFace.
>
> If I save the file as acis and examine the results in Cubit, they
> appear as they should (minus the surface). I can, in Cubit, make
> surface then, sweep and do all the operations that I want to.
>
> Is there something that I', just misunderstanding about CGM / gmt
> that means I'm using this wrong?
>
> Thanks
>
> Andy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/cgma-dev/attachments/20150728/1a4ff93c/attachment.html>
More information about the cgma-dev
mailing list