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
Anonymous
320 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);

4 REPLIES 4
Message 2 of 5
owenwengerd
in reply to: Anonymous

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

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

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.

    

Message 4 of 5
owenwengerd
in reply to: Anonymous

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
Anonymous
in reply to: Anonymous

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.

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

Post to forums  

Autodesk Design & Make Report

”Boost