MoI discussion forum
MoI discussion forum

Full Version: V4 Wish List

Show messages:  1-9  …  470-489  490-509  510-529  530-549  550-569  570-575

From: Michael Gibson
6 Jul 2020   [#530] In reply to [#529]
Hi James, it is a general strategy throughout MoI to try and avoid things being dependent on the natural curve direction. With there also already being an existing way to flip the blend result, having a checkbox option like that doesn't really seem like it would be useful for the regular MoI UI.

For programmatic access that's a different case.

At some point I want to make a different API that scripts could use for making geometry. The current "factory" based interface is set up primarily to be convenient for the regular UI, sometimes this is in conflict with what is convenient for programmatic access like in this case.

But it is possible though to generate a blend curve programmatically that suppresses the automatic detection and just uses the natural directions. This is done by having the "Orientation list" input for the blend factory filled in. If it is not filled in then it gets automatically created by matching the closest ends together.

A curve orientation list is a list made up of CurveOrientation objects in it, each of which has .flipped and .seam properties. You can create one by moi.geometryDatabase.calculateCurveOrientations( curves ), then go through and set the flipped properties to false.

Here's an example, paste this in to the xyz control when you have 2 curves selected, it should generate a blend curve between the same ends and does not switch depending on which ends are closest to each other:

code:
var curves = moi.geometryDatabase.getSelectedObjects();
var orientations = moi.geometryDatabase.calculateCurveOrientations( curves );
for ( var i = 0; i < orientations.length; ++i ) { orientations.item(i).flipped = false; }
var factory = moi.command.createFactory( 'blend' );
factory.setInput( 0, curves );
factory.setInput( 1, orientations );
factory.commit();


Hope that is what you were looking for!

- Michael
From: James (JFH)
6 Jul 2020   [#531] In reply to [#530]
Michael

"Hope that is what you were looking for!"

Thank you for getting back to me with this, & yes the script is exactly the sort of thing I was looking for, however I can't get it to work.

I tried copy & pasting into xyz control field after first marquee selection of 2 curves but it gives no result. I must be doing something wrong but am not sure what it could be.

After clicking "return" there is no result, & if "return" is clicked a second time, the blend curve is drawn but reverts to default closest points.

Is there a trick that I'm missing?

James
https://www.instagram.com/nodeology/
From: Michael Gibson
6 Jul 2020   [#532] In reply to [#531]
Hi James, oops try with a script: in the front like this:

script:var curves = moi.geometryDatabase.getSelectedObjects();
var orientations = moi.geometryDatabase.calculateCurveOrientations( curves );
for ( var i = 0; i < orientations.length; ++i ) { orientations.item(i).flipped = false; }
var factory = moi.command.createFactory( 'blend' );
factory.setInput( 0, curves );
factory.setInput( 1, orientations );
factory.commit();


- Michael
From: James (JFH)
6 Jul 2020   [#533] In reply to [#532]
Thanks Michael,

That works!
I appreciate you doing this for me.

James
https://www.instagram.com/nodeology/
From: Mr. Yuri (MR_JURAJ)
16 Jul 2020   [#534]
Hi Michael.
maybe nice feature and simple to implement would be question during trimming operation if 'you want to deselect all?'.
It happened to me many times that I wanted to trim complex shape and had to select like 50 small lines but one miss-click would deselect everything making user start from the beginning.

Thanks.
Juraj
From: fcwilt
16 Jul 2020   [#535]
Hi,

I was thinking that it would be handy to have a system of naming objects which allowed "grouping" together related objects.

On my current printer project I have a number of assemblies that consist of multiple parts. When assigning a name to a part I always include the name of the assembly along with the name of the part.

For example:

Assembly 1 Part 1
Assembly 1 Part 2
Assembly 1 Part 3

Assembly 2 Part 1
Assembly 2 Part 2
Assembly 2 Part 3

While this keeps them together in the browser it doesn't establish any sort of real relationship.

What if we could use names with a specified character in them like "Assembly 1.Part 1" where the specified character (a period in this example) would actually be used establish a relationship allowing them to be displayed them in the browser in a hierarchical manner.

Assembly 1
Part 1
Part 2
Part 3

or perhaps

Assembly 1
Assembly 1 Part 1
Assembly 2 Part 1
Assembly 3 Part 1

Selecting the assembly name could then select all the parts in the assembly. Of course selecting of individual parts would work as it does now.

The character to use could be specified in the settings - my choice would be a period. If no character was selected then the new naming feature could be disabled if desired.

By using a specific character the current approach would work as it does now and no new fields would be needed.

Such a system would be very useful in my work.

Thanks.

Frederick
From: wayne hill (WAYNEHILL5202)
16 Jul 2020   [#536] In reply to [#534]
Hi Juraj,

Press the 'Undo' button and all will reappear as selected.

Wayne
From: Michael Gibson
16 Jul 2020   [#537] In reply to [#534]
Hi Juraj,

re:
> It happened to me many times that I wanted to trim complex shape and had to select like 50 small lines
> but one miss-click would deselect everything making user start from the beginning.

You don't have to start from the beginning if you make a selection mistake like that, you can just use undo which will restore the selection to whatever it was before the last selection action.

This "selection undo" is transient, it is only stored as the most recent action in the undo stack.

Also if you want to do deselect all, there is already a button for that on the side pane under Select > "Deselect all". If you would like to make a shortcut key for it, put in this for the command part of the shortcut key:

script: moi.geometryDatabase.deselectAll();

- Michael
From: Mr. Yuri (MR_JURAJ)
17 Jul 2020   [#538] In reply to [#537]
I feel so embarrassed I didn't try undo for selection.
Great to know.
Thanks Michael
From: stefano (LIGHTWAVE)
17 Sep 2020   [#539] In reply to [#538]
How about a "tag" naming system for objects.
Maybe a lot quicker to implement than thinking out
all the permeations of grouping, sub groups etc.

Hierarchy free if kept flat. Flexible. Could maybe rely on good ol
Windows or Mac file system; meta tags.
From: Michael Gibson
17 Sep 2020   [#540] In reply to [#539]
Hi Stefano, re: tag naming system - the current system is pretty similar to that already, you can assign a name to an object or multiple objects, and then that name will show up in the "Objects" section of the scene browse allowing you to hide/show/lock/unlock/select that object set by the name.

The main request to add to this is hierarchy so I think it will need that whole group and sub-group type of thing.

re:
> Could maybe rely on good ol Windows or Mac file system

I don't think that's feasible since it is many entities within a file that have these properties, not just a whole file. Unless you wanted to require each separate object to reside in its own file but you would end up with a massive quantity of files that way.

- Michael
From: stefano (LIGHTWAVE)
17 Sep 2020   [#541] In reply to [#540]
Hi Michael, Understand what you are saying but I see an object name as one data type or field and a tag is another.
I see a tag as a flagging tool. Doesnt need hierarchy but can be set up that way if required with multiple "tags"

Example: users could select 100objects, add tag "assembly item 001" or "assembly item"+ "job001"later these tags could be used to find and put items into a drawing. The idea likely came when I was exploring the customui and I thought those library objects or menu could soon get too busy, personally I dont like using "explorer". Likewise I might consider creating comprehensive parts that should be able to be pulled into a moi design fast and easy - these items are likely 'reusable' or standard.
From: Michael Gibson
17 Sep 2020   [#542] In reply to [#541]
Hi Stefano, I see - yes something like that could be useful for an object library. But that's kind of a different thing than object management for objects currently inside the model though.

- Michael
From: stefano (LIGHTWAVE)
17 Sep 2020   [#543] In reply to [#542]
I agree! One is organising what's already there.
The other is maybe organising those assetts/objects for future use;
on other drawings.
From: propmaster (PWWHDR70)
20 Sep 2020   [#544]
Hi, Michael!

A small thing, really, and maybe someone else already requested.

I have been known to accidentally hit Remove instead of Hide when managing background images. Would it be possible to move these buttons away from each other? And/or add a warning popup any time Remove is selected?
From: Michael Gibson
20 Sep 2020   [#545] In reply to [#544]
Hi Patrick, if you accidentally hit Remove you can use Undo while you are still in the View > Image command to restore it.

- Michael
From: propmaster (PWWHDR70)
21 Sep 2020   [#546] In reply to [#545]
:o

Thanks, Michael. :)
From: jo (JROY)
3 Oct 2020   [#547]
Hi Michael, I really like using your software.

Now, could it be possible to had another file format to your great mix? What I have in mind is the X3D file format which seems to be popular in 3D printing exchanges in the medical field and also for prosthetics. It is totally open source. It would permit somehow the exchange/integration of models created in openJSCAD (in .X3D) to MOI.

You can explore it's implementation here: https://www.web3d.org/x3d/what-x3d

It is just a wish, it would be cool...

Keep up the good work, can't wait for the finished V4 version!!!

Have a nice day,
From: Michael Gibson
3 Oct 2020   [#548] In reply to [#547]
Hi jo, I think that OpenJSCAD only generates triangle mesh output. That's where the model data is stored as a large number of little triangle facets. That type of data is not suitable for importing into MoI, MoI is designed to work with smooth NURBS surface model data for modeling.

So I don't think that is feasible to make a data flow from OpenJSCAD into MoI, they are designed to work with different types of 3D model geometry.

- Michael
From: stefano (LIGHTWAVE)
4 Oct 2020   [#549] In reply to [#548]
+1 Thumbnail previews
http://moi3d.com/forum/lmessages.php?webtag=MOI&msg=9391.1

I like idea of thumbnails where user can optionally set viewport to create the thumbnail.
Not what I'd class as essential but will help usability a lot. Likely even more valid when we get to grouping
and pullling in reference, tagged or hierarchical organised objects in future versions.

Show messages:  1-9  …  470-489  490-509  510-529  530-549  550-569  570-575