[cgma-dev] Why can't I create surfaces from curves
Patrick Shriwise
shriwise at wisc.edu
Tue Jul 28 17:27:08 CDT 2015
Just taking a second to recant that last sentence. I was still using
Cubit 13.1 today. The enumerator seems to be alright when using Cubit 14.
Cheers,
Patrick
On 07/28/2015 02:55 PM, Patrick Shriwise wrote:
> 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/b61f1326/attachment-0001.html>
More information about the cgma-dev
mailing list