|
[Sponsors] |
[snappyHexMesh] .STL: non-closed manifold surface |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
June 24, 2012, 08:30 |
.STL: non-closed manifold surface
|
#1 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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 |
|
June 24, 2012, 09:21 |
|
#2 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Greetings Giulio,
AFAIK, you've got two more applications that might help you:
Best regards, Bruno
__________________
Last edited by wyldckat; April 15, 2016 at 18:58. Reason: repaired 3rd link |
|
June 24, 2012, 14:55 |
|
#3 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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... |
|
June 24, 2012, 15:04 |
|
#4 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
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 surfaceCheck surfaceClean surfaceMeshInfo surfaceMeshTriangulate surfaceOrient surfacePointMerge surfaceSplitNonManifolds Best regards, Bruno
__________________
|
|
June 25, 2012, 04:32 |
|
#5 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
Thanks a lot Bruno!
I'll try and i'll let you know! |
|
June 25, 2012, 18:02 |
|
#6 | |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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 /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.1.0-bd7367f93311 Exec : surfaceCheck sistema_aspirazioneSPLIT.stl Date : Jun 25 2012 Time : 22:54:29 Host : "giulio-System-Product-Name" PID : 3264 Case : /home/giulio/OpenFOAM/giulio-2.1.0/run/sistema_aspirazione_prova1/constant/triSurface nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Reading surface from "sistema_aspirazioneSPLIT.stl" ... Statistics: Triangles : 741472 Vertices : 370738 Bounding Box : (-0.277977 -0.252341 -0.185) (0.0877108 0.406808 0.185) Region Size ------ ---- patch0 739052 inlet 484 outlet1 484 outlet2 484 outlet3 484 outlet4 484 Surface has no illegal triangles. Triangle quality (equilateral=1, collapsed=0): 0 .. 0.05 : 0.0205658 0.05 .. 0.1 : 0.0233347 0.1 .. 0.15 : 0.0651785 0.15 .. 0.2 : 0.0619228 0.2 .. 0.25 : 0.0732826 0.25 .. 0.3 : 0.0791156 0.3 .. 0.35 : 0.0861556 0.35 .. 0.4 : 0.0795768 0.4 .. 0.45 : 0.0739327 0.45 .. 0.5 : 0.0547694 0.5 .. 0.55 : 0.0440259 0.55 .. 0.6 : 0.039814 0.6 .. 0.65 : 0.039253 0.65 .. 0.7 : 0.0407096 0.7 .. 0.75 : 0.0551511 0.75 .. 0.8 : 0.0864119 0.8 .. 0.85 : 0.0225821 0.85 .. 0.9 : 0.0229584 0.9 .. 0.95 : 0.0184215 0.95 .. 1 : 0.012838 min 9.71817e-15 for triangle 202993 max 0.999965 for triangle 293478 Dumping bad quality faces to "badFaces" Paste this into the input for surfaceSubset Edges: min 9.31323e-09 for edge 269084 points (-0.0263771 0.106477 0.00814986)(-0.0263771 0.106477 0.00814987) max 0.260019 for edge 265543 points (-0.11744 -0.101011 0.13)(-0.114789 -0.102644 -0.13) Checking for points less than 1E-6 of bounding box ((0.365688 0.659149 0.37) meter) apart. small edge between points 102852 (0.00794995 -0.00590114 0.0107591) and 102853 (0.00794959 -0.00590132 0.0107584) distance:8.07904e-07 small edge between points 242146 (-0.0879971 -0.00501726 -0.016543) and 242145 (-0.0879967 -0.00501725 -0.0165431) distance:4.1484e-07 small edge between points 91187 (-0.0263884 0.105469 0.00686284) and 91185 (-0.0263884 0.105469 0.00686283) distance:1.02445e-08 small edge between points 91176 (-0.0263828 0.105952 0.0075115) and 91178 (-0.0263828 0.105952 0.00751149) distance:9.77889e-09 small edge between points 91258 (-0.0263828 0.105952 -0.00751162) and 91253 (-0.0263828 0.105952 -0.00751161) distance:9.77889e-09 small edge between points 91180 (-0.0263771 0.106477 0.00814987) and 91179 (-0.0263771 0.106477 0.00814986) distance:9.31323e-09 small edge between points 91254 (-0.0263771 0.106479 -0.00814962) and 91255 (-0.0263771 0.106479 -0.0081496) distance:2.04891e-08 small edge between points 91560 (-0.0263715 0.107043 0.00877722) and 91183 (-0.0263715 0.107043 0.0087772) distance:1.95578e-08 small edge between points 91264 (-0.0263715 0.107045 -0.00877677) and 91261 (-0.0263715 0.107045 -0.00877675) distance:1.95578e-08 small edge between points 91172 (-0.0263659 0.107648 0.00939286) and 91171 (-0.0263659 0.107648 0.00939284) distance:2.04891e-08 small edge between points 91162 (-0.0263606 0.10829 0.0099962) and 91164 (-0.0263606 0.10829 0.00999618) distance:1.95578e-08 small edge between points 91271 (-0.0263606 0.10829 -0.00999644) and 91269 (-0.0263606 0.10829 -0.00999642) distance:2.04891e-08 small edge between points 91158 (-0.0263512 0.109686 0.011163) and 91159 (-0.0263512 0.109686 0.0111629) distance:9.96515e-08 small edge between points 91290 (-0.0263407 0.112877 -0.0133252) and 91291 (-0.0263407 0.112877 -0.0133251) distance:1.00583e-07 small edge between points 243834 (-0.0263283 0.114316 -0.000547015) and 243833 (-0.0263283 0.114316 -0.000546334) distance:6.80971e-07 small edge between points 91297 (-0.0263403 0.113743 -0.0138312) and 91298 (-0.0263403 0.113743 -0.0138311) distance:9.96515e-08 small edge between points 91138 (-0.0263437 0.115566 0.0147917) and 91136 (-0.0263437 0.115566 0.0147916) distance:9.96515e-08 small edge between points 91300 (-0.0263438 0.115569 -0.0147905) and 91302 (-0.0263438 0.115569 -0.0147903) distance:1.99303e-07 small edge between points 91116 (-0.0264233 0.123765 0.0179984) and 91121 (-0.0264233 0.123765 0.0179983) distance:9.87202e-08 small edge between points 45626 (0.0496081 -0.119144 -0.00379507) and 45627 (0.0496081 -0.119144 -0.00379477) distance:3.00119e-07 small edge between points 91348 (-0.0267246 0.138079 -0.0209936) and 91349 (-0.0267246 0.138079 -0.0209935) distance:1.00583e-07 small edge between points 197704 (0.0152914 -0.157159 -0.00106357) and 197702 (0.0152908 -0.157159 -0.00106352) distance:6.02785e-07 small edge between points 45262 (0.0240928 -0.163317 -0.00182209) and 45263 (0.0240926 -0.163317 -0.00182207) distance:2.0216e-07 close unconnected points 103506 (-0.102072 0.300438 -0.0153271) and 23647 (-0.102072 0.300438 -0.0153268) distance:2.99886e-07 Found 24 nearby points. Surface is closed. All edges connected to two faces. Number of unconnected parts : 13 Splitting surface into parts ... writing part 0 size 609218 to "sistema_aspirazioneSPLIT_0.obj" writing part 1 size 26754 to "sistema_aspirazioneSPLIT_1.obj" writing part 2 size 26754 to "sistema_aspirazioneSPLIT_2.obj" writing part 3 size 26752 to "sistema_aspirazioneSPLIT_3.obj" writing part 4 size 888 to "sistema_aspirazioneSPLIT_4.obj" writing part 5 size 19490 to "sistema_aspirazioneSPLIT_5.obj" writing part 6 size 2444 to "sistema_aspirazioneSPLIT_6.obj" writing part 7 size 26752 to "sistema_aspirazioneSPLIT_7.obj" writing part 8 size 484 to "sistema_aspirazioneSPLIT_8.obj" writing part 9 size 484 to "sistema_aspirazioneSPLIT_9.obj" writing part 10 size 484 to "sistema_aspirazioneSPLIT_10.obj" writing part 11 size 484 to "sistema_aspirazioneSPLIT_11.obj" writing part 12 size 484 to "sistema_aspirazioneSPLIT_12.obj" I can read this Quote:
Worse yet is that surfaceFeatureExtract recognizes not closed surface...what do you think about Bruno? thanks for your help |
||
June 25, 2012, 18:22 |
|
#7 | |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hi Giulio,
OK, there are a few indications that not everything is sane in this STL file:
Best regards, Bruno
__________________
|
||
June 26, 2012, 17:12 |
|
#8 | |||
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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!! |
||||
June 26, 2012, 17:47 |
|
#9 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
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
__________________
|
|
June 27, 2012, 19:04 |
|
#10 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hi Giulio,
OK, so I've given a few trial-and-errors to your 200MB STL 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 surfaceCheck sistema_aspirazione.stl > log.surfaceCheck #extract only the badFaces surfaceSubset surfaceSubsetDict sistema_aspirazione.stl sistema_aspirazione_test1.obj #extract everything except badFaces surfaceSubset surfaceSubsetDict_invert sistema_aspirazione.stl sistema_aspirazione_test2.obj #extract only the problemFaces surfaceSubset surfaceSubsetDict_probFaces sistema_aspirazione.stl sistema_aspirazione_test3.obj 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
__________________
|
|
June 28, 2012, 07:03 |
|
#11 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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 |
|
June 29, 2012, 16:17 |
|
#12 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
nothing to do ... I do not ever graduate!
|
|
June 30, 2012, 08:02 |
|
#13 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hi Giulio,
Haven't you seen my first post on this thread? I mention Blender and an old tutorial for Blender 2.49b that can help you with fixing the STL file! 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
__________________
|
|
June 30, 2012, 16:37 |
|
#14 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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 |
|
June 30, 2012, 18:44 |
|
#15 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
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/
__________________
|
|
July 2, 2012, 06:41 |
|
#16 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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! (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 |
|
July 2, 2012, 08:45 |
|
#17 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
I won't be able to look at the geometry any time soon, but here are a few hints/details:
__________________
|
|
July 2, 2012, 20:11 |
|
#18 |
New Member
Giulio
Join Date: Oct 2011
Posts: 28
Rep Power: 15 |
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?
|
|
July 3, 2012, 05:26 |
|
#19 | |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
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?
__________________
|
||
August 4, 2012, 08:34 |
|
#20 |
New Member
dimitri van den bosse
Join Date: Feb 2011
Posts: 1
Rep Power: 0 |
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.
|
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[snappyHexMesh] how to fix not closed surface and unconnected parts in stl file | meithid | OpenFOAM Meshing & Mesh Conversion | 2 | August 22, 2020 22:09 |
source not closed and manifold error while performing boolean(subtract) operation | rockydongre | STAR-CCM+ | 3 | May 24, 2019 02:38 |
[snappyHexMesh] Bad/jagged mesh around intersection of two .stl bodies | MBttR | OpenFOAM Meshing & Mesh Conversion | 7 | October 14, 2016 04:57 |
[Gmsh] Problem with Gmsh | nishant_hull | OpenFOAM Meshing & Mesh Conversion | 23 | August 5, 2015 03:09 |
[snappyHexMesh] Layers not closed around air foil of vertical turbine | carstenf | OpenFOAM Meshing & Mesh Conversion | 2 | March 9, 2014 21:16 |