MoI discussion forum
MoI discussion forum

Full Version: Nodebundle for playing with nodes

Show messages:  1-8  …  1009-1028  1029-1048  1049-1068  1069-1088  1089-1108  1109-1128  1129-1148  …  1849-1859

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

From: speedy (AL2000)
11 Jun 2018   [#1069]
Hi Friends
Scrolling through the M_RectangularGrid
posted different time ago, I noticed
that everything could be greatly lightened,
in terms of weight of the resulting file ....
how many interested people find this link:
http://www.mediafire.com/file/fulg3v4ektwlp84/M-RectangularGrid.nod/file
the updated Macro
Good Work everyone
alberto
From: speedy (AL2000)
12 Jun 2018   [#1070]
Hi Friends
I want to share this new macro
multiple radii Pipe ..
file at this link:
http://www.mediafire.com/file/56b5264atbkm8cp/M_mradiiPipe.zip/file
Have a nice day to all
alberto
From: James (JFH)
12 Jun 2018   [#1071]
Hi All,

Batswing Gyroid wrapped with simple embossed grid

James

Image Attachments:
gyroid.jpg 


From: Karsten (KMRQUS)
12 Jun 2018   [#1072]
Hello James, Hello Al,

Looks like you're having fun. It makes me happy to see that you still use the NE and go to the limit of what is possible. Very impressive.

Have a nice day
Karsten

Message 7777.1073 was deleted


From: Frenchy Pilou (PILOU)
12 Jun 2018   [#1074]
<< go to the limit of what is possible

In theory anything is possible if all native functions are emulated ?
From: James (JFH)
12 Jun 2018   [#1075]
Hi All,

Attached is .nod file for building gyroid sphere.
First open gyroidSphereElem.3dm then load gyroidSphere.nod and RUN

UPDATED: Now with Karsten's brilliant new "Network" node, no imported element is necessary.
First replace Construct2.js in AppData/Moi/Nodeeditor/Nodes/Extensions with attached

And while you're at it, also replace Object2.js in same directory. It includes new removeDupCrvs node:
a useful utility.

James

Image Attachments:
gyroidSphereHollow.jpg 


From: Karsten (KMRQUS)
12 Jun 2018   [#1076] In reply to [#1074]
Hello Pilou,

I meant possible now. Everything can improved -that's clear. But I think we got a good state - from the start till now. And not all functions can be converted to a node and it isn't useful in my opinion. But, Step by step we can close the gap. And new Options in V4 will do the rest.

Have a nice day
Karsten
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

Show messages:  1-8  …  1009-1028  1029-1048  1049-1068  1069-1088  1089-1108  1109-1128  1129-1148  …  1849-1859