MoI discussion forum
MoI discussion forum

Full Version: V4 Wish List

Show messages:  1-13  …  454-473  474-493  494-513  514-533  534-553  554-573  574-575

From: Michael Gibson
1 Apr 2020   [#514] In reply to [#513]
Hi Stefan, cars are kind of a difficult model to work with anywhere. They are also difficult to do in NURBS because they have a lot of swoopy curved surfaces that usually need to be modeled in NURBS as extended patches that are then trimmed. That's in general a more finicky and advanced type of surface modeling.

The key area where NURBS modeling is way way easier than sub-d modeling is when your shapes can be well defined by 2D profile curves and boolean operations. That is not usually a fit with a car though.

It's a type of model that I think can be easier to do in sub-d because you don't have to worry so much about extended surface shapes.

- Michael
From: AlexPolo
1 Apr 2020   [#515]
An easy workaround for that I use in Rhino I import the OBJ model than I extract all curves and leave the surfaces behind if the OBJ is not to dense leaves me a cage that I can then trace over I have used this on projects many times. I import that cage into MOI and get clean precise rebuilds.
From: Michael Gibson
1 Apr 2020   [#516] In reply to [#515]
There is also a standalone helper program you can get at http://moi3d.com/resources#Obj23dmWireframe_converter that can open an .obj file and generate a wireframe .3dm file from it that can then be loaded into MoI. It makes line segments from all the polygon edges.

- Michael
From: bemfarmer
5 Apr 2020   [#517]
Hi Michael,

In this link, (hard to believe that it was two years ago), you mentioned "...new evaluateCurvature(t) function. But it might need an additional method for getting curve parameter values for points equally spaced along the curve, I will see about adding that in."
also "...I'm planning on adding another batch of curve functions for the next beta as well, that should do the trick..."

https://moi3d.com/forum/index.php?webtag=MOI&msg=8814.12

I reviewed the newer MoIV4 beta posts, and did not find new curve functions.
Will you be posting such new methods?

The reason that I ask is that the new script that I am working on uses curve r(t) values at "t" to form a sphere of radius r(t) at parameter point "t2" of a path curve.
It seems to me that the parameter "t or t2" values of the two curves may be of different SPACING or NON-UNIFORMITY. (In some cases.)
(In a sense I'm using t and t2 as uniform time parameters...? (unit speed curve??)) (The script will be a "sphereSweep" script.)

(I am compensating for min and max values of t and t2 being different. Say (0 <= t <= 1) for radius curve and (0 <= t2 <=5) for path curve.)

Also it seems that given a t3 parameter value of a curve, and existing script methods, a point currently can be found, but given a point on the curve, its t3 value cannot currently be found by script.

- Brian
From: Michael Gibson
5 Apr 2020   [#518] In reply to [#517]
Hi Brian,

> In this link, (hard to believe that it was two years ago), you mentioned "...new evaluateCurvature(t)
> function. But it might need an additional method for getting curve parameter values for points
> equally spaced along the curve, I will see about adding that in."
> also "...I'm planning on adding another batch of curve functions for the next beta as well, that
> should do the trick..."

The function for getting curve parameters for equally space distances along the curves hasn't made
it in yet but it should be possible to accomplish using the ArrayCurve command to generate equally
spaced points and then crv.dropPoint( pt ) to get the parameter value for each point.


re:
> Also it seems that given a t3 parameter value of a curve, and existing script methods, a point currently
> can be found, but given a point on the curve, its t3 value cannot currently be found by script.

It can be - that's the dropPoint() methods added in the Jan-22-2020 v4 beta, there is a collection
of all the V4 beta release notes gathered in one spot here: http://moi3d.com/wiki/V4Beta

Add script methods for dropping points:
curve.dropPoint( pt ) - returns curve parameter value of closest point on the curve to the given 3D point.
curvesegment.dropPoint( pt ) - returns curve parameter value of closest point on the curve segment to the given 3D point.
face.dropPoint( pt ); - returns 2D uv coordinate point of closest point on the face to the given 3D point.
brep.dropPoint( pt ); - finds closest point on brep to given 3D point. Returns a list with 3 items, 0: Face object that the closest point is on, 1: 2D uv coordinate for the face, 2: 3D coordinate of the closest point.

The dropPoint() method takes a point as the input, it can be either on or off the curve. It then returns
the parameter value for the closest location of the curve to the point. If it is on the curve then you can think
of it as a conversion from 3D point into curve parameter value. If it's off the curve then it's like you were to
draw the shortest line from the point onto a spot on the curve and it will give the parameter value of that
curve location.

- Michael
From: bemfarmer
5 Apr 2020   [#519] In reply to [#518]
Thank you very much Michael.

Your "closest point" explanation is also very helpful.

dropPoint() method is perfect for my script. With array points, code from good old LineWeb script.

[So, I did not read the most recent release notes,but have now :-) ]

- Brian
From: Michael Gibson
5 Apr 2020   [#520] In reply to [#519]
You're welcome Brian. That's new so please let me know if you have any problems with it.

- Michael
From: Mr. Yuri (MR_JURAJ)
9 Apr 2020   [#521]
Hi Michael,
you think it would be possible to set colors of the axes to remain static?
For example to set X=blue, Y=red, Z=green and have this visibility set in all viewports.

Now I set it like above and in top view it's fine, but in front and right view it's correctly shown only in small icons.
Actual axes in ports are always shown like X and Y.
Also I don't see Z axis at all in 3D viewport.

I checked the documentation and settings but had no luck.
Thanks
Juraj

Image Attachments:
moi axes.jpg 


From: Michael Gibson
9 Apr 2020   [#522] In reply to [#521]
Hi Juraj, some previous discussion here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=6424.2

I've been meaning to change it how you're asking though.

- Michael
From: Mr. Yuri (MR_JURAJ)
10 Apr 2020   [#523] In reply to [#522]
Great.
Thanks Michael.

Looking forward.

Juraj
From: Chris (CEEN)
13 Apr 2020   [#524]
Hi,

do you think it is possible to extend the ISO curve tool into some kind of ISO grid/network tool? At the moment we can draw one line into each v and u direction. It would be awesome to have this feature extended into a network function with equal distance in the net segments and that net is projected onto the surface. See the image, please. I build that out of several ISO lines and it would be great to do that faster with a network function because at the moment you get a lot of overlapping lines when building a regular net like this. Do you think sth like this would be possible? Thank you!



Image Attachments:
ISo_grid.jpg 


From: Michael Gibson
13 Apr 2020   [#525] In reply to [#524]
Hi Chris,

re:
> do you think it is possible to extend the ISO curve tool into some kind of ISO grid/network tool?

Is it for modeling purposes or just for display like a type of hatching?

There is a "Multi-iso" plugin script that you can get from Max's file archive page:
http://moi.maxsm.net/media/files/

That may do what you're looking for here.

- Michael
From: nameless
28 Jun 2020   [#526]
I am just going to drop these 2 here, as I think they are important for V5

- When you paste a copied selection using ctrl+shift+V, it would be ideal to be able to adjust the scale of it before commiting, instead of being able to adjust the orientation only. Right now, if you change the size after placement, the origin of the original placement gets shifted and you need to readjust to get the boolean at the right level. It's almost always the case, that you need a size adjustment, especially if you are detailing a larger form with premade kit objects.

- I am not sure if I am missing something but it would be more intuitive, if while moving points of a curve, they would snap on other points of the curve being edited. A simple example is attempting to "close" a triangle, trying to snap the end of a 3 segment line to the start. At the moment, curve points being moved, only seem to "recognize" points that belong to other curves as a snap target.
From: James (JFH)
6 Jul 2020   [#527]
Michael,

When attempting to create a blend curve between 2 curves the result can be unexpected if they have been selected using a marquee selection, because the closest endpoints of the input curves are determined to be endpoints of the new blend curve, regardless of the curve direction

I know that you loath to introduce new functionality if it complicated the UI/UX, but please consider (if you can see the value in it) of including a check box that appears only in the instance of marquee selection of input curves, that reads something like- "Use Curve Direction". See image below:



Obviously, this is a trivial matter compared to the release of the final beta, but if this suggestion is practical, both in the senses of achievable & of practical use to others, please consider it for inclusion to a future update.

Thanks, James
https://www.instagram.com/nodeology/
From: Michael Gibson
6 Jul 2020   [#528] In reply to [#527]
Hi James, if the blend is between the wrong ends for what you want, when you are in the "Adjust blend parameters" stage you can click on a curve and it will flip the side that the blend will come off from.

So you can use that for the case you show there where you don't want the default result.

Here's an example:



- Michael
From: James (JFH)
6 Jul 2020   [#529] In reply to [#528]
Michael,

I was aware that blend curve endpoints could be readjusted by clicking the input curves.

I encountered this issue with the default blend curve endpoint discernment in nodeEditor where of course the readjusting of output curve after-the-fact is not something readily available. Perhaps this facility could be included within the node as a menu item in the info-panel, however it got me contemplating if input curve direction might not be a better default for determining the endpoints of the new curve, rather than proximity, generally.

I then found myself experimenting with blending curves manually, & thought perhaps a checkbox that appeared only in the instance of a marquee selection may be the best of both worlds.

Anyway that was just a thought.




But getting back to nodeEditor, would there be a scripting method of over-riding the default so that curve directing determined the endpoints of the output curve?

James
https://www.instagram.com/nodeology/
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/

Show messages:  1-13  …  454-473  474-493  494-513  514-533  534-553  554-573  574-575