MoI discussion forum
MoI discussion forum

Full Version: Nodebundle for playing with nodes

Show messages:  1-3  …  984-1003  1004-1023  1024-1043  1044-1063  1064-1083  1084-1103  1104-1123  …  1844-1859

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

From: Finema
1 Jun 2018   [#1044] In reply to [#1043]
Hi
Why the pattern isn't similar to the model (bottle)
See my screenshots
The pattern is not perfectly following the shape of the bottle.
Thanks

Message 7777.1045 was deleted


From: Finema
2 Jun 2018   [#1046] In reply to [#1045]
OK
Thanks James :)
From: James (JFH)
2 Jun 2018   [#1047] In reply to [#1046]
Finema

The reason "pattern is not perfectly following the shape" is due to the fact that the bottle surface has been rebuilt. It fidelity of the bottle is significant, then there are work arounds. I'll get back to you

See if the attached works for you. Instead of rebuilding the bottle; it has been sliced/diced.

James
From: Finema
2 Jun 2018   [#1048] In reply to [#1047]
James
It's perfect now !
the script running is slower but it's great !
thanks a lot

Message 7777.1049 was deleted


From: Finema
2 Jun 2018   [#1050] In reply to [#1049]
James,
With this version (7) there is a deformation
see my screenshot


Also,
With V6 et V7 :
1• I apply the node on my model
2• i quit MoI
3• ropen the 3dm file
4• apply the node > Error
5• i must redraw my model (Revolve)
6• ican now apply the nodeV6 or V7


thanks
From: James (JFH)
3 Jun 2018   [#1051] In reply to [#1]
Hi Karsten,

I have attempted to create a node based on RemoveDuplicates script.
however without success. Below is my attempt:

// RemoveDup
function RemoveDup()
{
this.addInput("In","objectlist");
this.addOutput("Out","objectlist");
}

RemoveDup.title = "RemoveDup";
RemoveDup.desc = "RemoveDup";

RemoveDup.prototype.onExecute = function()
{
var inObj = this.getInputData(0, moi.geometryDatabase.createObjectList());
var output = moi.geometryDatabase.createObjectList();
if ( inObj.length> 0 ) output = factory ('removeduplicates', inObj);
this.setOutputData(0, output);
}

LiteGraph.registerNodeType("Objects2/RemoveDup", RemoveDup);


Now, only if this would be a welcome distraction for you,
I would appreciate if you could steer me right.

I have so missed your contributions to NE in your long absence.
I know you have a lot on your plate, so if this is something that
you can't turn your mind towards right now, then no worries.

Hope you're well

James
From: Karsten (KMRQUS)
3 Jun 2018   [#1052] In reply to [#1051]
Hello James,

After some problems in my life or with my wife, I had to find a new orientation - I think a well known problem. Now it's getting better and better and I see the light at the end of the tunnel - I hope it's not a train;-)

To your problem:

At first: I think removeduplicate needs a second input - a tolerance value, but that won't solve the problem alone. I suspect that this factory don't give a geometry list back - it works directly to the geometry database. So we have to use a workaround - 1. write the input to the database. 2 call the factory. 3 delete the input list (otherwise the database locks removing). 4. commit the factory 5. get the left objects (singletons) back and copy them in a list. 6 delete the singletons also from the database. 7 give the list to the output.

It's only a first idea - give me some days please and I will have a closer look.

I hope you are well and remain with kind regards!
Karsten
From: speedy (AL2000)
6 Jun 2018   [#1053]
Hi Friends
I want to share with you my research in the field of "OpticalArt"
exploiting the potential of the Quartz node (truly amazing tool....
honor to Max)
A particular double propeller, as opposed moving creates the effect
looked for...
The propeller can be either a Polysurf or a Subdsurf
the file, for those interested at this link:
http://www.mediafire.com/file/3ply0jgng7xveb1/NewPropeller2.rar/file
Have a nice day to all
alberto

Message 7777.1054 was deleted


From: James (JFH)
7 Jun 2018   [#1055]


Hi All,
A new Node Editor derived pattern experiment: Equilateral Triangular grid with scale of individual triangles determined by 3 attractors.

Oh & Thanks Michael for the new update
James

Image Attachments:
3attractors.gif 


From: Finema
7 Jun 2018   [#1056] In reply to [#1055]
Hi James
have you read my last message in this thread ?
Thanks a lot
From: James (JFH)
7 Jun 2018   [#1057] In reply to [#1056]
Hi Finema,

>> have you read my last message in this thread ? <<.

Yes, but if I remember correctly an earlier version was working for you.

I'm sorry I didn't respond. I was developing a hopefully foolproof method
but am first awaiting for another's input. Stray tuned.

Have a great weekend
James
From: Finema
8 Jun 2018   [#1058] In reply to [#1057]
Hi James,
yes the V6 work correctly.
Thanks a lot and have a great WE too.
From: Karsten (KMRQUS)
10 Jun 2018   [#1059] In reply to [#1057]
Hello James,
would you please check this code:
code:
// RemoveDup
    function RemoveDup()
    {
        this.addInput("In", "objectlist");
        this.addInput("Tolerance", "numarray");
        this.addOutput("Out", "objectlist");
        this.properties = {Tolerance: [0.005]};
    }

    RemoveDup.title = "RemoveDupCrv";
    RemoveDup.desc = "RemoveDupCrv";

    RemoveDup.prototype.onExecute = function ()
    {
        var inObj = this.getInputData(0, moi.geometryDatabase.createObjectList());
        this.properties.Tolerance = this.getInputData(1, this.properties.Tolerance);
        var output = moi.geometryDatabase.createObjectList();
        var temp = moi.geometryDatabase.createObjectList();
        if (inObj.length > 0) {
            var tempname = getUID(6);
            for (var i = 0; i < inObj.length; i++)
                inObj.item(i).name = tempname;
            moi.geometryDatabase.addObjects(inObj);
            var fac = moi.command.createFactory('removeduplicates');
            fac.setInput(0, inObj);
            fac.setInput(1, this.properties.Tolerance[0]);
            inObj = moi.geometryDatabase.createObjectList();
            fac.commit();
            moi.geometryDatabase.selectNamed(tempname);
            temp = moi.geometryDatabase.getSelectedObjects();
            var originXYZ = moi.VectorMath.createPoint(0, 0, 0); //Helppoint for a identical copy
            output = factory('copy', temp, originXYZ, originXYZ, true);
            var delfac = moi.command.createFactory('delete');
            delfac.setInput(0, temp);
            delfac.commit();
        }
        this.setOutputData(0, output);
    };

    LiteGraph.registerNodeType("Objects2/RemoveDupCrv", RemoveDup);

Have a nice day
Karsten
From: Michael Gibson
10 Jun 2018   [#1060] In reply to [#1059]
Hi Karsten, if you put that inside of a <code></code> block here in the forum it should preserve the spacing/tab/indenting.

Otherwise HTML has the tendency to collapse white space.

- Michael
From: Karsten (KMRQUS)
10 Jun 2018   [#1061] In reply to [#1060]
Hello Michael,

thank you for the tip! Done:-)
I'm not familar with this stuff (CCS, HTML, PHP, ...)!

Have a nice day
Karsten
From: James (JFH)
10 Jun 2018   [#1062] In reply to [#1059]
Hi Karsten

Thank you for the code. It does exactly what I wanted it to do, so cheers.

I cannot express how grateful I am for your efforts on my behalf.
Forever in your debt,
Thanks James
From: Karsten (KMRQUS)
10 Jun 2018   [#1063] In reply to [#1062]
Hello James,

the removeduplicates factory uses a tolerance value to check if a curve is identical. I set the default value to the limit, what for MoI is identical in general (threshold 0.005 - someone should disagree, if I'm wrong). If you set it to 0, the factory can't find identical objects and the node gives everything back. The factory works only for curves and not for points, faces .... -please try the attached node file. If you need something for points as well - we have to program it.

Have a nice day
Karsten

p.s.: In my installation your example shows 3 points as result independent from the tolerance? What version of MoI you use 4.0Beta?

Attachments:
remdupcrv.nod


Show messages:  1-3  …  984-1003  1004-1023  1024-1043  1044-1063  1064-1083  1084-1103  1104-1123  …  1844-1859