MoI discussion forum
MoI discussion forum

Full Version: Nodebundle for playing with nodes

Show messages:  1-7  …  1268-1287  1288-1307  1308-1327  1328-1347  1348-1367  1368-1387  1388-1407  …  1848-1859

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

From: bemfarmer
29 Dec 2018   [#1328] In reply to [#1327]
James has already done 2 versions of Hex Grids macros, which I still do not fully understand.
After a lot of study, here is my version, HexFlatGridAlpha01.nod, which contains the HexFlatGridMacroAlpha01.
The mini Hex nod may be saved in your nod library, and the Macro may be Exported to the nodeeditor macro folder.
I still need to write up my documentation. It was hard to wire up the "math formulas," and the macro is a bit of a wiring "birdnest."
Separate MathPts arrays for the non-indented and indented columns, as the array node did not seem to be amenable to doing them together.
The behavior of the U range, prevented the display of only one column, as maxRange for a single column incremented itself.
Still need to Extract X and Y values.

It took awhile to realize that the unum and vnum are total copies, not incremental values.


After creation, the grid may be MoI Mirrored to the pointy vertices up orientation, with rows and columns swapped.

Perhaps some alteration to the behavior, in nodeeditor, of the Esc button could be done. When 2 or more nodeeditor windows are open,
pressing Esc deletes the currently selected window, and the work done is gone. If only one window is open, (or focus is on the initial window?),
after Esc is pressed, the window reappears by reloading with nodeeditor hotkey, but other windows are gone.
(A habit of pressing Esc button at times, erased some windows, but only a little bit of work was lost...)

(After upgrading office computer from w7 to windows 10, Quickbooks 2018 refused to open, until uninstalled and reinstalled. (MoI 4 beta worked fine.)
Also, for MS Office 2016, (and also Office 365 monthly fee version), the Excel, Word, Publisher, Access, and PowerPoint programs refused to open any files,
and crashed. After some talented Microsoft techs from the Philippines spent 2 or 3 hours+ remote controlling the computer, the problem is
not resolved. Next week is "Level 3" :-) ) [Everything worked fine on home computer.]
>>>Update, took office computer home to fast internet, reinstalled Windows10, and everything works.
Do not install/upgrade to W10 on a slow telephone line internet.

- Brian

All node programs should have a Title box on the node window...to aid memory of which nodes were just open... (Using an extra Output box works OK)

Attachments:
HexFlatGridAlpha03.zip


From: Michael Gibson
29 Dec 2018   [#1329] In reply to [#1328]
Hi Brian, for the escape key handling, one possibility could be to put in an onunload="" handler which can go on the <body> element, and save work there. There's an example of that in the Options.htm dialog.

Also in v4 it is possible for a dialog to do custom handling of keyboard events and it is possible to override escape key handling. There's an example of dialog keyboard event handling in ShortcutKeyDialog.htm .

Putting in a function like this should prevent the default escape key processing which closes dialogs:
code:
			function OnKeyDownEvent( e )
			{
				if ( e.isEscapeKey )
					e.handled = true;
			}


- Michael
From: bemfarmer
29 Dec 2018   [#1330] In reply to [#1329]
Thank you Michael.

I've recently noticed another "strange" behavior in MoI4Beta, or nodeeditor.
When a nodeeditor window is open, and its upper left section, about 2 inches square, more or less, is overlaying the origin of the MoI screen,
using the mouse scroll wheel in the nodeeditor window, causes the MoI grid to zoom in and out.
(The upper left area of the nodeeditor window does not have to be over the origin.)


- Brian

p.s. This does not seem to be occuring in MoI3 with the same nodeeditor version 1, rc3.

Nodes activity in this area has the node flying way way off to the Northwest of the node screen...
They can be moved back into viewing range...

EDIT: The above behavior did not occur the next day, with a reboot. But later in the day, the "zooming" is back.
From: James (JFH)
30 Dec 2018   [#1331] In reply to [#1328]
Hi Brian,

I’m sorry if my Hex Grid macros were a source of frustration for you. You’re right that there several incompatible versions. It was more a cobbled-together contraption to perform a given need than a definitive macro for broadcast. So thank you for your work in producing a universal macro for hexagonal grids.

I am, right now, on an island: “Phi Phi” off Thailand, with no means of testing / playing with it, but thank you for your hard work; it is much appreciated. I look forward to seeing your documentation.

Warm regards
James
https://www.instagram.com/nodeology/
From: bemfarmer
30 Dec 2018   [#1332] In reply to [#1331]
Hi James,
Your many .nod files are very interesting and educational. I've used your HexGrid
information a lot, and the equations that I figured out will be the same, or similar
to many of yours.
For myself, there is still a lot to learn about the Nodes, in order to be able to use them,
so in this winter "reduced workload" period, I'll try to do some documentation about
using some of the Nodes.
- Brian
From: Michael Gibson
31 Dec 2018   [#1333] In reply to [#1330]
Hi Brian,

re:
> I've recently noticed another "strange" behavior in MoI4Beta, or nodeeditor.
> When a nodeeditor window is open, and its upper left section, about 2 inches square,
> more or less, is overlaying the origin of the MoI screen,
> using the mouse scroll wheel in the nodeeditor window, causes the MoI grid to zoom in and out.

Thanks for reporting this - I was able to reproduce this over here and it should be fixed for the next v4 beta.

- Michael
From: bemfarmer
19 Jan 2019   [#1334]
There seems to be some kind of bug with mPath_Array.
After running the script, without Apply, the CurvesU are selectable and deletable by MoI, the points are not selectable nor deletable by MoI, until Apply is clicked.

After clicking Apply and deleting everything in MoI, and returning focus to the nodeeditor canvas, Run does not produce any result, until an input wire, or output wire is detached and re-attached, or knob is "rotated." Also detaching and reattaching the gold wire from ConvertPts, point mode, causes the points to re-appear.
Detaching and reattaching the gold wire from convertPts, CurvesUmode, causes the lines to re-appear.

Also, highlighting of the CurvesU lines will reappear inappropriately.

- Brian

Attachments:
testSplitPtsProblem.zip


From: Karsten (KMRQUS)
19 Jan 2019   [#1335] In reply to [#1334]
Hello Brian,

thanks for testing! I had a look to your example, but mPath-Array gives no Points or something else to the database. mPath-Array uses database elements, but only temporary. So it seems to be a diffenence of the handling in the convertPts noder in the output-node. I my opinion only a small problem, deleting object while running NE isn't a good idea. Maybe it's a bug, maybe it's a problem to implement a NE with the Moi-API. It isn't made for. Nevertheless I will have a look to the code the next days.

Have a nice day
Karsten

p.s.: Try changing along and across in the mPath-Array node - it gives you an impression how bundlePts work:-)
From: Karsten (KMRQUS)
19 Jan 2019   [#1336] In reply to [#1334]
By the way - It was the most difficult node in the extensions I made from scratch. You have to differentiate between open and closed curves, evaluate a tangent to the start points (no API function in V3), adjust a orientation of a frame with it. All points/frames on the curve are depending on the mode - orientated to the curve (used arraycruve). It takes not only a single value for the div - you can also put a numarray with monotonic increasing values to the input - so you get different distances for the points on the curve. Here I had to use the strategy to place them from both sides for performance issues. PLEASE - don't find a bug:-|

p.s.: If you want to see the frames in an pointarray, you can use showFrame. Also useful to understand the working of the Euler-angles.

Attachments:
sf.nod


From: bemfarmer
19 Jan 2019   [#1337] In reply to [#1336]
Thank you Karsten,
You are very skilled and informed.

- Brian

I'll study more, as time allows. House remodeling is calling...
From: James (JFH)
28 Jan 2019   [#1338]
Hi All,

Here's a rather trivial example of Max's improved Remapper node being used to define tooth profiles of a cog/sprocket.

Requires Max's latest interface.js found here:
http://moi.maxsm.net/files/nodeeditor/interface.js

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

Image Attachments:
cogParametric.gif 


From: bemfarmer
28 Jan 2019   [#1339] In reply to [#1338]
Hi James,
I'm getting an orange flagged output node.
None of the nodes are red

Test outputs are working elsewhere.

?

- Brian
From: James (JFH)
28 Jan 2019   [#1340] In reply to [#1339]
Hi Brian

Should have said "

Requires Max's latest interface.js found here:
http://moi.maxsm.net/files/nodeeditor/interface.js

". Does now!

Let me know if that does not fix issue.
James
https://www.instagram.com/nodeology/
From: bemfarmer
28 Jan 2019   [#1341] In reply to [#1339]
Note:
Loading a node assemblage with an obsolete node, and then saving the node assemblage from the nodeeditor canvas, may result in a node assemblage which will not work, even after the updated interface.js node has been added to the nodeeditor nodes directory.
The defective node (and assemblage) may look exactly like the good node. Re-upload the node assemblage from its original source.

Thank you James.
I had not updated the interface.js on Home computer.
I'd saved your cog node, from the nodeeditor canvas, making my copy defective.
Updated interface.js.
Defective node still would not work.
Downloaded your cog node AGAIN, from your forum post.
Now the cog node works fine.

- Brian
From: Karsten (KMRQUS)
30 Jan 2019   [#1342] In reply to [#1341]
Hello Brian,

maybe caused by JSON. If the Infos for the node are not completly availiable while saving?

Have a nice day
Karsten
From: bemfarmer
8 Feb 2019   [#1343]
Circles projected to sphere by stereographic projection are not closed. (Nor for conformal map to torus.)
Maybe an isclosed check, and if so a close command...

- Brian
From: bemfarmer
9 Feb 2019   [#1344]
The node "separateObj" seems to have a bug.
The node is blocking passage of circles and ellipses, which are closed curves, in a demo of ConformalMapT

It was fairly easy to get the conformal mapping of circles and ellipses to be closed.

- Brian
From: bemfarmer
9 Feb 2019   [#1345] In reply to [#1344]
The Separate factory only produces output for curves which can be separated.

The separate node needs to be altered, to pass on closed curves which are made up of only one segment, (including elementary circles and ellipses, etc.)
Closed polygons should be separated for the conformal mapping. (and stereo project?)
So test for isClosed, and also check for crv.getSubObjects().length ==1.

Is there a test to tell when a curve can be separated?
EDIT: Michaels previous answer from: https://moi3d.com/forum/index.php?webtag=MOI&msg=8818.8
"The segments of a curve are returned by the getSubObjects() method which is available on every object type in MoI. A curve always has at least one segment. To see if it's made up of multiple segments you could do crv.getSubObjects().length > 1."

- Brian

Message 7777.1346 was deleted


From: bemfarmer
13 Feb 2019   [#1347] In reply to [#1345]
After study of Karsten and James code from last December, here is my modification of the
"Separate" node. The code belongs in the objects2.js file of nodeeditor.

code:
    function separateObj()
    {
        this.addInput("In", "objectlist");
        this.addOutput("Out", "objectlist");
    }

    separateObj.title = "separateObj";
    separateObj.desc = "separateObj";

    separateObj.prototype.onExecute = function ()
    {
		var inObj = this.getInputData(0, moi.geometryDatabase.createObjectList());
        var out = moi.geometryDatabase.createObjectList();

        if (inObj.length > 0)
		{
            out = factory('separate', inObj); // Segments of Multi Subsegment curves.
        	for ( var i = 0; i < inObj.length; i++)
			{
				if ( inObj.item(i).getSubObjects().length === 1)
					out.addObject(inObj.item(i)); // Single SubSegment curves.
			}
	
		}
        this.setOutputData(0, out);
    }

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






I think that the problem is that the Separate factory only works on geometry objects in the geometry database.
Separate will work on the InObj array of objects, as ONE entity, but not on each curve item in the array, (without more programming).
The above code outputs, to out_slot, the results of the Separate factory, consisting of the segments of curves with more than one sub_segment.
Each inObj object in the input slot is then tested to see if it has only one sub_segment, and if so, said curve is added to the output out_slot.
(This likely does change the order of the curves.)

The conformal mapping is now working well with various input curves. I'm back to Normals...
- Brian

Show messages:  1-7  …  1268-1287  1288-1307  1308-1327  1328-1347  1348-1367  1368-1387  1388-1407  …  1848-1859