MoI discussion forum
MoI discussion forum

Full Version: Parametric design in MoI?

Show messages:  1-19  …  200-219  220-239  240-259  260-279  280-299  300-319  320-339  …  900-912

From: bemfarmer
8 May 2016   [#260] In reply to [#258]
Hi Pilou

Thank you for all of your hard work.
It would be impossible for myself to do it.

3 very minor observations:
OutPuts should be Outputs, (in my opinion), and would be a duplicate entry.
Center has a duplicate entry.
Loft has a duplicate entry.

I've entered the English words into Excel, and sorted.

- Brian
From: Karsten (KMRQUS)
9 May 2016   [#261] In reply to [#255]
Hello Max,

I have tested the pushFrame function. Unfortunately the function gives confusing results and crashes in particular situations. After a look in the code I saw one thing that causes definitely a problem:
>>>> ry = -Math.asin(frame.zaxis.x);
The results range is limited:-( As mentioned by you, it's a hard peace of cake;-)

Have a nice day
and let fly @'y'@
Karsten
From: coi (MARCO)
9 May 2016   [#262] In reply to [#260]
I've found Microsofts Terminology Search to be rather helpful for UI translations.

https://www.microsoft.com/Language/en-US/Search.aspx

...shows you somewhat standardized terms used in various (localized) Microsoft products.
From: Max Smirnov (SMIRNOV)
9 May 2016   [#263]
bemfarmer
Thank you! I'll fix it. :)

Karsten
>>Unfortunately the function gives confusing results and crashes in particular situations
Which parameters could cause a crash?

>>After a look in the code I saw one thing that causes definitely a problem:
>>ry = -Math.asin(frame.zaxis.x);
What's wrong with this line? The frame.zaxis.x value is always in [-1...1]
From: Frenchy Pilou (PILOU)
9 May 2016   [#264] In reply to [#260]
@Bemfarmer : Thx for the remarks and files' help!
I must update following each Max's versions (and some variable words) so possible to have some little differences.
I must also adapt with the actual French version of the Moi prog itself and Max Elephant.
Scale... was yet made on my site! http://moiscript.weebly.com/elephant-systegraveme-nodal.html ;)

About the dupplication words you right but as it's any consequence on the result I will erase them at the end.
It's because the list of Max is very short and I take on the fly words using the nodes on the screen! ;)
And sure for excellence i should use some sort's actions like your Excel method ...

About some words like "Widget" there is no satisfactory French translation! :)
A suivre...
From: Karsten (KMRQUS)
9 May 2016   [#265] In reply to [#263]
Hello Max,
>>>> The frame.zaxis.x value is always in [-1...1]
Yes, thats correct, but if frame.zaxis turns over ry>90deg (z-axis downwards) you will get the same result as between 0-90deg. Another problem:
>>> rx = Math.atan2(frame.zaxis.y, frame.zaxis.z); If frame.z-axis lying on or parallel x-axis -> frame.zaxis.y=0 && frame.zaxis.z=0 -> atan2 will get a bitch ... (NaN) If you catch the situation - you have to check also the orientation:-(

I hate Euler angles now, but I'm to stupid to understand Quaternions in that way, that I can solve the problem with it:-(

Have a nice day
Karsten
From: Karsten (KMRQUS)
9 May 2016   [#266] In reply to [#263]
p.s: The second described situation is our good old gimbal lock ...
From: Max Smirnov (SMIRNOV)
9 May 2016   [#267]
Pilou, Brian
I think it's not a good idea to put all words in one sorted list.
It would be better if we make five separate list (as in the russian translation):
1. Main window interface (Save, Load etc )
2. Context menu (Add Node, Colors, Clone, Red, Green ... )
3. Node class names (Arrays, Curves, Solids ..)
4. Node names ( Const, Loft, Extrude, Revolve ... )
5. Inputs/outputs ( Min, Max, Count ... )

Karsten
>>If frame.z-axis lying on or parallel x-axis -> frame.zaxis.y=0 && frame.zaxis.z=0 -> atan2 will get a bitch ... (NaN)
Yes. I forgot about this. The new version:
code:
var rx=ry=rz=0;
if ( frame.zaxis.y === 0 && frame.zaxis.z === 0) { ry = ( frame.xaxis.z > 0 )?90:-90; }
else
{
   rx = Math.atan2(frame.zaxis.y, frame.zaxis.z);
   ry = -Math.asin(frame.zaxis.x);
   rz = Math.atan2(frame.xaxis.z*Math.sin(rx)-frame.xaxis.y*Math.cos(rx), frame.xaxis.x*Math.cos(ry)+(frame.xaxis.y*Math.sin(rx)+frame.xaxis.z*Math.cos(rx))*Math.sin(ry));	
}

>>if frame.zaxis turns over ry>90deg (z-axis downwards) you will get the same result as between 0-90deg
It's not a problem. For any frame we can get at least 2 sets of angles. It doesn't matter which one we choose.
From: Karsten (KMRQUS)
9 May 2016   [#268] In reply to [#267]
Hello Max,

thanks for the fast reply. I can't check the code at the moment, maybe in the evening.
>>>>> It's not a problem. For any frame we can get at least 2 sets of angles. It doesn't matter which one we choose.
Ok, I agree with you. My calculation strategy differs from yours a little bit so I was blind to see:-)

Karsten
From: Frenchy Pilou (PILOU)
9 May 2016   [#269] In reply to [#267]
@Max
<< I think it's not a good idea to put all words in one sorted list.
You right!
Next version will be like than Russian's distribution!
(an external sort list will be used only for search dupplications :)
From: mkdm
9 May 2016   [#270]
Hi Max and Karsten,

First of all, i wish to thank you for your efforts and for your constant developing!

Inside the NodeEditor, it would be possible to render the generated objects, using a particular style, just in order to better highlight them ?

The attached pictures show the actual Grasshopper's way...

And it would be possible to automatically select the generated objects, and eventually, assigning them to a particular style ?

Thanks for everything and have a nice day!

Marco.

Image Attachments:
01_Capture.PNG  02_Capture.PNG 


From: Karsten (KMRQUS)
9 May 2016   [#271] In reply to [#267]
Hello Max,
I figured out why my code is so complicated. I ran allways in situations where I got confusing results or crashes in following nodes. I've tried to solve the problem at the wrong place (the code is now independent of the frame axes length). In a first test I saw that Math.asin in your code gives a NaN in some configurations??? Normally it is impossible, especially when frame.zaxis.x=1. Maybe a bug or a problem with floatingpoint arithmetics??? I don't know???

Karsten
From: bemfarmer
9 May 2016   [#272] In reply to [#267]
The <Language>Strings.txt in MoI are grouped.
They also have comments and subtitles preceded by semicolons.

- Brian
From: Karsten (KMRQUS)
9 May 2016   [#273] In reply to [#267]
Hello Max,

Damned! A simple "Math.round(frame.zaxis.x *10000)/10000" will fix it.

Have a nice day
Karsten
From: mkdm
9 May 2016   [#274] In reply to [#267]
Hi Max and Karsten,

First of all, i wish to thank you for your efforts and for your constant developing!

Inside the NodeEditor, it would be possible to render the generated objects, using a particular style, just in order to better highlight them ?

The attached pictures show the actual Grasshopper's way...

And it would be possible to automatically select the generated objects, and eventually, assigning them to a particular style ?

Thanks for everything and have a nice day!

Marco.

Image Attachments:
01_Capture.PNG  02_Capture.PNG 


From: Frenchy Pilou (PILOU)
9 May 2016   [#275] In reply to [#274]
You can yet put a color to a node
Right Click on a node!


From: Karsten (KMRQUS)
11 May 2016   [#276] In reply to [#267]
Hello Max,

let me make a last remark about the pushFrame before you release it. Your code works fine and I can't figure out any problems:-)
(little changes: clamp frame.zaxis.x to [-1;1] | ?90:-90; -> Math.PI/4;-Math.PI/4)
The function sets in gimbal lock ry to ?90:-90. Am I right, that we need in that situation at least a rx- or rz-calculation?
Something like (not tested):
rz = Math.atan2(frame.yaxis.z,frame.yaxis.y); or a direction dependent rz=Math.asin(frame.xaxis.y)??? with rx=0
As mentioned, in tests I didn't run in that situation:-)

Have a nice day
Karsten
From: Frenchy Pilou (PILOU)
11 May 2016   [#277] In reply to [#276]
Have you a graphic example of the use of the function "PushFrame" ?
From: Karsten (KMRQUS)
11 May 2016   [#278] In reply to [#277]
Hello Pilou,

it's an internal function of the nodeeditor to push a frame in a pointarray. Caused by the switch to this united datatype I need it to e.g. evaluate the startpoint orientation of a curve and provide an orientated (point inculding frame )pointarray-type as an output. So you can make a curve, get the startframe and align a circle to it for a e.g. sweep.
http://moi3d.com/forum/index.php?webtag=MOI&msg=7777.53
The only diffrence to this example is that I separated the function form the curve (old GeneralCurve) in a node. Advantage: you can use the node for various curves.

You will find a draft in getCurveStartFrame in Infonode.js posted here. Problem: the name is to long -> to much space wastage on @'y'@ surface - any ideas?

Have a nice day
Karsten
From: Karsten (KMRQUS)
11 May 2016   [#279] In reply to [#278]
p.s.: getPushFrame and showFrame are only nodes for test purposes:-)

Show messages:  1-19  …  200-219  220-239  240-259  260-279  280-299  300-319  320-339  …  900-912