MoI discussion forum
MoI discussion forum

Full Version: Getting all points of a curve using a script

Show messages:  1-15  16-35  36-42

From: Martin (MARTIN3D)
11 Nov 2013   [#16] In reply to [#15]
Thanks BurrMan.

Message 6257.17 was deleted


From: Max Smirnov (SMIRNOV)
11 Nov 2013   [#18]
Martin, this is exactly what you want :))
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;
}

var curves = moi.geometryDatabase.getObjects().getCurves();	
for ( var f = 0; f < curves.length; ++f)
{
	pts = GetCurveControlPoints(curves.item(f));
	for ( var p = 0; p < pts.length; ++p)
	{
		var factory = moi.command.createFactory( 'text' );
		factory.setInput(0, moi.VectorMath.createFrame ( pts.item(p).pt) );
		factory.setInput(1, ' xyz('+ Math.round(pts.item(p).pt.x*10)/10 + ', ' + Math.round(pts.item(p).pt.y*10)/10 + ', ' + Math.round(pts.item(p).pt.z*10)/10+ ')');
		factory.setInput(2, 'Arial');
		factory.setInput(5, 'curves' );
		factory.setInput(6, 0.5);
		factory.setInput(7, 1);
		factory.commit();
	}
}

From: BurrMan
11 Nov 2013   [#19] In reply to [#18]
Max,
He wants the points "on the curve", not the weighted control points. Thats a great script.

Image Attachments:
on_the_curve.jpg 


From: Max Smirnov (SMIRNOV)
11 Nov 2013   [#20] In reply to [#19]
Ops, sorry.. Now I see.
Anyway, no problem :) I know how to get it. ;)
From: BurrMan
11 Nov 2013   [#21] In reply to [#20]
""""""" I know how to get it.""""""""

I would be happy to get that. It would be a very cool script.

Maybe a way to set the tolerance of the "samples" would be very cool too, so it's adjustable. May need a gui for that.

Message 6257.22 was deleted


From: Frenchy Pilou (PILOU)
11 Nov 2013   [#23]
Excellent!


From: BurrMan
11 Nov 2013   [#24] In reply to [#22]
Those are the points Max.

Do you think you could make a checkbox to add/leave the point data labels(Like in the previous script)? That would make it ultimate for me....

Thanks again for sharing your scripts.
From: Lordfox
12 Nov 2013   [#25]
Waht is the correct shortcut for this script?!;)

thanks
From: BurrMan
12 Nov 2013   [#26] In reply to [#25]
You can put that script in a text file with an extension of .js and give it any name you want, like "anyname.js", then place that in the commands folder, then in the shortcut editor, you add your shortcut with a command of anyname. (leave the js part out of the command)
From: BurrMan
12 Nov 2013   [#27] In reply to [#26]
I sure would love to have the labels option version of the last one posted..............
From: Lordfox
12 Nov 2013   [#28] In reply to [#27]
ok, commands folder, I did made in in the ui folder, ok, sorry ... but I was a long abstinent ;) and I use first time scripts in moi
From: Max Smirnov (SMIRNOV)
14 Nov 2013   [#29] In reply to [#21]
new version of the script.


From: bemfarmer
14 Nov 2013   [#30] In reply to [#29]
The zip file appears to be empty. ?
-Brian
From: Max Smirnov (SMIRNOV)
15 Nov 2013   [#31] In reply to [#30]
Brian, thank you. Reuploaded. :)
From: BurrMan
15 Nov 2013   [#32] In reply to [#31]
Max,
That is Banner! Thanks for taking the time to do that, and also share it....

I see you made a "copy to clipboard" for the labels which is very slick.....

I suppose there would need to be one more tweak to the labeling? I didn't think about how they would stack up on various curves/situations and MoI's texts are not "blocks", so they can become kindof unmanageable.

I was trying to imagine how that would/could be handled. It may get too complex/unwieldy to give each text block an "object name" of it's value, as it's created? Or it would have to be a vertically constrained list. The only real option would be to have them orient off the positions normal, and have a "distance away from point" value for closer sets, to remain separated.

It may just remain a great option for points that aren't too close....... It can provide some quick communication in the viewport.....

Anyway, thanks again. Nice.
From: Frenchy Pilou (PILOU)
15 Nov 2013   [#33]
Somptuous!


From: Martin (MARTIN3D)
15 Nov 2013   [#34] In reply to [#29]
Max, thats it, thats exactly what I need. Especially the skip straight lines option is a huge timesaver. Great work! Thanks for sharing.
From: MajorGrubert (CARLOSFERREIRAPINTO)
15 Nov 2013   [#35]
Hi Max,

Thanks for the script. It will be a time saver for me.

Any chance of the new points made a new curve, above the reference curve and with an option (tick box) of deleting the reference curve?

Or placing the new points on the same curve and deleting the old ones.

Don't now if its possible, easy to do, or usefull for anybody else but me. Have a similar script on Illustrator.

The option 'skip straight lines' is fantastic.

Carlos

Show messages:  1-15  16-35  36-42