MoI discussion forum
MoI discussion forum

Full Version: V5 Wish List

Show messages:  1-2  …  363-382  383-402  403-422  423-442  443-462  463-482  483-502  …  623-639

From: Michael Gibson
16 Sep 2022   [#423] In reply to [#422]
Hi Chris, I think you're asking about the "Drape" command in Rhino?

That method doesn't really give very good quality results, there is usually a lot of "stair stepping" kind of artifacts.

For that type of surface reconstruction it would probably be a lot better to convert to polygons, then use a polygon retopology tool to generate quad polygons over it and then bring that back in to MoI using the SubD converter. That would give you a lot more predictable quality than drape.

- Michael
From: Ayer (AYERTOSCO)
16 Sep 2022   [#424]
HI, would it be possible to "save" a specific view? It would be great for the ones of us who export 3d views for illustration purpouse. I found it difficult to edit my 3d geometry and use the same 3d view again for the export. Saving and locking a specific view would be great.
From: Michael Gibson
16 Sep 2022   [#425] In reply to [#424]
Hi Ayer, that's definitely something I want to add. in the meantime there is a plug-in here that can do that now:
http://moi3d.com/forum/index.php?webtag=MOI&msg=10028.1

- Michael
From: BENGTS
21 Sep 2022   [#426] In reply to [#425]
Looking forward to v5, such a great tool for a technical illustrator! :-)

Something like ViewManager would indeed be nice. Perhaps together with a posibility to numerically change the view. I like the control in Teamcenter visualisation.

In snapshot, it’d be cool to have an indication of what slot is in use? And maybe possibility to name them, name showing up like a tooltip or somthing. Also is it doable to have it remember what objects are visible and hidden?

Regards,
- Bengt




From: Michael Gibson
21 Sep 2022   [#427] In reply to [#426]
Hi Bengt,

re:
> Perhaps together with a posibility to numerically change the view. I like the control in Teamcenter visualisation.

There are currently some numeric controls for view angles under Options > View > 3D View angles.


> In snapshot, it’d be cool to have an indication of what slot is in use? And maybe possibility to name
> them, name showing up like a tooltip or somthing. Also is it doable to have it remember what objects
> are visible and hidden?

That snapshot function isn't a regular part of MoI, it's from Max Smirnov's CustomUI mod. I don't think he's developing it any further though.

In the future I do want to work on some kind of save/restore state mechanism though.

- Michael
From: pressure (PEER)
4 Oct 2022   [#428] In reply to [#420]
Michael,

I have two scripting requests:

1) A way to get the point at the center of an object. That is, the point that's shown when Object Snap > Center is on. In other words, something along the lines of propertiesPanel.radius. This is for changing the UV directions of a spherical face for hatching.

2) Harmonize the 5 bounding box methods by adding an optional coordinate frame parameter that defaults to the active cplane. Now, the properties panel bounding boxes are aligned with the cplane, but the others are aligned with world coordinates:
GeomObject.getBoundingBox()
ObjectList.getBoundingBox()
ObjectList.getHighAccuracyBoundingBox()
From: Michael Gibson
4 Oct 2022   [#429] In reply to [#428]
Hi Peer,

re:
> 1) A way to get the point at the center of an object. That is, the point that's shown when Object Snap > Center
> is on. In other words, something along the lines of propertiesPanel.radius. This is for changing the UV directions
> of a spherical face for hatching.

There isn't an object snap for the center of a face that is a sphere surface. The one that you get on a regular sphere comes from the center point of its arc edge curve.

I'll see about adding in some script access for conic sections on faces similar to what there is for curves though, and about adding in a coordinate frame optional parameter for bounding boxes.

- Michael
From: pressure (PEER)
5 Oct 2022   [#430] In reply to [#429]
Michael,

I noticed center snapping on a full sphere, 1/4, and 1/8, and that propertiesPanel.hasRadius seems to be true for any fragment of a sphere, but I guess those are special cases. Thanks for explaining that the center snap point is coming from trim curves.

re:
> adding in some script access for conic sections on faces

I don't understand what this means. To me a conic section means a curve.

The problem I'm trying to solve is getting the UV directions on a spherical face to go in the directions that I want. My plan was select the face, get the radius and center, cache the trim curves of the original face, generate a sphere with the same radius and center but with seam orientation picked with something like an orientation picker, remove the original face, trim this new sphere with the cached trim curves, and then join.

I guess I could draw 2 pointObjects snapped to the surface of the face, dropPoint to get uv coordinate points, evaluate normal at each of the uv points, extend a line along each normal, and find the intersection = center. Is that the best way?
From: bemfarmer
5 Oct 2022   [#431] In reply to [#430]
Hi Peer,

Do you have an example .3dm of the surface?

There is a shortcut to mark the center point of a curve.

Conics include circle, ellipse, parabola, hyperbola, and line?

- Brian
From: pressure (PEER)
5 Oct 2022   [#432] In reply to [#431]
Brian,

See attached. The surface is spherical. I want to get the point that's marked with a pointObject. In other words, the center of curvature.

Attachments:
sphere_center.3dm


From: bemfarmer
5 Oct 2022   [#433] In reply to [#432]
For a Spherical cap:
https://en.wikipedia.org/wiki/Spherical_cap

Let d = (r-h)
d = sqrt(r*r - a*a)
r = (a*a + h*h) / 2*h
theta = arcsin(a/r)

- Brian
Hasty trig math, check for errors:-)
From: Michael Gibson
5 Oct 2022   [#434] In reply to [#430]
Hi Peer,

> I don't understand what this means. To me a conic section means a curve.

Yes you're correct, sorry I used the wrong term there.


> I guess I could draw 2 pointObjects snapped to the surface of the face, dropPoint to
> get uv coordinate points, evaluate normal at each of the uv points, extend a line
> along each normal, and find the intersection = center. Is that the best way?

Yes, intersecting 2 surface normals would be a way to get the center currently.

You can get 2 UV coordinates using the domain boundaries instead of dropping points.

var minpt = face.domainMin; // 2d point for UV domain min corner.
var maxpt = face.domainMax; // 2d point for UV domain max corner.

Just don't use the min and the max both directly because those will be at each pole and those normals will be colinear.

So maybe something like 1/3 between them for one point and 2/3 between for the other one.

- Michael
From: pressure (PEER)
5 Oct 2022   [#435] In reply to [#434]
Thanks Michael. domainMin/Max sound very promising. I'll give that approach a try.
From: bemfarmer
5 Oct 2022   [#436]
A way to get two points on the surface:
Select the edge of the cap.
Run MarkCurveEnd for point 1
Run MarkCurveMidpoint for point 2
Run some script to get the two normals, and intersect.

The two normals can be manually found.

So is a utility script to be created for the 2 UV coordinates method?

- Brian
From: bemfarmer
5 Oct 2022   [#437]
Array endpoint of edge to edge curve, with 4 points.
This establishes two perpendicular lines, and a plane.
The normal to the two lines, through the Center point of line through endpoint and midpoint, passes through the apex of the cap, and the centerpoint of the sphere, and allows calculation of "h", "a", and "r".

https://web.ma.utexas.edu/users/m408m/Display12-5-4.shtml#:~:text=The%20normal%20to%20the%20plane,%C3%97(s%E2%88%92b).

Enough math for tonight.

- Brian
From: Michael Gibson
5 Oct 2022   [#438] In reply to [#436]
Hi Brian,

re:
> So is a utility script to be created for the 2 UV coordinates method?

Something like this:
code:
var face;

<... get face object ...>

var uv_min = face.domainMin;
var uv_max = face.domainMax;

function Lerp( t, low, high )
{
    return low + ((high - low) * t);
}

function LerpUVPoint( t, ptA, ptB )
{
    return { x : Lerp( t, ptA.x, ptB.x), y : Lerp( t, ptA.y, ptB.y ) }
}

var uv_a = LerpUVPoint( 0.3, uv_min, uv_max );
var uv_b = LerpUVPoint( 0.6, uv_min, uv_max );

var factory = moi.command.createFactory( 'point' );
factory.setInput( 0, face.evaluatePoint( uv_a ) );
factory.commit();


From: bemfarmer
6 Oct 2022   [#439] In reply to [#438]
Thank you Michael

The _ChangeHole script has Face selection code...

I might play with it after work...

- Brian
From: Elang
18 Nov 2022   [#440]
Hello, Michael.

Would you kindly include SPIRO PATH to Moi v5's Draw Curve > Spiro Path? It is similar to the one in InkScape. Since it guarantees the formation of lovely curves, I think it would greatly strengthen Moi.

I ask because I frequently utilize Moi to "trace" bitmap images, notably logos, into vectors, which are then transformed into 3D logos.

Thank you very much.
From: Michael Gibson
18 Nov 2022   [#441] In reply to [#440]
Hi Elang, previously due to licensing and patents it was only possible to include Spiro in open source programs, not in commercial programs like MoI.

I think the licensing has changed though and it may be possible to use it outside of open source now.

I'll put it on my list to investigate, it might not make it in for the v5 release though.

- Michael
From: bemfarmer
18 Nov 2022   [#442] In reply to [#440]
There is a Clothoid script.

For "tracing", the Clothoid script can be used.
But using a pair of tangents, and the Blend command works very well, perhaps better than the Clothoid method, IMHO.
(repeat Blend with multiple tangent pairs.) The History effect on Blend is also handy.

https://raphlinus.github.io/curves/2019/05/10/spline-licensing-update.html
The Raph Levien spiro patent was placed in public domain ~ 2019, per above link. Legalities?
There was talk on the forum many years ago...

- Brian

https://graphicdesign.stackexchange.com/questions/76007/what-is-the-math-governing-the-shape-of-inkscapes-spiro-paths

As I recall, the Clothoid script was based upon a Paper, and used advanced math and programming, even calculus programming...

Show messages:  1-2  …  363-382  383-402  403-422  423-442  443-462  463-482  483-502  …  623-639