Nodebundle for playing with nodes
 1-12  …  1213-1232  1233-1252  1253-1272  1273-1292  1293-1312  …  1853-1859
Thread Split: Some posts in this thread have been moved here

Previous
Next
 From:  Unknown user
7777.1253 In reply to 7777.1250 
Hello James.

Thank you for your feedback and your contribution to the common cause.
It's really fun to do.

Vladimir.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  James (JFH)
7777.1254 
Hi All,

Continued experimentation with interwoven patterns on surfaces. (nod file attached)

James

PS. Michael thanks for the V4 update. Everything is working great!

EDITED: 14 May 2019 by JFH

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  wayne hill (WAYNEHILL5202)
7777.1255 
Knurl on diameter

EDITED: 17 Jan 2021 by WAYNEHILL5202

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  speedy (AL2000)
7777.1256 
Hi Friends
a simple umbrella .....
that you can close and open
Those interested find this link:
http://www.mediafire.com/file/rlo8fk7jcy6z69g/Umbrella.zip/file
images and files
Have a great weekend everyone
al
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  James (JFH)
7777.1257 
Hi All,

I have included a new "Shell" node in the attached construct2.js

ATM shell offset is parametric but only in normal direction. Flipping the direction is easily achieved by pairing with "Flip" node (also included)

At a later date, I will see if I can add "centreline" mode, but for now it suits my purposes.

By way of demonstration, I applied shelling to nod file previously posted (with coarser pattern and no subd smoothing) . Please also find attached.

A great weekend to all,
James



UPDATED: another simple example of shell node attached

EDITED: 7 Jun 2019 by JFH

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  James (JFH)
7777.1258 In reply to 7777.1257 
Hi All,

I have updated construct2.js to include additional new "Extend" node which performs analogous to "Constuct/Extend" tool: extending a curve to meet a boundary curve or surface.

Have a great weekend
James


EDITED: 14 May 2019 by JFH

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  speedy (AL2000)
7777.1259 
Good morning James
excellent work with the New Extension Construct2
I have a problem, as you will see from the screnshot , opening your files
shell, I get an error message .......
Does it depend on some awkward setting in my program?
I simply replaced it in the UI / Nodeeditor folder
your new script to replace the existing one
image at this link:
http://www.mediafire.com/file/49654g68o20zgcf/Shell-problem.jpg/file
James
Thanks in advance
al
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  James (JFH)
7777.1260 In reply to 7777.1259 
Hi All,

Al (Speedy 2000) has drawn my attention to the fact that shell node only works in V4.
I will endeavour to fix this issue, but it may be a while.

All the best to everyone,
James

EDITED: 23 Oct 2018 by JFH

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
7777.1261 In reply to 7777.1242 
Hello James,
please try this code. It seems there is sometimes a timing problem with the copy/paste stuff. Very untested.
code:
// extractPts
 function extractPts()
 {
 this.addInput("In","objectlist");
 this.addOutput("Out","objectlist");
this.addOutput("ptarray", "pointarray");
 }

 extractPts.title = "extractPts";
 extractPts.desc = "extractPts";

 extractPts.prototype.onExecute = function()
 {
 var inObj = this.getInputData(0, moi.geometryDatabase.createObjectList());
 var output = moi.geometryDatabase.createObjectList();
 var selPts = moi.geometryDatabase.createObjectList();
    var originXYZ = moi.VectorMath.createPoint(0, 0, 0);
var temp = moi.geometryDatabase.createObjectList();
	         var pts = new pointArray(false);
//////
	 moi.geometryDatabase.selectAll();
	var existings=moi.geometryDatabase.getSelectedObjects(); //Locking the database objects
	 moi.geometryDatabase.deselectAll();
////////
	 if (inObj.length > 0 )
 {  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);
temp.setProperty('showPoints', 1);
moi.geometryDatabase.selectAll();
temp.setProperty('selected', 0);
existings.setProperty('selected', 0);
 moi.geometryDatabase.copyToClipboardCommand(temp); 
moi.geometryDatabase.pasteFromClipboard();
//setTimeout( doNothing, 500);
 selPts=moi.geometryDatabase.getSelectedObjects();
for(var i=0;i<selPts.length;i++)pts.pushPoint(selPts.item(i).pt);
if(selPts.length>0)output = factory('copy',selPts,originXYZ,originXYZ,true);
 moi.geometryDatabase.selectNamed(tempname);
        temp=moi.geometryDatabase.getSelectedObjects();
	moi.geometryDatabase.deselectAll();
        var delfac = moi.command.createFactory( 'delete' );
	delfac.setInput( 0, temp );
	delfac.commit();
	delfac.cancel();
	existings=moi.geometryDatabase.createObjectList();
 } 
 this.setOutputData(0, output);
