Getting all points of a curve using a script

 From:  Max Smirnov (SMIRNOV)
6257.13 
I've found solution of this problem several months ago.
This method is stupid, but it's works. :)

en code:
function GetCurveControlPoints(curve)
{
	var gd = moi.geometryDatabase;
	var obj = gd.getObjects();
	obj.setProperty( 'showPoints', false); 
	curve.showPoints = true; 
	gd.selectAll();
	obj.setProperty( 'selected', false);
	
	var objectpicker = moi.ui.createObjectPicker();
	objectpicker.allowEditPoints();
	objectpicker.done();
	gd.copyToClipboardCommand( objectpicker.objects );
	gd.pasteFromClipboard();	
	var points = gd.getSelectedObjects();

	gd.removeObjects(points);	
	curve.showPoints = false; 
	return points;
}

/* example */
var curves = moi.geometryDatabase.getSelectedObjects().getCurves();	
if (curves.length === 1)
{
	pts = GetCurveControlPoints(curves.item(0));
	/* let's build polyline through control points */
	var factory = moi.command.createFactory( 'curve' );
	for ( var p = 0; p < pts.length; ++p)
	{
		factory.createInput('point');	
		factory.setInput(factory.numInputs - 1, pts.item(p).pt); // point
		factory.createInput('bool');	
		factory.setInput(factory.numInputs - 1, true);  // corner
	}
	if  (curves.item(0).isClosed)
	{
		factory.createInput('point');	
		factory.setInput(factory.numInputs - 1, pts.item(0).pt);
		factory.createInput('bool');	
		factory.setInput(factory.numInputs - 1, true);
	}
	factory.commit();
}

EDITED: 7 Mar 2022 by SMIRNOV