MoI discussion forum
MoI discussion forum

Full Version: EggOvoid script

Show messages:  1-16  17-25

From: Barry-H
12 Dec 2021   [#17] In reply to [#15]
Hi Burr,
the link to the script discussion http://moi3d.com/forum/index.php?webtag=MOI&msg=4489.1
Attached the script.
Cheers
Barry

Attachments:
EGG_Script2011.7z


From: bemfarmer
12 Dec 2021   [#18] In reply to [#17]
Hi Barry,

It should be possible to make the full profile, with the vertical tangents. I'll have a look later

- Brian
From: bemfarmer
12 Dec 2021   [#19] In reply to [#14]
Barry,
Here is a revised version of the 10 year old EggHalf script, renamed EggHalf2021.
It is a full closed profile, with two vertical tangents.

- Brian

Attachments:
EggHalf2021.zip


From: Barry-H
12 Dec 2021   [#20] In reply to [#19]
Hi Brian,
many thanks perfect.
It's a funny coincidence that I have been using the old script in the last few days and then you have produced a new one with more versatility (spooky).
There's a slight difference with the old script shape that I can't just replicate with the new script thus the request for the update.
Anyway again many thanks.
Barry
From: bemfarmer
12 Dec 2021   [#21] In reply to [#16]
Thank you Michael for your help.
The (auto) populate input fields from dropdown selection is still vary murky.
I looked up a bunch of posts about "populate input fields based upon dropdown html", but they are very difficult to follow.

<select id = "Build" onchange = "moi.ui.populateinputs('????');">
// where populateinputs is a javascript function in <script> section </script.>

The 4+ parameter values will be in a 2d array or list, indexed by the dropdown selection. Each row can be for one species of animal.
Look up the 4+ values for the selected animal. They vary for different animals.
aSlider.value = 1.2;
bSlider.value = 0.42;
etc.
Then set the different Sliders, which have binding to input fields,
(or to inputs aValue, bValue, etc.)

moi.ui.fireUIEvent("aSlider");
moi.ui.fireUIEvent("bSlider"); etc.
Or moi.ui.fireUIEvent('aValue")...

- Brian
(I've started a new script with some biological curves and structures...
It has 12 input fields plus some 3 more boxes, plus 10 buttons to become a dropdown select,
which will take up a lot of screen space...)
From: Michael Gibson
12 Dec 2021   [#22] In reply to [#21]
Hi Brian, check out this modified version of your EggOvoid2 that has the type of dropdown set up like I think you're looking for.

In the .htm file I added a <select> element like this:

code:
			<table>
				<tr>
					<td>Preset:</td>
					<td>
						<select id="Preset">
							<option value="Chicken">Chicken</option>
							<option value="Roc">Roc</option>
							<option value="Alligator">Alligator</option>
						</select>
					</td>
				</tr>
			</table>	


Then the easiest way to make it do something will be to do it in the event loop in the .js file. If it were only going to be modifying UI values and not generating geometry then it could go in an onchange="" handler on the <select> tag. But you probably want it to call Update() in your .js file when it is changed and that will be easier to call from your .js file.

So inside _EggOvoid2.js I added a function UpdatePreset() that gets the current value of the dropdown and sets the values of the other controls.

Then in the main DoEggOvoid() function, it calls UpdatePreset() on startup so the controls will be initialized to the value of the Preset dropdown when the command first starts up and then had it look for the 'Preset' UI event that will be generated when the dropdown is changed here:
code:
		if ( dlg.event == 'LValue' || dlg.event == 'BValue' <....> || dlg.event == 'Preset')


And t hen just inside that:
code:
			if ( dlg.event == 'Preset' )
			{
				UpdatePreset();
			}


So when the dropdown with id="Preset" is changed, it will generate UI event and the script event loop will see it and call UpdatePreset() which sets the values of the other fields and then do an Update().

Let me know if this wasn't what you meant.

- Michael

Attachments:
EggOvoidPresets.zip


From: bemfarmer
12 Dec 2021   [#23] In reply to [#22]
Thank you Michael,

Your Presets techniques are exactly what I need.

- Brian
From: bemfarmer
26 Mar   [#24]
As requested by Barry-H:

A simple node assemblage, to create an egg outline.
This is just a collection of pre-existing nodes, with the trigonometry formulas which create the "egg shape", not a new .js node program.

U is run from minus PI to plus PI, for full egg.
Change minus PI to 0 for half egg, or trim full egg.
U num for the number of Points is set at 500.

- Brian

I noticed that the sliders do not have a reset to defaults.

Also, the curve always appears as style RED.

Attachments:
EggNode2024.zip


From: bemfarmer
27 Mar   [#25] In reply to [#24]
Node documentation:
The Style color of the output object can be manually changed in the output node.

- Brian

Show messages:  1-16  17-25