this.setOutputData(1, pts);
 }
 LiteGraph.registerNodeType("Objects2/extractPts", extractPts);


Have a nice day
Karsten

p.s.: For V4 Michael will give us some new features in the API that will make a lot of things easier.

EDITED: 25 Oct 2018 by KMRQUS

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Message 7777.1262 deleted 24 Oct 2018 by JFH

Previous
Next
 From:  James (JFH)
7777.1263 In reply to 7777.1261 
Thanks Karsten,

Work perfectly....I wish I had your skills. You're a champion!

Thanks again
James

EDITED: 25 Oct 2018 by JFH

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  speedy (AL2000)
7777.1264 
Hi Karsten
this morning I saw a bit of light at the bottom
to the tunnel ..... I managed to insert your script
extrPts in Object2 -Alleluja
it works great, even with the V3 ,
you are a GREAT , and believe me ,
your "forced" absence has been very heavy
have a nice day
al
Ps:
Courage;
We say ... dead a pope it does another one
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  James (JFH)
7777.1265 
Hi All,

I have rewritten "Shell" node for multiprocessing and reattached "construct2.js" to earlier post:
http://moi3d.com/forum/index.php?webtag=MOI&msg=7777.1258

Here is an experiment where shelling is varied across an array of hexagon extrudes
in response to proximity of 3 attractors. Although similar could be achieved by offsetting or scaling curves prior to extrude, shelling makes the process much simpler.

James

Also requires "reRange node" in arraysExt.js to be found here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=7777.1251

EDITED: 17 Feb 2019 by JFH

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7777.1266 
Nice result!
---
Pilou
Is beautiful that please without concept!
My Moi French Site My Gallery
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  James (JFH)
7777.1267 
Hi All,

I have been trying without success to write a simple node for assign a style to geometry.
See my attempt below:

// SetStyle
function SetStyle()
{
this.addInput("obj","objectlist");
this.addInput("idx","numarray");

this.addOutput("Out","objectlist");
}

SetStyle.title = "SetStyle";
SetStyle.desc = "SetStyle";

SetStyle.prototype.onExecute = function()
{
var objects = this.getInputData(0, moi.geometryDatabase.createObjectList());
var index = this.getInputData(1,index);

var output = objects.setProperty('styleIndex', index);

this.setOutputData(0, output);
}
LiteGraph.registerNodeType("Objects2/SetStyle", SetStyle);

The aim here is quite modest, but ideally the node would not just assign existing indexed styles but instead add new styles with RGB inputs prior to assignment.

Any help would be appreciated
James
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
7777.1268 In reply to 7777.1267 
Hi James, this line looks a little suspicious to me:

var index = this.getInputData(1,index);

That's passing in index which I guess is undefined at that time, and then assigning the return value to index too?

For adding new styles, you can use either:

var style = moi.geometryDatabase.addStyle();

or

var style = moi.geometryDatabase.findStyle( 'name', true /* Create if not found */ );

The second one will return an existing style if there is already one with that name, or create a new one if none of that name currently exist.

