Parametric design in MoI?
 1-20  …  481-500  501-520  521-540  541-560  561-580  …  901-912

Previous
Next
 From:  mkdm
7713.521 In reply to 7713.520 
Hi James,

and thanks for your reply and suggestions. Much appreciated!

Right now, regarding the rewriting of the Array utility nodes that I was writing some time ago,
I decided to wait the next official stable release of Project Elephant.

Best,

- Marco (mkdm)
  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)
7713.522 In reply to 7713.520 
Hello James,

to run PatternSelArray in V0.85 please replace the following:

source_elem.pt.x,
source_elem.pt.y,
source_elem.pt.z,
source_elem.AngleX,
source_elem.AngleY,
source_elem.AngleZ,
source_elem.Size

With:
source_elem.data[0],
source_elem.data[1],
source_elem.data[2],
source_elem.data[3],
source_elem.data[4],
source_elem.data[5],
source_elem.data[6]

at two places in the file! It seems that Max has changed the internal structure since the Node was created!

Have a nice day
Karsten
  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)
7713.523 In reply to 7713.522 
Hi Karsten,

Thanks for that, it works!
Now if only we could input array to dynamically generate the pattern.

I recall you stating that you were not a "Pattern Man" [#319]
http://moi3d.com/forum/lmessages.php?webtag=MOI&msg=7713.319

IMHO the manipulation of num & pt arrays (interlacing, flipping shifting etc)
lies at the very heart of parametric design. i.e. pattern.

Anyway, thanks again
- James

EDITED: 17 Oct 2016 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:  mkdm
7713.524 In reply to 7713.522 
Hi Karsten,

Thanks a lot for updating PatternSelArray for V0.85. I hope it works.

Have a nice day,

- Marco (mkdm)
  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:  mkdm
7713.525 In reply to 7713.523 
Hi James and good morning to everyone,

> IMHO the manipulation of num & pt arrays (interlacing, flipping shifting etc) lies at the very heart of parametric design. i.e. pattern.

I totally agree with you.

In fact, as I wrote in a post some times ago (http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.353),
I was writing a bunch of utility nodes for PointArray datatype :

- "ArrayShuffler" : returns a PointArray, by shuffling the elements inside the input PointArray (RMB -> Update : generate a new random shuffle)
For example, it may be useful to create objects like ball of wool.

- "ArrayFlipper" : returns a PointArray, created by flipping the elements of the input PointArray

And "ArrayBoolean", a very useful node that operates boolean operations on Pointarray. Very powerful.

Unfortunately, because of a distraction, I totally lost all the code of "ArrayBoolean" and other two very interesting nodes I was writing !!!

Only ArrayShuffler and ArrayFlipper were saved.

When Max will release the first 1.0 official version of Project Elephant I will try to write again those nodes.

Best,

- Marco (mkdm)
  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)
7713.526 In reply to 7713.525 
Hi Marco,

"ArrayBoolean" sounds interesting. What a shame it has been lost.
Hopefully it or something similar will be resurrected in the future.
I'm always excited by your node contributions.

-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:  mkdm
7713.527 In reply to 7713.526 
Hi everyone,

Thanks a lot James for your appreciation.

Damn "recycle bin" and "overwrite" !!
I tried also to use some recovery tools but without success...it's been too long....

Anyway, here's just some info in the case of someone wants to write something similar.

I was writing these nodes :

code:
"ArrayDistinct" node :

Input : A PointArray[], a DELTA (a javascript float number) and a PRECISION (a javascript int number) 

Output : a new PointArray[] containing all the "DISTINCT" PointArray elements found in the source PointArray[].

All the PointArray elements of the source, far from each other, NOT MORE THAN DELTA (considering the required PRECISION)
are WELDED into a SINGLE PointArray element, that is, the element currently investigated (simple "For loop" with some flags to mark already processed elements).



code:
"ArrayBoolean" node that did exactly what its name means : Basic boolean operations between two PointArray[] objects.

More in depth, it provided these operations :

1) Array Union : 
Input : Two PointArray[] (named "A" and "B") also with different amount of elements, a DELTA (a javascript float number) and a PRECISION (a javascript int number) 

