.STL: non-closed manifold surface
Hi foamers i'm in trouble with my .stl file. I need to extract the feature of my surface but OF recognizes a non-closed manifold surface.
I tried to fix the surface with admesh, but, although admesh not find more errors, surfaceFeatureExtract doesn't work! Any hint? Thank you |
Greetings Giulio,
AFAIK, you've got two more applications that might help you:
Best regards, Bruno |
Thanks Bruno.I tried but i can't manage. I tried netfabb (http://www.netfabb.com/) too but no improvement.
It's strange because all those tools recognize that my surface is closed! In the worst case they find some holes but can fill them and so fix the surface. Nevertheless OF can't extract the features because of the absence of closure! I don't what else to do... |
Hi Giulio,
My guess is that there might be overlapped surfaces... Nonetheless, OpenFOAM has several tools that can help you. If you type surface in the terminal and press the Tab key a couple of times, a list of applications should appear. Here are the ones that might help you: Code:
surfaceAutoPatch Best regards, Bruno |
Thanks a lot Bruno!
I'll try and i'll let you know! |
I tried with surfaceCheck.Here the log:
Code:
giulio@giulio-System-Product-Name:~/OpenFOAM/giulio-2.1.0/run/sistema_aspirazione_prova1/constant/triSurface$ surfaceCheck sistema_aspirazioneSPLIT.stl I can read this Quote:
Worse yet is that surfaceFeatureExtract recognizes not closed surface...what do you think about Bruno? thanks for your help |
Hi Giulio,
OK, there are a few indications that not everything is sane in this STL file:
Best regards, Bruno |
surfaceSubset (or my brain) doesn't work!I didn't understand if i have to launch
Quote:
Quote:
Quote:
Thanks a lot P.S. i can also attach the .stl file if you want to check!! |
Hi Giulio,
Indeed, without an example STL file, it's complicated to figure out how things should work. Additionally, I can cross check with a recent build of OpenFOAM 2.1.x, to confirm if this is something that has already been fixed or not. Don't forget to compress the file before attaching. If the package is larger than 97~100kB, then you better use some other file sharing system, such as Dropbox. If the content of the file is sensitive, you can always send the link just to me via private message. By the way: what about those OBJ files? Have you checked where the floating/disconnected triangles are? Best regards, Bruno |
1 Attachment(s)
Hi Giulio,
OK, so I've given a few trial-and-errors to your 200MB STL :eek: The commands I've used to ascertain what's going wrong are as follows: Code:
#Create a log file with the whole list of errors I've chosen OBJ files as output because they usually are lighter than STL files. Technically none of these commands will fix your STL file; they will only help you diagnose the problem zones. You might have to do some cosmetic surgery on this STL file, to fix those problematic areas. Either that, or reduce a bit on the STL resolution. I've also tried this to join points: Code:
surfacePointMerge sistema_aspirazione.stl 0.0001 sistema_aspirazione_crippled.stl I also tried a couple of times the surfaceClean but with not success. It always crashed indicating that it was unable to collapse certain edges. Example: Code:
surfaceClean sistema_aspirazione_crippled.stl 0.001 0.0025 sistema_aspirazione_clean.stl AFAIK, these kinds of issues cannot be solved with automatic surface fixers. You'll need a powerful surface mesh editor to fix these crazy triangles! Good luck! Bruno |
You are an angel! Thank you very much for all the work you did to help me. I'll try to fix the surface with MeshLab and I'll keep you updated.
thanks again Giulio |
nothing to do ... I do not ever graduate! :D
|
Hi Giulio,
Quote:
Additionally, the commands I wrote in the last post provide the triangles that are deemed bad! Whether you like it or not, having to deal with and to fix damaged geometries for using in CFD is part of (almost) every CFD engineer! Additionally, if you could export the original geometry (not the STL) to OBJ file format, it would possibly fix these issues right away! Best regards, Bruno |
I saw you first reply but it didn't help me (maybe because i can't use blender at all).
How could export the geometry in obj help me??snappyHexMesh needs an stl...is it true or am i wrong?? Anyway i exported my geometry in obj!What to do now?How can snappy read obj? Thanks a lot again |
snappyHexMesh can read the OBJ file as if it were an STL file.
Simply modify the file name (and extension) used in "system/snappyHexMeshDict" and it should work as intended. As for Blender, if you have a computer with a Windows installation nearby... you can use the ZIP files, which don't require installation: http://download.blender.org/release/Blender2.49b/ |
Dear Bruno i apologize if i'm annoying you but i had already tried with Blender with no success!
After exporting geometry in .obj i tried to check the surface with surfaceCheck and i ascertained that the geometry is closed (alleluja!) but there are 84 unconnected parts. Checking with paraFoam i saw that there are something like "internal walls" that split the whole geometry in 84 sub-geometry. i tried to modify the snappyHexMesh declaring sistema_aspirazione_*.obj (instead of sistema_aspirazione.obj) to catch all the parts but it doesn't work. I am attaching the link of my .obj so you can check...obviusly if you want!:o (https://dl.dropbox.com/u/87990776/si...losedOK%29.obj) I've got another question: can i use surfaceFeatureExtract on that .obj? Thank you so much for all the help you are giving me and for all the time you're devoting :) |
I won't be able to look at the geometry any time soon, but here are a few hints/details:
|
Dear Bruno i removed all the internal faces that splitted my geometry one by one........But no improvements.I also removed inevitably good faces.So now i've got an obj worse than before...but it is possible that it is so hard to get an acceptable geometry?
|
Quote:
If surfaceCheck doesn't complain about bad faces, then don't bother with the multiple files. Have you tried using the single OBJ file you've got now with feature extraction and snappyHexMesh? |
Hi, I've had the same problems using surfaceCheck on my .obj file. What I suggest and what removed my badFaces error, is the easy to use program MeshLab. MeshLab is a freeware program available for linux (buggy) and windows (best version imo). It has a clean and repair option that did the trick for me. Hope it helps.
|
1 Attachment(s)
Hey,
i've got similar problems to giulio. My biggest problem is, that my stl file is not closed and i get pretty bad snapping at the edges. I tried to repair/clean my stl with Meshlab but without big efforts. Perhaps you could have a look at my stl. The geometry will be used as a pipe streaming through the big patches. Attachment 26418 Greetings |
1 Attachment(s)
Greetings Phil,
I had a look into your file and here's what I got:
As for fixing it... in Meshlab, you can use from the menu "Filters -> Remeshing, Simplification and reconstruction -> Delaunay Triangulation". I wont be a perfect triangulation, but at least it fixes the problem :) Best regards, Bruno |
Hi,
may I also ask sth regarding surfaceSubset? I have copied the surfaceSubsetDict and try to run it for my case but I get the error Istream not OK for reading dictionary Any ideas how I can fix this? Thank you very much in advance for your help!!! |
Quote:
I think I saw a similar thread of yours on this topic, where you then stated that you managed to fix it. But now I see that you asked this here as well. Therefore, if you've managed to solve this problem, then please indicate how you fixed it. If you haven't solved this problem, then please provide more details (namely, if you did any modifications to the dictionary file "surfaceSubsetDict"), since that error message can occur in a lot of situations. Best regards, Bruno |
Hi Bruno,
yeah I posted it twice because in my experience you don't get much responses when you reply in old threads. Sorry for that. Yes I managed to fix it. I had to enter the command: Code:
surfaceSubset surfaceSubsetDict UCAV.stl UCAV_prob.stl |
dear wyldKat,
very quickly : i need to fix some .stl files to then use in OF. I have blender. How to just add a lower cap (as inlet) to this stl https://www.dropbox.com/s/hzgq9l0e72...perta.stl?dl=0 (which is the bottom of my object), so to have one single .stl file which passes the surfaceCheck ? Could you gently post it ? This old link you suggested here http://engits.eu/wiki/index.php/Tuto...ing_Geometries where is now? thanks a lot, have a nice day, i |
Quote:
And sorry, but I don't have the time needed to fix that STL file, specially because I barely know how to use Blender :( |
Quoting the PM you sent me:
Quote:
OpenFOAM itself doesn't have utilities that will solve these problems automatically. You can try and use this STL and see if snappyHexMesh can still use it, regardless of the errors. |
hi, I've problems using surfaceCheck. And I already used Meshlab and Admesh but it isnot completely removed that problems.
What should I do? |
Quick answer: http://www.cfd-online.com/Forums/ope...sh-salome.html
|
2 blocks to merge
5 Attachment(s)
dear wildcat,
I have 2 simple .stl files representing 2 plates I need to merge together (see pic1), so I proceed doing : > surfaceAdd solid_1.stl solid_2.stl 2solids.stl Then I wanted to exploit the problemFaces given in output by > surfaceCheck 2solids.stl to eliminate them through > surfaceSubset surfaceSubsetDict 2solids.stl 2solids_after.stl in order to have no duplicated internal faces at the merging of the plates. But actually the problemFaces that OF catches result to be strangely the lateral ones to the plates (see pic) and not the internal faces as expected. So why this and how I can then obtain a unique .stl which passes the surfaceCheck ? |
2 Attachment(s)
Hello everybody,
to become familiar with OpenFOAM I am trying to run an OpenFOAM case, which is modified from the motorBike case. I tried to replace the motorBike with a sphere that has a diameter of 1 [m]. This sphere is drawn in SolidWorks and compressed to a .stl.gz file. To minimalize the chance of mistakes I have given this sphere the name motorBike.stl, I am using SHM to mesh the sphere, and the blockMesh of the original motorBike case. The SHMDict and surfaceFeatureExtractDict are attached. The problem I am facing is that the mesh around the sphere isn't visible in paraFoam, or isn't even made at all during the SHM command. I have tried to make the sphere smaller, and also tried to use RhinoCeros to draw the sphere, without any succes. I also tried to change settings in the SurfaceFeatureExtractDict, also without improvement. My question is if there is anybody that has a suggestion or have been facing a similar problem? Many thanks in advance! Best Regards, Joost |
Hello again,
I have found my problem.. My sphere has a diameter of 1 [m], so does my mesh have. The centre of the sphere was placed exactly on the centre of 1 mesh cell, so the sphere didn't cut through any cellborder, and for that reason the sphere wasn't visible at all. My bad! Hope this answer will help people with the same problem. Regards, Joost |
All times are GMT -4. The time now is 08:55. |