Then on a style there are read/write properties for .name and .color and the style's index value is a read only property .index .


Does that help with anything? Let me know if you're still stuck.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
7777.1269 In reply to 7777.1267 
Hello James,

Have a look to this:
code:
    // SetStyle
 function SetStyle()
 {
 this.addInput("obj","objectlist");
 this.addInput("idx","numarray");

 this.addOutput("Out","objectlist");
	  this.properties = {Style: [0]};
 }

 SetStyle.title = "SetStyle";
 SetStyle.desc = "SetStyle";

 SetStyle.prototype.onExecute = function()
 {
 var objects = this.getInputData(0, moi.geometryDatabase.createObjectList());
        this.properties.Style = this.getInputData(1, this.properties.Style);
//for(var i=0; i<objects.length; i++)objects.item(i).styleIndex = this.properties.Style[0];
objects.setProperty('styleIndex', this.properties.Style[0]);
 var output = objects;
 this.setOutputData(0, output);
 }
 LiteGraph.registerNodeType("Objects2/SetStyle", SetStyle);


Have a nice day
Karsten

p.s.: Don't forget - you are working with Arrays!!! It's not like arays in C, where the adress/name points to the first element;-)

EDITED: 12 Nov 2018 by KMRQUS

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Message 7777.1270 deleted 12 Nov 2018 by JFH

Previous
Next
 From:  James (JFH)
7777.1271 In reply to 7777.1269 
Hi Karsten,

Thanks again for setStyle node.
At the risk of appearing ungrateful (which I'm not at all, quite the opposite), would it be difficult to make this node multiprocessing?

To colour facets in accordance to distance from an attractor, it was necessary to replicate the geometry 8 times & remove those facets with ptDist that have been remapped to range between 0 - 7 and rounded to integers and then tested in series. This approach quickly becomes cumbersome with each additional style attribution.





I have also attached the .nod file, however on running, the colours will appear different to those above because they will instead index default styles.

The ideal solution would be a setColor node that had inputs for Red, Green, & Blue values and handled the indexing automatically. Whether setColor and setStyle nodes should be combined into a single node or separate nodes, I'm not sure which is best....

Your thoughts?
James

EDITED: 8 Aug 2020 by JFH

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
7777.1272 In reply to 7777.1271 
Hello James,

I'm not sure which way is the best, but a RGB input would create a lot of styles or you have to create and delete again and again. I made a while ago a function for coloring vectors and for the curvature analysis, that create some kind of rainbow styles. It uses sigmoid functions to calculate the RGB parts for blending the colors. It's not perfect, but short code:-) I've included it in the SetStyle-node. So you can put a value between 0 and 254 to choose a color. The node is now multiprocessing the input objects. It's a proposal. Maybe we will find a better solution later.

code:
    // SetStyle
 function SetStyle()
 {
 this.addInput("obj","objectlist");
 this.addInput("idx","numarray");

 this.addOutput("Out","objectlist");
	  this.properties = {/*mode: ["Long", "Long", "Short"],*/Style: [0]};
 }

 SetStyle.title = "SetStyle";
 SetStyle.desc = "SetStyle";
    SetStyle.prototype.onAdded = function (){this.rbID = createRainbow();}
 SetStyle.prototype.onExecute = function()
 {
            var data = this.processInOut("Long" /*this.properties.mode[0]*/, this.multiProcess, null, this.properties.Style);
            this.properties.Style = data.inputs[1];
            this.setOutputData(0, data.outputs[0]);
        
    };


    SetStyle.prototype.multiProcess = function (obj, style)
    {
        var out = [];
        obj.setProperty('styleIndex', this.rbID[style]);
        out[0]=obj;
        return out;
    };
 
 LiteGraph.registerNodeType("Objects2/SetStyle", SetStyle);


Have a nice day
Karsten
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-12  …  1193-1212  1213-1232  1233-1252  1253-1272  1273-1292  1293-1312  1313-1332  …  1853-1859