MoI discussion forum
MoI discussion forum

Full Version: Nodebundle for playing with nodes

Show messages:  1-16  …  1017-1036  1037-1056  1057-1076  1077-1096  1097-1116  1117-1136  1137-1156  …  1857-1859

Thread Split: Some posts in this thread have been moved here

From: speedy (AL2000)
13 Jun 2018   [#1077]
Hi Friends
an adaptation of a movable window module
on a canopy, applied not with Flow tool, but with
Copy from/ to point...
as usual file at this link:
http://www.mediafire.com/file/ctla4g3v759p77i/MovableWindowsonCanopy.zip/file
Have a nice day to all
alberto

PS-I take this opportunity to greet the great Karsten
welcome back ... we hope for your help
for the next developments .... without you, this,
I think it would not have been possible
From: James (JFH)
13 Jun 2018   [#1078] In reply to [#654]
Hi Karsten,

In reply to http://moi3d.com/forum/index.php?webtag=MOI

<< I've already written a Network node, but it's very unstable caused by the orientation of the Input curves.>>.

Now I don't want to badger, only remind you, in case it has slipped your mind;
that this was a path that you had already ventured down and that you may be interested in revisiting it with new eyes.
(if you will excuse the mangled metaphor). Network it the major missing construct node in NE

All the best
James
From: Karsten (KMRQUS)
14 Jun 2018   [#1079] In reply to [#1078]
Hello James,

the Network factory is one of those who crashes MoI, if the Input is not correct. Futhermore it is difficult to sort and orient the curves in the right way for the Input. A lot of logic and checks would be necessary to bring the curves in a topological structure. And I don't know how MoI itselve handles that.

Have a nice day
Karsten
From: James (JFH)
14 Jun 2018   [#1080] In reply to [#1079]
Hi Karsten,

Thank you for getting back to me.

<< Network factory is one of those who crashes MoI....I don't know how MoI itselve handles that.>>.

OK perhaps this is one node that is best left to Max.

But while I've got you here: you also some time ago observers that
<< rebuild curve would also help for a complete toolchain!.>>,
(refer: http://moi3d.com/forum/messages.php?webtag=MOI&msg=8622.1

Is this something that you have looked at?

I loath coming across as a total ingrate, because the truth is, I could not be more grateful
for all your great work.
James
From: Michael Gibson
14 Jun 2018   [#1081] In reply to [#1079]
The Network factory has inputs like this:

0: Object list - U curves
1: Object list - V curves
2: List of curve orientation objects - U orientations
3: List of curve orientation objects - V orientations
4: String - Mode, One of "normal", "lighter", "custom", "uniform"
5: Number - Custom tolerance, Fitting tolerance to use when mode = "custom".
6: Int - Uniform Num Points - Number of interior points to use when mode = "uniform".

The way it works in the normal command is only the U curves are populated by the command script, and the orientation data is empty. Then when the it runs it sorts those into separate U and V lists and makes the orientation lists that records any flipping that was done so that when the factory is persisted into a history string and there is a history update late it won't attempt to resort them at that time.

If you can extract a sample of what's not working for you such that it is runnable outside of the node editor as just a regular command it would make it easier for me to track down what is going wrong there.

- Michael
From: Karsten (KMRQUS)
14 Jun 2018   [#1082] In reply to [#1081]
Hello Michael,

thanks for the information! It wasn't clear for me how it works and I thought at the end, I have to sort it in the JS-Code. The old documentation wasn't helpful - only 4 Inputs. So I will start working on Network again the next days, but with low priority -FIFA World Cup starts today and that requires a lot of capacity:-) Holy weeks for me!

A nice day to all
and thanks again
Karsten
From: James (JFH)
14 Jun 2018   [#1083]
Hi All,

Only after doing gyroid nod file, did I discover early discussion of batwing gyroid on the forum & Jotero's suggested method.
However this took me to his online gallery. One of his sculptures was the inspiration for this: byrdCage.nod

James


Image Attachments:
byrdCage1.jpg  byrdCage2.jpg 


From: mkdm
14 Jun 2018   [#1084] In reply to [#1083]
AMAZING! YOU'RE A MASTER!!

:)
From: Karsten (KMRQUS)
14 Jun 2018   [#1085] In reply to [#1081]
Hello Michael,

the problem was that the network factory need curves that are already added to the database - otherwise the factory shows this in the crash report:

.\Init.cpp 501: Moi starting up
Current command = none, Version = Sep-18-2014
7 network V1
5
22 objectlist 8 U curves0
22 objectlist 8 V curves0
21 string 4 Mode6 normal
49 double 16 Custom tolerance3f847ae147ae147b (0.01)
27 int 18 Uniform Num Points10

It reminds me to the 'removeduplicates' factory.

Now I can fix some other problems:-)

Many thanks and
have a nice day
Karsten

p.s.:
@ James - Is railrevolve already distributed?
code:
function RailRevolve()
{
	this.addInput("Profile","objectlist");
        this.addInput("Rail","objectlist");
	this.addInput("Frame","pointarray");
	this.addOutput("Out","objectlist");
	this.properties = { mode:[/*"Union","Union"*/"Long","Long","Short"], cap_ends:["On","On","Off"]};
}

RailRevolve.title = "RailRevolve";
RailRevolve.desc = "RailRevolve";

RailRevolve.prototype.onExecute = function()
{

	{
		var data = this.processInOut(this.properties.mode[0], this.multiProcess,null, null, null );
		this.setOutputData(0, data.outputs[0]);
	}
};

RailRevolve.prototype.multiProcess = function(prof,rail, f)
{
	var frame = f.getFrame();
	return [factory ('railrevolve', prof.item(0),rail.item(0), frame.origin, frame.evaluate( 0, 0, 1 ), this.properties.cap_ends[0] === "On")];
};

LiteGraph.registerNodeType("Construct2/RailRevolve", RailRevolve);

From: Karsten (KMRQUS)
14 Jun 2018   [#1086]
Hello James,

very untested - only some standard test:
code:
function network()
    {
        this.addInput("In", "objectlist");
        this.addOutput("Out", "objectlist");
        this.properties = { mode: ["normal", "normal","lighter", "exact","custom","uniform"], tolerance: [0.01], numPts: [10]};
    }

    network.title = "network";
    network.desc = "network";

    network.prototype.onExecute = function ()
    {
        var inObj = this.getInputData(0, moi.geometryDatabase.createObjectList());
        var output = moi.geometryDatabase.createObjectList();
        var temp = moi.geometryDatabase.createObjectList();
   if (inObj.length > 3) {
            var tempname=getUID(6);
        for(var i=0;i<inObj.length;i++){temp.addObject(inObj.item(i));temp.item(i).name=tempname;};
            moi.geometryDatabase.addObjects(temp);
            var nFac = moi.command.createFactory( 'network');
            nFac.setInput(0, temp);
	   	if ( ! nFac.canDoCoonsPatch && this.properties.mode[0]=== "exact" ){moi.ui.alert("Network option exact not possible! switch back to normal ");this.properties.mode[0]="normal";};

	    nFac.disableUpdate( true );
            nFac.setInput(4,  this.properties.mode[0]);
//            nFac.setInput(4, 'normal');
            nFac.setInput(5, this.properties.tolerance[0]);
            nFac.setInput(6, this.properties.numPts[0]);
//            nFac.update();
            output = nFac.calculate();
//            nFac.commit();
            nFac.cancel();
        moi.geometryDatabase.selectNamed(tempname);
        temp=moi.geometryDatabase.getSelectedObjects();
        var delfac = moi.command.createFactory( 'delete' );
	delfac.setInput( 0, temp );
	delfac.commit();
        }
           this.setOutputData(0, output); 
    };
LiteGraph.registerNodeType("Construct2/Network", network);


Please make some experiments and report me about.

A nice day to all
Karsten
From: Michael Gibson
14 Jun 2018   [#1087] In reply to [#1085]
Hi Karsten,

re:
> the problem was that the network factory need curves that are already added to the
> database - otherwise the factory shows this in the crash report:

I'm glad you found the problem! This issue of not being able to use "loose" objects that are not in the database with an async factory should be solved in v4. The problem was that previously a newly created object was not assigned a unique id value until it was added to the geometry database, while in v4 this happens right when objects are created.

- Michael
From: Karsten (KMRQUS)
14 Jun 2018   [#1088] In reply to [#1087]
Hello Michael,

thank You for the explanation - now it's making sense to me. And the change in V4 can simplify the code and avoid some workarounds with naming. Top!!!

Cheers
Karsten
From: James (JFH)
14 Jun 2018   [#1089] In reply to [#1086]
Hi Karsten,

What a delightful & unexpected gift to wake up to...and not only that but a bonus node.

I've gone back to my gyroid experiments and replaced the imported element with a base surface
wholly constructed in NE via network node. Works perfectly.

http://moi3d.com/forum/index.php?webtag=MOI&msg=7777.1075

I will continue to play around with it & rail revolve and report any issues.

Thanks again Karsten, you are a champion

James
From: James (JFH)
15 Jun 2018   [#1090]
Hi All

With new network node it is possible to distort a regular pattern to give it that 60's feel
so that when wrapped around an object there is no relationship between the distortion
and underlying topography. It is a bit of a silly experiment, but I think it hints at real
possibilities for graphic expression

James

Image Attachments:
OpArtSoap.nod.jpg 


From: Finema
15 Jun 2018   [#1091] In reply to [#1090]
Hi James
It will be cool if we could choose and create the pattern (module) and the wrapped object out of Nodeeditor (not with code), just with MoI tools.
Thanks for your good job :)
From: speedy (AL2000)
15 Jun 2018   [#1092]
Hi Friends
I pushed, I believe at the Elephant limit ....
which can handle around 2800 surfaces and smooth them
It is not a brainer ....
Very Very Very Stronge Program ..
In addition, I see that Karsten goes on with new tools
Network. Swept Rail etc. etc.
very, very good , what to say , beyound thath Thanks to those
who make it possible....

For those interested the file is this link :
http://www.mediafire.com/file/utau60u4m66ulel/SpiralLamelleInterwoven.zip/file
It is a Interwoven surface, quite complex
to test the true potential of the program
Happy weekend to everyone
al
From: James (JFH)
16 Jun 2018   [#1093]
Hi All,

Following on from my last post; attached is a .nod file for generating randomised distorted patterns.
4 example outputs below

UPDATED:
Could be used for creating stone paving, by replacing circles with spheres: See additional image below

James

PS Go easy with increasing intensity slider unless you want a punk pattern.

Image Attachments:
polka.gif  stonePaving.jpg 


From: mkdm
17 Jun 2018   [#1094] In reply to [#1093]
AMAZING!!!! ...as usual!

Fantastic stuff for all "2D-workflow" related works!

Your creations are of superior quality and I think that they CAN'T be missed by anyone.

You should (if you want) put all your latest/best nodes into a public storage to be accessible by all Moi' guys, without searching (and losing) them here on the "maremagnun" of this forum.

Thanks a lot James!
From: James (JFH)
17 Jun 2018   [#1095] In reply to [#1094]
Hi Marco,

Thank you for your kind words. Funnily enough, I was inspired by your 2D workflow work when doing this .nod file. It is very clever the way you have used moi as a vector graphics tool like illustrator. It is something I intend to emulate more in the future. Anything to use Adobe's products less, the better.

As for an archive; I think it is a good idea, but probably best left until after NE is out of beta.

Thanks again
James
From: mkdm
18 Jun 2018   [#1096] In reply to [#1095]
Ciao James!

You're welcome. My words simply described the reality. Your work on NE is EXCELLENT!!
(and the experiments of the user "speedy - AL2000")

And about 2D workflow....yeah! I always wanted to find suitable and streamlined ways to use Moi for that kind of purposes, because I wanted to join together the power of Moi's Nurbs with the power of product like Affinity Designer.

Unfortunately, or fortunately :), recently I really have not time at all to put again my hands on keyboard to continue the development of specialized scripts for "2d workflows".
I have many ideas, so many, but not time to develop.

So, your contribution with your nodes is very precious.

Max did a PRICELESS JOB, a "monster" tool, a "milestone" for Moi. but unfortunately, IMHO, the unique real problem is that NE is still a "too fragmented" product, very powerful, but still young.

With the BIG problem of a "scattered" documentation and knowledge base.

And it seems that actually NE has also reached the limit that Moi can do, because Moi was not made to deal with these kind of use-case.
And this is particularly evident with all your latest nodes and also with the excellent nodes made by the user "speedy - AL2000".

Anyway...I really hope that Michael's will continue to improve the Mo's "2d tool set" in order to have an even better product to deal with "2d workflows"

Ciao and have a nice day!

Show messages:  1-16  …  1017-1036  1037-1056  1057-1076  1077-1096  1097-1116  1117-1136  1137-1156  …  1857-1859