Ok, I got your point, I double checked Acis, and found it gives all three points in the list. Now I&#39;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">&lt;<a href="mailto:boyd@elemtech.com" target="_blank">boyd@elemtech.com</a>&gt;</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.  &quot;Curve* OCCModifyEngine::make_Curve&quot; 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&#39;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 &lt;<a href="mailto:janejhu@gmail.com" target="_blank">janejhu@gmail.com</a>&gt;<br>
To: Boyd Tidwell &lt;<a href="mailto:bktidwell373@gmail.com" target="_blank">bktidwell373@gmail.com</a>&gt;<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 &lt;<a href="mailto:bktidwell373@gmail.com" target="_blank">bktidwell373@gmail.com</a>&gt; wrote:<br>
<br>
&gt; Jane,<br>
&gt;<br>
&gt;  After applying your changes I now get an exception raised.  Here is<br>
&gt; the detail,<br>
&gt;<br>
&gt;<br>
&gt; In OCCModifyEngine.cpp, my line 426 (Curve* OCCModifyEngine::make_Curve)<br>
&gt;<br>
&gt;  //make curve according to the curve type.<br>
&gt;  if(curve_type == SPLINE_CURVE_TYPE)<br>
&gt;  {<br>
&gt;    GeomAPI_Interpolate spline(points, CUBIT_FALSE, TOL);  &lt;-- this call<br>
&gt;<br>
&gt; which calls:<br>
&gt;<br>
&gt; In GeomAPI_Interpolate.cxx:<br>
&gt;<br>
&gt; GeomAPI_Interpolate::GeomAPI_Interpolate<br>
&gt;   (const Handle_TColgp_HArray1OfPnt&amp; PointsPtr,<br>
&gt;    const Standard_Boolean            PeriodicFlag,<br>
&gt;    const Standard_Real               Tolerance) :<br>
&gt; myTolerance(Tolerance),<br>
&gt; myPoints(PointsPtr),<br>
&gt; myIsDone(Standard_False),<br>
&gt; myPeriodic(PeriodicFlag),<br>
&gt; myTangentRequest(Standard_False)<br>
&gt; {<br>
&gt;  Standard_Integer ii ;<br>
&gt;  Standard_Boolean result =<br>
&gt;   CheckPoints(PointsPtr-&gt;Array1(),<br>
&gt;               Tolerance) ;<br>
&gt;  myTangents =<br>
&gt;     new TColgp_HArray1OfVec(myPoints-&gt;Lower(),<br>
&gt;                              myPoints-&gt;Upper()) ;<br>
&gt;  myTangentFlags =<br>
&gt;      new TColStd_HArray1OfBoolean(myPoints-&gt;Lower(),<br>
&gt;                                   myPoints-&gt;Upper()) ;<br>
&gt;<br>
&gt;  if (!result) {<br>
&gt;   Standard_ConstructionError::Raise();  &lt;----- hits here<br>
&gt;   }<br>
&gt;<br>
&gt; The &quot;Tolerance&quot; passed in is 9.9999999999999995e-008.<br>
&gt; The &quot;points&quot; variable contains 5 points:<br>
&gt;   2 with value 0,0,0<br>
&gt;   2 with value 1,0,1<br>
&gt;   1 with value 2,0,0<br>
&gt;<br>
&gt;  and, of course, &quot;result&quot; is zero.<br>
&gt;<br>
&gt; Hope this helps.<br>
&gt;<br>
&gt;  -Boyd<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt;Hi, Boyd<br>
&gt;<br>
&gt; &gt;This has been confirmed and fixed in most recent cgm. Thanks.<br>
&gt;<br>
&gt; &gt;Jane<br>
&gt;<br>
&gt; On Thu, Dec 22, 2011 at 11:23 AM, Boyd Tidwell &lt;boyd at <a href="http://csimsoft.com" target="_blank">csimsoft.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt; &gt; Jane,<br>
&gt; &gt;<br>
&gt; &gt;  The following:<br>
&gt; &gt;<br>
&gt; &gt;    create vertex 0 0 0<br>
&gt; &gt;    create vertex 1 0 1<br>
&gt; &gt;    create vertex 2 0 0<br>
&gt; &gt;    create curve vertex 1 2 3 spline<br>
&gt; &gt;<br>
&gt; &gt; should create a curve that includes all three vertices. It does so in<br>
&gt; &gt; Cubit with the Acis engine but with OCC, the middle vertex (3) gets left<br>
&gt; &gt; out.  I looked a bit into the code with debug but I didn&#39;t come close to<br>
&gt; &gt; having an idea what the problem may be.<br>
&gt; &gt;<br>
&gt; &gt; Thanks,<br>
&gt; &gt;<br>
&gt; &gt;   - Boyd<br>
&gt; &gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>
</div></div></blockquote><br></div><br>