MoI discussion forum
MoI discussion forum

Full Version: Node Wish List

Show messages:  1-15  …  316-335  336-355  356-375  376-395  396-415  416-425

From: Michael Gibson
21 Jan   [#376] In reply to [#375]
Also since v4 there is this function on curve segments:

Added CurveSegment.getIsG1ToAdjacentSegment( 0 /* 0 for start, 1 for end */ );
- returns true if the next segment at the start or end is smooth to the current curve segment.

- Michael
From: MO (MO_TE)
22 Jan   [#377] In reply to [#376]
So, I found my mistake on fillet factory.
I thought the corners list's length should be equal to length of points generated by "generateVertices()" method.
But, It seems it should be equal to segments count.
That's why fillet node generates that curly effect in Barry's screenshots. It tries to fillet all corner points including the "G1" corner points

I just filtered the real "G0" points out of all corner points (segments start points).
code:
script:
var inputs = moi.geometryDatabase.getSelectedObjects().getStandaloneCurves();
var filletFacc = moi.command.createFactory('fillet');
var filletFacToGetCorners = moi.command.createFactory('fillet');
filletFacToGetCorners.setInput(0, inputs);
filletFacToGetCorners.generateVertices();
var corners = filletFacToGetCorners.getCreatedObjects();
var segments = inputs.item(0).getSubObjects();
var startPoints = [];
for(k=0; k<segments.length; k++)
{
	startPoints.push(segments.item(k).getStartPt());
}
filletFacToGetCorners.cancel();
var cornersList = moi.createList();
for ( var i = 0; i < startPoints.length; ++i ) 
{
	if(isG0Connection(startPoints[i],corners)){cornersList.add( true );}
	else{cornersList.add( false );}
}
filletFacc.setInput(0, inputs);
filletFacc.setInput(1, false);
filletFacc.setInput(2, cornersList);
filletFacc.setInput(3, 1);
filletFacc.setInput(4, 'Circular');
filletFacc.setInput(5, 1);
filletFacc.commit();
moi.log("inputs: "+inputs.length+"\n");
moi.log("Corners: "+corners.length+"\n");
moi.log("cornersList: \n");
for ( var i = 0; i < cornersList.length; ++i ) {moi.log(cornersList.item(i)+"\t")};
moi.log("\n");

function isG0Connection(point, G0Points)
{
	var isSamePoint = false;
	for(j=0; j<G0Points.length; j++)
	{
		if(point.x == G0Points.item(j).pt.x && point.y == G0Points.item(j).pt.y && point.z == G0Points.item(j).pt.z)
		{
			isSamePoint = true;
			break;
		}else{isSamePoint = false;}
	}
	return isSamePoint;
}

From: Barry-H
22 Jan   [#378] In reply to [#377]
Hi Mo,
can you make a node of your script please
I have very limited coding and will probably take forever.
Cheers
Barry
From: bemfarmer
22 Jan   [#379]
Link on (various) Fillet node(s), and Chamfer node(s), from 2 and 4 years ago, with good information from Michael:

https://moi3d.com/forum/index.php?webtag=MOI&msg=9666.1

(various Fillet and Chamfer nodes, are located in nodeeditor menus Curves2 and Construct2 menus. Some of them are probably not mature, fully functional nodes, and may need improvements from someone who knows what they are doing. And has understanding (?)) (Like grafting in MO-TE's code ?)

- Brian
From: Barry-H
22 Jan   [#380] In reply to [#379]
Hi Brian,
I've just removed them from my nodeditor as Mo added new versions of fillet and chamfer edges into the construct menu.
I think a new thread maybe worth starting to filter out some of duplicate nodes and add new developed nodes that people want to share.
Anyway many thanks for your input.
Cheers
Barry
From: bemfarmer
22 Jan   [#381] In reply to [#380]
Thankyou Barry.
It seems that my nodeeditor, for this pc especially, is not up to date, with some "obsolete"/ defective nodes.

- Brian
From: MO (MO_TE)
22 Jan   [#382] In reply to [#378]
Hi Barry
>> can you make a node of your script please

I was working on a new version of fillet node months ago, with ability to pick corner points directly from the scene, I guess I can add my new findings to it.
It's still buggy and I'm not sure when it'll be ready.

I'm not that skilled too. :)
From: bemfarmer
22 Jan   [#383] In reply to [#382]
Hi MO_TE

Thank you for your hard work. You seem very skilled with the Javascript & Nodes.
I like the way that you break up Max's paragraphs of code into individual code lines. This tends to make them more comprehensible IMHO.
Is this "parsing" done by some editing software?
Notepad++ does not break down these code "paragraphs".

- Brian
From: Barry-H
22 Jan   [#384] In reply to [#382]
Thanks Mo,
much appreciated.
Would be good to add fillet and chamfer to the curves section if possible.
Cheers
Barry
From: MO (MO_TE)
22 Jan   [#385] In reply to [#383]
Hi Brian
>> You seem very skilled

Thanks, I wish I was. ;)

I use notepad++ with language set to JavaScript.
Maybe this helps you to format/beautify your codes:
https://beautifier.io/
From: bemfarmer
24 Jan   [#386] In reply to [#385]
Thank you MO_TE for the JS-beautify link.
From: MO (MO_TE)
27 Jan   [#387]
"FilletCurve" and "ChamferCurve" nodes
Fillet/chamfer multiple curves at once.
You can choose a specific corner point to fillet or chamfer or set a pattern of 01 to fillet/chamfer curves.


How to use it?
Start nodeeditor and connect your curves to the node.
Click on the "FilletCurve" node to open the information panel.
In the "Select" dropdown menu choose the "sharp points" option.
This way you can see and choose the corner points in the scene.
When you finished picking corner points, choose the "Done" option from "Select" dropdown menu.


Also see the attached "FilletCurve_Showcase.nod" for an example.
Address:
Construct/FilletCurve
Construct/ChamferCurve

Attachments:
ChamferCurve.js
FilletCurve.js
FilletCurve_Showcase.nod

Image Attachments:
FilletCurve_ChamferCurve_Nodes.png  FilletCurve_Vid-ezgif.com-optimize.gif 


From: Barry-H
27 Jan   [#388] In reply to [#387]
Hi Mo,
Excellent will give them a try.
Many thanks
Barry
From: Frenchy Pilou (PILOU)
27 Jan   [#389]
Excellent!
From: Barry-H
27 Jan   [#390] In reply to [#387]
Hi Mo,
quick update.
When filleting a selected object and applying the original object remains and cannot be deselected as normal (mouse click).
Perhaps keeping original is not needed.
Cheers
Barry
From: MO (MO_TE)
27 Jan   [#391] In reply to [#390]
Hi Barry
Thanks for the bug report.
I've fixed the lock selection bug. Try updated version.
From: Barry-H
27 Jan   [#392] In reply to [#391]
Hi Mo,
works fine many thanks.
Barry
From: Frenchy Pilou (PILOU)
27 Jan   [#393] In reply to [#387]
In fact we must make our own schema from your example ?
(killing some nodes and save it ) that works fine...
Or there is an original somewhere ?
Or I miss something ?
(here in French for some nodes because i have French enable! :)

From: MO (MO_TE)
27 Jan   [#394] In reply to [#393]
Hi PILOU
>> In fact we must make our own schema from your example ?

I modified my main.js to have more colors. But, there should be no difference in terms of working.

>> Or there is an original somewhere ?

Actually, I was working on implementing some new features of this "litegragh" fork into the old nodeeditor. But, I haven't released it yet.
https://github.com/atlasan/litegraph.js

It works nice, But, I have some problems with html and css parts.
I was hoping to find someone interested/skilled to help me finish it! :)
From: Frenchy Pilou (PILOU)
27 Jan   [#395] In reply to [#394]
THx for the infos! And alas i can't help you on these difficult domains! :( (for me)

Show messages:  1-15  …  316-335  336-355  356-375  376-395  396-415  416-425