Ok, I got your point, I double checked Acis, and found it gives all three points in the list. Now I've updated the OCC code to reflect it.<br><br>Thanks, Boyd.<br><br>Jane<br><br><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div><br><div class="gmail_quote">On Tue, Jan 10, 2012 at 11:08 AM, <span dir="ltr"><<a href="mailto:boyd@elemtech.com" target="_blank">boyd@elemtech.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Howdy Jane,<br>
<br>
I double checked the code. "Curve* OCCModifyEngine::make_Curve" gets called from GeometryModifyTool::MakeRefEdge with paramaters of the begin and end points and a cubit_vector containing all three points (in the order first point, mid-point, end point). The values passed in are the same as when the ACIS engine is being used. It is in OCCModifyEngine::make_Curve that the list of 5 points is built then used in an attempt to make the curve. I don't have a good grasp of how the code should work and am unable to debug it at this point due to the following:<br>
<br>
It has been decided that current state of the CGM/OCC code is good enough to give a copy to our customer who is interested in a open source geometry engine so I have been given a new assignment. Corey McBride has been assigned to work future issues and will be working with you on the known problems. The good news is that he has a better grasp of the code and will be able to do a very good job of testing/debugging.<br>
<br>
Thanks very much for all your help with the OCC code.<br>
<br>
Take Care,<br>
<br>
-Boyd<br>
<div><div><br>
<br>
----- Original Message -----<br>
From: Jane Hu <<a href="mailto:janejhu@gmail.com" target="_blank">janejhu@gmail.com</a>><br>
To: Boyd Tidwell <<a href="mailto:bktidwell373@gmail.com" target="_blank">bktidwell373@gmail.com</a>><br>
Cc: <a href="mailto:cgma-dev@mcs.anl.gov" target="_blank">cgma-dev@mcs.anl.gov</a><br>
Sent: Tue, 10 Jan 2012 08:49:57 -0700 (MST)<br>
Subject: Re: [cgma-dev] Create spline curve bug<br>
<br>
Hi, Boyd:<br>
<br>
The point list should include only 3 points without duplicates. If you<br>
called GeometryModifyTool::make_RefEdge(), you need to pass in start and<br>
end vertex besides the mid-point as the list member. Can you double check<br>
on this?<br>
<br>
Thanks.<br>
<br>
jane<br>
<br>
On Mon, Jan 9, 2012 at 2:29 PM, Boyd Tidwell <<a href="mailto:bktidwell373@gmail.com" target="_blank">bktidwell373@gmail.com</a>> wrote:<br>
<br>
> Jane,<br>
><br>
> After applying your changes I now get an exception raised. Here is<br>
> the detail,<br>
><br>
><br>
> In OCCModifyEngine.cpp, my line 426 (Curve* OCCModifyEngine::make_Curve)<br>
><br>
> //make curve according to the curve type.<br>
> if(curve_type == SPLINE_CURVE_TYPE)<br>
> {<br>
> GeomAPI_Interpolate spline(points, CUBIT_FALSE, TOL); <-- this call<br>
><br>
> which calls:<br>
><br>
> In GeomAPI_Interpolate.cxx:<br>
><br>
> GeomAPI_Interpolate::GeomAPI_Interpolate<br>
> (const Handle_TColgp_HArray1OfPnt& PointsPtr,<br>
> const Standard_Boolean PeriodicFlag,<br>
> const Standard_Real Tolerance) :<br>
> myTolerance(Tolerance),<br>
> myPoints(PointsPtr),<br>
> myIsDone(Standard_False),<br>
> myPeriodic(PeriodicFlag),<br>
> myTangentRequest(Standard_False)<br>
> {<br>
> Standard_Integer ii ;<br>
> Standard_Boolean result =<br>
> CheckPoints(PointsPtr->Array1(),<br>
> Tolerance) ;<br>
> myTangents =<br>
> new TColgp_HArray1OfVec(myPoints->Lower(),<br>
> myPoints->Upper()) ;<br>
> myTangentFlags =<br>
> new TColStd_HArray1OfBoolean(myPoints->Lower(),<br>
> myPoints->Upper()) ;<br>
><br>
> if (!result) {<br>
> Standard_ConstructionError::Raise(); <----- hits here<br>
> }<br>
><br>
> The "Tolerance" passed in is 9.9999999999999995e-008.<br>
> The "points" variable contains 5 points:<br>
> 2 with value 0,0,0<br>
> 2 with value 1,0,1<br>
> 1 with value 2,0,0<br>
><br>
> and, of course, "result" is zero.<br>
><br>
> Hope this helps.<br>
><br>
> -Boyd<br>
><br>
><br>
><br>
><br>
><br>
> >Hi, Boyd<br>
><br>
> >This has been confirmed and fixed in most recent cgm. Thanks.<br>
><br>
> >Jane<br>
><br>
> On Thu, Dec 22, 2011 at 11:23 AM, Boyd Tidwell <boyd at <a href="http://csimsoft.com" target="_blank">csimsoft.com</a>><br>
> wrote:<br>
><br>
> > Jane,<br>
> ><br>
> > The following:<br>
> ><br>
> > create vertex 0 0 0<br>
> > create vertex 1 0 1<br>
> > create vertex 2 0 0<br>
> > create curve vertex 1 2 3 spline<br>
> ><br>
> > should create a curve that includes all three vertices. It does so in<br>
> > Cubit with the Acis engine but with OCC, the middle vertex (3) gets left<br>
> > out. I looked a bit into the code with debug but I didn't come close to<br>
> > having an idea what the problem may be.<br>
> ><br>
> > Thanks,<br>
> ><br>
> > - Boyd<br>
> ><br>
><br>
<br>
</div></div></blockquote></div><br>
</div></div></blockquote><br></div><br>