MoI discussion forum
MoI discussion forum

Full Version: Surprizing things about MOI3D that you learn by teaching it.

Show messages:  1-5  6-25  26-45  46-51

From: mkdm
22 Feb 2023   [#26] In reply to [#23]
Thanks a lot!
A missing node indeed :)
From: MO (MO_TE)
1 Mar 2023   [#27]
Hi
I rewrote the "fillet" and "chamfer" nodes.
They can now fillet or chamfer specified edges/faces Or entire object.



I also changed r2d3's "selectEdges" Node to make selecting edges easier.
Now it can pass the selected edges numbers(Indexes) (e.g. vertical/horizontal edges or holes )
Although it works best on solids.



Here is an example to show you how they work.




Node's address :
Construct/FilletEdges
Construct/ChamferEdges
r2d3/selectEdges

Attachments:
ChamferEdges.js
FilletEdges.js
r2d3.js


From: Frenchy Pilou (PILOU)
1 Mar 2023   [#28] In reply to [#27]
Excellent! Bravo!
From: MO (MO_TE)
15 Mar 2023   [#29]
"CoordinateFrames" node



Outputs:
Default coordinate frames (Up, Front, Right)
User defined frames

Address:
Points/CoordinateFrames

Attachments:
CoordinateFrames.js


From: MO (MO_TE)
17 Mar 2023   [#30]
"PlaneCenter" node




address:
Solids/PlaneCenter

============================
"CurveMorph" node
This is the node version of "CurveMorph" script by Max Smirnov.
Morph between two curves



Inputs:
two curves
curves number

address:
Curves2/CurveMorph

Attachments:
CurveMorph.js
PlaneCenter.js


From: Frenchy Pilou (PILOU)
18 Mar 2023   [#31] In reply to [#30]
Cool!
From: MO (MO_TE)
19 Mar 2023   [#32]
"Array3D" node
Based on "Array3D" script by Max Smirnov.




Address:
Objects2/Array3D

Attachments:
Array3D.js


From: Frenchy Pilou (PILOU)
19 Mar 2023   [#33]
Excellent!

I will must add all these nodes on my repository!
https://moiscript.weebly.com/biblio-elephant.html
From: TMeeks
20 Mar 2023   [#34] In reply to [#32]
That's wonderful! I am constantly amazed by the work of other MOI3D users!

Thanks!
From: MO (MO_TE)
20 Mar 2023   [#35]
Thank you guys
And thanks to max for his scripts.
I just realized that it's missing randomization, So updated my last post with the new node.
Have fun :)
From: MO (MO_TE)
24 Mar 2023   [#36]
"ConnectPoints" node



Address:
Curves2/ConnectPoints

"FatLines" node
Based on "FatLines" script by Max Smirnov


Address:
Curves2/FatLines

Attachments:
ConnectPoints.js
FatLines.js


From: Frenchy Pilou (PILOU)
24 Mar 2023   [#37]
Fat lines is a very cool function!
From: MO (MO_TE)
26 Mar 2023   [#38]
"Sum", "Average" and "RandInRange" nodes




Address:
Basic/Sum
Basic/Average
Basic/RandInRange
//////////////////////////

"RadialPattern" node
Based on Max Smirnov's "RadialPattern" script



Address:
Objects2/RadialPattern

Attachments:
Average.js
RadialPattern.js
RandInRange.js
Sum.js


From: Frenchy Pilou (PILOU)
26 Mar 2023   [#39]
Perfect!
From: James (JFH)
28 Mar 2023   [#40] In reply to [#38]
MO,

Thank you for all your recent node contributions. It is gratifying to have the functionality of NE extended, however I think it is important to resist redundancy where at all possible.

You were perhaps unaware that there was a "Fatlines" node in existence contributed by Wayne. I see that you have added 2 speed modes, which may offer performance / fidelity improvements. Wayne installed his node under Construct2 directory which I think is the appropriate address.

As well, determining the average of a numArray is already provided by Max's "Extract" node. Could "Sum" be added to the "Extract" drop down menu?

As for your "planeCenter" node; this is essentially a replica of Kirsten's "SubD/SelCenterPlane" which is counterintuitively located in SubD directory; Solids is the appropriate directory. However, Wayne made a small modification to Curves/Rectangle node to output surfaces as well as outlines. I have found that in doing so, "SubD/SelCenterPlane" was already redundant. I am not sure if Wayne released Curves2/Rectangle2 to the forum, I believe he did, but anyway it is an elegant & coherent method to generating a plane. This is the perfect example of adding functionality to NE without adding bloat.

Your "RandInRange" has all the functionality of the original "Random" node, yet with the facility to operate within a chosen range and in so it is a worthy replacement.

I made some minor changes to the node's defaults so that it operates similarly to "Random" without connecting inputs. There are many application where only a single floating point number between 0 - 1 is required on running the node, as a consequence I have also made "digital" the default mode. I have attached revised code below, for your consideration.

I hope this post does not read as being critical of your contributions, quite the opposite; I am very happy that you have picked up the mantle, but only that it would be a better time investment to not be reinventing the wheel.

Keep up the good work,
James
https://www.instagram.com/nodeology/



Attachments:
RandInRange.js

Image Attachments:
MO_nodes.jpg  random.jpg 


From: MO (MO_TE)
28 Mar 2023   [#41] In reply to [#40]
Hi James
Thank you for your time and for these helpful suggestions. :)

About "FatLines" node you are right. I didn't know this node already exists.
Fast mode works just like the Max's "FatLines" script.
Slow mode gives different results on closed curves.

I agree with you, but sometimes it's more convenient to write a node than to finding it. :)
And sometimes redoing is because of having different NE versions.
Like this one:
My "Extract" node is a completely different node. :)


Generating a plane with "rectangle" node is nice, but I couldn't find "rectangle2" node.
Also in my NE version, "SelCenterPlane" node works just for one point.
Here is a timing comparison.

From: James (JFH)
28 Mar 2023   [#42] In reply to [#41]
Mo,

quote:
sometimes it's more convenient to write a node than to finding it.
That made me laugh:)
quote:
My "Extract" node is a completely different node. :)
You have the correct Basic/Extract node, however it is a multi-function node. The numArray operations may be accessed by Right Button Clicking on the title bar. See below


There are a number of these multi-function nodes: Basic/Lenght for example.

quote:
I couldn't find "rectangle2" node.
I have attached below. Also attached are Circle2, Polygon2 & Star2

James
https://www.instagram.com/nodeology/

Attachments:
circle2.js
polygon2.js
rectangle2.js
star2.js

Image Attachments:
ExtractRMB.jpg 


From: MO (MO_TE)
29 Mar 2023   [#43] In reply to [#42]
You are right. I had not noticed that.
I've changed the extract node to add "sum" function.

Also thanks for attached nodes. :)

Attachments:
Extract.js


From: James (JFH)
29 Mar 2023   [#44] In reply to [#43]
Thanks Mo,
quote:
I've changed the extract node to add "sum" function.

I installed "Extract.js", quit & reopened Moi then NE & numArray Options on Extract node, but "Sum" option did not appear.
This is despite that function Extract() within Extract.js should overwrite previous version in Basic.js
Nevertheless I tried commenting out function Extract() in basic.js, but still no "Sum" option.

Thinking that it may be a caching issue, I restarted the computer, but no luck.
Any idea what could be the issue?

James
https://www.instagram.com/nodeology/
From: MO (MO_TE)
29 Mar 2023   [#45] In reply to [#44]
"extract" function exists in "basic.js" and "basic2.js" files
"basic.js" line : 448
"basic2.js" line 149
They overwrite "extract" node.
Try commenting out "extract" function in "basic2.js" file as well.
Or just manually modify them.
I've changed this line:
code:
this.local = {pointarray:["X", "X", "Y", "Z", "rX", "rY", "rZ", "Scale"], numarray:["Min", "Min", "Max", "Average"]};

To this:
code:
this.local = {pointarray:["X", "X", "Y", "Z", "rX", "rY", "rZ", "Scale"], numarray:["Min", "Min", "Max", "Average", "Sum"]};

and added this line:
code:
case 4:	o = 0; for ( i = 0; i<inp.length; i++) o += inp[i]; break;

after this line:
code:
case 3:	o = 0; for ( i = 0; i<inp.length; i++) o += inp[i];	o /= inp.length; break;

Show messages:  1-5  6-25  26-45  46-51