Output : a new PointArray[] containing all the "DISTINCT" PointArray elements of both arrays.

All the PointArray elements of "A" and "B" far from each other, NOT MORE THAN DELTA (considering the required PRECISION)
are WELDED into a SINGLE PointArray element.

2) Array Difference : 
Input : Two PointArray[] (named "A" and "B") also with different amount of elements, a DELTA (a javascript float number) and a PRECISION (a javascript int number) 

Output : a new PointArray[] containing all the PointArray elements of "A" that are NOT PRESENT in "B".

All the PointArray elements of "A" that are far from each "B" elements, for AT LEAST DELTA (considering the required PRECISION)
are returned into the output PointArray[].


I don't know if I made myself clear..

It's really too bad that "ArrayDistinct" and "ArrayBoolean" node that I was writing were lost because they were at and advanced alpha stage,
and from many tests I did they seemed to be very powerful for interesting elaborations in order to create some "exotic" nurbs objects.

Anyway, I must also say that they have been written with a very coarse businnes logic, and crunching more than some hundreds of PointArray elements,
produced very poor performances.


Have a nice day,

- Marco (mkdm)
  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)
7713.528 
Hello Marco, James, wastzzz ...

I thought about randomly place geometry again and was reminded ArrayShuffle made by Marco. So I have updated the file for v0.85. I have made some test as an alternative to the node I have written (randomObj). Two different ways with different advantages:-)

Have a nice day
Karsten

@James: I'm indeed not interested in patterns or more precisely ornaments (my focus is smooth geometry), but it's not possible for me to ignore them and I think not useful also:-)

EDITED: 6 Mar 2019 by KMRQUS

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)
7713.529 In reply to 7713.528 
Hi Karsten

Ornament is a crime :-)

I think there may have been some semantic confusion.
I meant pattern as order not ornament; designation not decoration.

Thanks for updating these nodes, I greatly appreciate it.

-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:  speedy (AL2000)
7713.530 
Hello Friends
a new little exercise to test some Karsten's nodes
best
al
Attachments:

Image Attachments:
Size: 289.1 KB, Downloaded: 66 times, Dimensions: 1680x1050px
  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)
7713.531 In reply to 7713.529 
Hello James,

I agree with you about ornaments and the different interpretation of "pattern". But I'm not an artist and haven't the creativity like some others here, so there are many different points of view about the aesthetics of ornaments, that I can accept.

Have a nice day
Karsten

p.s.: Please, don't let us start a dicussion about that here - I'm afraid about that!
  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:  mkdm
7713.532 In reply to 7713.528 
Hi Kartsen and good morning.

Thank you for updating my old arraysExt.js and litegraphExt.js.

N.B. I will begin by saying that I'running latest Max's verison "nodeeditor.v.0.85_mod.zip" at http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.485

Well...I'm sorry but it seems that your updates doesn't works for me.
I think that I'm doing something wrong or I'm getting a little bit confused among various versions (mine and yours).

When I run your last experiment "ashuffle.nod" (http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.528)
I get this error : http://take.ms/R2l59

