ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

how to insert a point on a spline

4 REPLIES 4
Reply
Message 1 of 5
421232206
315 Views, 4 Replies

how to insert a point on a spline

I can't find any good method to insert a point on a spline, please see the code below.  I want to insert a point on an existing spline, and after insertion ,the shape of the spline shoud not change much. 

 

AcDbObjectId idSpline;
        if (!Acad_Selection::SelEnt(idSpline,_T("spline")))
        {
            return;
        }
        AcDbSplinePointer pSpline(idSpline,AcDb::kForWrite);
        if (Acad::eOk != pSpline.openStatus()) return;

        ads_point pt;
        if (acedGetPoint(NULL,_T("\nclick:"),pt) != RTNORM)
        {
            return;
        }

        AcGePoint3d pt3d;
        pSpline->getClosestPointTo(asPnt3d(pt),pt3d);
        double dParam = -1;
        pSpline->getParamAtPoint(pt3d,dParam);// here , the value of dParam is not what I want.
        
        acutPrintf(_T("\n%g,round:%d,floor:%d,ceil:%d"),dParam,int(dParam+0.5),floor(dParam),ceil(dParam));


        pSpline->insertFitPointAt(floor(dParam),pt3d);

Technology change world! Coding change technology! We coders are coding!
4 REPLIES 4
Message 2 of 5
owenwengerd
in reply to: 421232206

What is your overall goal, and what exactly is the problem with the code you posted?

--
Owen Wengerd
ManuSoft
Message 3 of 5
421232206
in reply to: 421232206

my purpose is to insert a fit point to the spline. I get get closest point P1 on the spline for the point I click on the screen.

but  through the method getParamatPoint, the param I got of P1 has nothing to do with the fit point. I want to use insertFitPointAt. and insertFitPointAt requires the number of fit point.  is there an existing method that can return which two fit points P1 is between.

    

Technology change world! Coding change technology! We coders are coding!
Message 4 of 5
owenwengerd
in reply to: 421232206

There is no existing method to do that directly. You did not describe your overall goal, so I can't offer any alternative solutions.

--
Owen Wengerd
ManuSoft
Message 5 of 5
421232206
in reply to: 421232206

oh, if so , I have to calculate the "param" for each fit point, then compare these params with the insert point and determine which fit point is the right one for "insertFitPointAt".

still,thanks a lot.

Technology change world! Coding change technology! We coders are coding!

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost