V4 beta Feb-27-2019 available now

 From:  LarryV
9266.162 In reply to 9266.160 
Hello Michael,

Thank you for your reply. I really appreciate how response you are with so many people and the extensive time you take answering inquiries and requests, even though it's probably very time consuming.

Regarding your points / replies :

1. Hi Larry, yes MoI v4 is now a 64-bit program and so can use all your system memory instead of running into 32-bit limits. So it can handle much larger files than v3.

A: Thank you, this will be tremendously useful! There are certain models which are simply too big to export to meshes with 3.0, even with 0 undo levels and 1 thread limit and horrible preview render tessellation.

2. Also there have been some other improvements such as using multiple CPU cores for processing objects so usually it's a lot faster loading files too.

A: Much appreciated as well!

3. It's a somewhat fragile area and when you see the type of distortions you mention it means something didn't go quite right with that. This can usually be corrected by doing some repair operations like untrimming and retrimming the messed up surface. There is a tutorial on these techniques at http://moi3d.com/forum/index.php?webtag=MOI&msg=446.17 .

A: Thank you, I'll review the article. However, I did suspect that the issue was due to the modelling software I use, Autodesk 123D Design, possibly not exporting CAD models correctly. So, to rule that out, I viewed the models which didn't import ok in MOI3D with eDrawings 2019 and they display correctly in that. Just now, as I'm typing this, I also opened the problem models with freeCAD as well and they also displayed correctly in that. They also display correctly in grabCAD's own .sat / .step viewer, even though that sometimes produces artifacts of its own due to not using enough triangles when tessellating.

Maybe a different geometry kernel might help, like Open CASCADE or Coin 3D?

4. Your propeller.stp model has the same issue in v4 as in v3.

A: Just now, looking through my old CAD files, I managed to find an earlier version of that propeller model in 123D's own native format, before I removed some unwanted solids from the scene which I'd only used the sides of as sketching surfaces. When I exported that earlier version of the model as a .sat file, it appeared to have imported correctly in MOI 3D, along with the unwanted solids, but when I checked, the propeller was a joined SRF rather than a solid. I've attached it to this reply for comparison.

4. It is an area that I would like to tune up in the future but it will have to happen earlier in a release cycle rather than at the end.

A: Can geometry kernel improvements to importing be made in 5.0? Or maybe switch to using Open CASCADE or Coin 3D for handling file imports / conversion to .3dm, if MOI handles .3dm better than .sat or .step? Is there a particular CAD model file which is easiest for MOI to handle? I can try changing my workflow by converting to that format from .sat or .step using freeCAD as an intermediary or exchange format for reliable correct import into MOI, rather than importing the .sat or .step files I export from Autodesk 123D design directly into MOI.

5. What happens with propeller.stp if you use IGES format instead of STEP/SAT ?

A: Usually, models imported from .sat appear to have more issues than .step. But I've had cases where the reverse was true.

6. If your software has an option for using IGES type 144 surfaces that could potentially have a trim boundary closer to what MoI needs and so might have less processing needed on it.

A: I don't have any option to choose what type of version of IGES the .sat files I export will use. If I export an earlier version of the propeller model as .sat it appears to display correctly in MOI but is labelled a joined SRF. I attached that file as 'propeller.sat'.

If I import the propeller.stp model back in Autodesk 123D Design and export it again as .sat instead of .step, the result is worse than the straight export of the earlier version of the model. I attached that file as 'step-reimport-to-export-as-sat.sat'. All of the problem models display correctly in Solidworks eDrawings viewer 2019 and freeCAD. Which is why I think the issue is with MOI.

Could it be that the import issues are caused :

a) by an index variable value range overrun? Maybe an index variable is used in a loop somewhere in the import routine for .sat or .step files and the value it reaches exceeds the value range of the data type used? Maybe switching all index variables and counters in the code to 64 bit integer data types would fix obscure bugs and possibly also this one?
b) by floating point variables with insufficient accuracy? Maybe there's snapping occurring when the software performs array indexing by checking a given float variable's or float array position's value to others before deciding whether to add it as a new array position or just as an index to an already existing position, which is actually supposed to be slightly different in value but with a difference too small for 32 bit floating precision? And so what should be two different positions in the array collapse to a single position?

Or maybe MOI can be switched to a different or already existing geometry kernel in a future version, one which might be more battle hardened?

7. If you delete that square plug you can then show naked edges (http://moi3d.com/forum/index.php?webtag=MOI&msg=6051.2) to see where it was supposed to be. There is a very skinny ring there, only 0.0017 units wide.

A: This observation is what made me think that the import issues might be due to insufficient floating point accuracy. Maybe double precision is needed instead of single precision. I have no idea whether freeCAD, 123D Design or eDrawings use double precision or single precision floats but if changing all float variables in MOI's code to double precision is an easy change with no complex or problematic implications or ramifications, it might be worth it to see whether it fixes the issue.

There shouldn't be any square plug. I'm not sure which of the surfaces shown in this cross-section view in 123D Design are getting turned into that square plug :



8. That can generally cause problems having such a small width. But if you select the object you can then use Construct > Planar to fill it in and then it all seems to be ok after that.

A: I'm really really used to working only with solids, only in 123D Design, not with individual surfaces or edges / curves, except at the sketching stage, in 123D Design. That's why I hardly do any modelling in MOI, except for Twist or Flow ops on imported models. I think a better solution for me would be if there was a particular CAD format which is known to be the easiest for MOI3D to handle (either its native internal representation of CAD models or the closest format to that) and import and which could be expected to import most reliably. Then I could try converting to that format using freeCAD, from .dwg, .dxf, .sat or .step files which I can export from 123D Design, before importing the converted model into MOI.

Conversion to an intermediary format before actual import might also be a good workaround in the future. Maybe you could use Open Cascade or Coin 3D to import 3rd party CAD files to an intermediary format or to MOI's own native format or the closest format to its internal representation. And then actually import the file resulting from the conversion to the intermediary or native format of MOI rather than original, initial 3rd party CAD file itself. Just speculating, I might be completely off-base.

9. If I understand you correctly those seams are in spots where a surface has a hole in it. Most polygon mesh formats do not have the concept in them of a polygon with an internal hole in it, so when there is a hole in a surface after it has been subdivided, the polygon will be divided through the hole so as to bridge the outer and interior loop so it can be represented by a regular polygon instead of a polygon with an internal hole "island".

A: I'm ok with seams, I want the seams and I always export models with vertex welding de-activated because it avoids vertex normal averaging where it's best to not average vertex normals. The issue is that there are some redundant seams being created. I've highlighted what I mean in the following image. The blue lines are seams where vertices were duplicated upon export from MOI. The models are were exported 'triangles only'. No ngons are used. The blue seams are between triangles that make up the mesh surface. However, there's more seams being created than should be necessary. I highlighted the ones I think are redundant in red.



Thank you for all of the information, the work on 3.0 and 4.0 and for all the time you're taking to address people's inquiries and requests.