Also if I run this simple .nod file (http://take.ms/mGHP8) I get this error : http://take.ms/LnRgz.

I'm running your arraysExt.js that you uploaded (http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.528)
and this is my litegraphExt.js that has your modifications :

code:
// litegraphExt.js v.0.1 - Marco Di Mario (mkdm), 2016
// based on :
// 		Max Smirnov's Node Editor, v.0.65 - 2016
// 		litegraph.js library (c) Javi Agenjo http://tamats.com

pointArray.prototype.getElement = function(n)
{
	var idx = (n || 0);
	var shift = idx * this.recordLength;
	
	var element = {"pt":this.getPoint(idx),
		"AngleX":this.data[shift+3],
		"AngleY":this.data[shift+4],
		"AngleZ":this.data[shift+5],
		"Size":this.data[shift+6]};
		
	return element;
}

pointArray.prototype.copyElementDataTo = function(source_elem, n)
{
	var idx = (n || 0);
	var shift = idx * this.recordLength;
	
	if (source_elem) {	
		this.data[shift+0] = source_elem.data[0];
		this.data[shift+1] = source_elem.data[1];
		this.data[shift+2] = source_elem.data[2];
		this.data[shift+3] = source_elem.data[3];
		this.data[shift+4] = source_elem.data[4];
		this.data[shift+5] = source_elem.data[5];
		this.data[shift+6] = source_elem.data[6];
	}
}


What I'm doing wrong ?

P.S : Would you like to rewrite my lost :( experimental nodes ArrayDistinct and ArrayBoolean that I mentioned in my previous post ?
(http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.527)

Have a nice day ?

- Marco (mkdm)
  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)
7713.533 In reply to 7713.532 
Hello Marco,

sorry that I forgot to say that you don't need the litegraphExt.js and so I didn't posted an updated here. Max has integrated the getElement in the last version. The copyElement -Stuff I have integrated inline. So try to remove litegraphExt.js from index.html.

Have a nice day
Karsten
  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:  mkdm
7713.534 In reply to 7713.533 
Ahhhh....Ok Kartsen,

I did what you said and now all works fine. Thanks a lot!

What do you think about my proposal to rewrite my lost :( experimental nodes ArrayDistinct and ArrayBoolean that I mentioned in my previous post ?
(http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.527)

Unfortunately, for the time being I can't deal that effort.
Maybe when Max's will release 1.0 version of Elephant...

Have a nice day.

- Marco (mkdm)
  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)
7713.535 
Hello Max and Friends
Someone is willing to post some examples
illustrating the use of the node length .........
for me it's difficult to figure out how to function
thank you
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:  Karsten (KMRQUS)
7713.536 In reply to 7713.535 
Hello Al,

the length node evaluates the number of elements in a given array. With the RMB you can change the type of the input (numarray - default, pointarray or geometrical
objects). The output is type of numarray (number) with only one element.

Now it's up to you - but I saw that you have already used it!

Have a nice day
and thanks for sharing your examples
Karsten
  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)
7713.537 
Hi Karsten
thanks for your reply, I have many other questions to ask ,
but let's degrees.....
1-Blend
attached a file that contains two surfaces, you get with your Node Swep,
how do I use the Blend Node?
Swept gives me a single input, the surface, how do I
to extract the edge you want to use for the blend?
2-Blend
I also used two simple curves, I thought
that blend so it worked, I was wrong ....
Can you please show me the use of this Feature ...
Needless to say ... thank you very much

have a nice day,friend
best
al

Image Attachments:
Size: 299.4 KB, Downloaded: 55 times, Dimensions: 1920x1080px
  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)
7713.538 In reply to 7713.537 
Hello Al,
I will try to explain the attached file and the workflow. First you have to create your surfaces. I have used here sweep with a circle placed to the startframe (getCrvSFrame). Important: Switch of CapEnds in the sweeps!. The created sweeps are connected to the nodes BRepNameSubObj. This node takes the sweep and gives edges and faces a name. If the elephant runs, it creates also a tempobject with the same names. Now you can preselect both edges. Do not clone the BRepNameSubObj node, because the clone would have the same basename for the subelements. When you now create the blend the names of the edges will be evaluated and stored in the blend node. Connect the wires and switch of the tempobjects in the BRepNameSubObj nodes.
It's a little bit complicated, but at the moment I can't find a better solution for the function.

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

Previous
Next
 From:  Karsten (KMRQUS)
7713.539 In reply to 7713.537 
And your file with a blend:-)

  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)
7713.540 In reply to 7713.538 
Hi Karsten,

Thank you for your clarification of the application of BRepNameSubObj node together with Blend node. I know I asked about this earlier: http://moi3d.com/forum/index.php?webtag=MOI&msg=7713.499
but this a prime example of where inputs into a alt version of const node (called say Num node) would be very useful. In this way a short series could be constructed with variable inputs as shown.

-James

EDITED: 6 May 2019 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
 

Reply to All Reply to All

 

 
Show messages:  1-20  …  461-480  481-500  501-520  521-540  541-560  561-580  581-600  …  901-912