GEOUNED-org / GEOUNED

A tool to convert CAD to CSG & CSG to CAD for Monte Carlo transport codes
European Union Public License 1.2
54 stars 29 forks source link

issue with the cells relocation #10

Closed DomenKotnik closed 10 months ago

DomenKotnik commented 11 months ago

I am having a strange issue. I can easily convert CAD model to the MCNP input without any problems (using: FreeCAD v20.2, and GEOUNED v1.0 (release date 23.10.2023).

However, the conversion collapsed when I moved my initial CAD model (.stp) file for 10 cm, while not changing anything else. Any solution? My goal is to make 2 identical pieces facing each other (the simplest option is just to mirror it, however, the same problem occurs already by just moving the object).

" Decomposing solid: 125/207 Decomposing solid: 126/207 Traceback (most recent call last): File "geouned", line 49, in GEO.Start() File "F:\GEOUNED-1.0-main\src\GEOUNED__init__.py", line 254, in Start warningSolidList = DecomposeSolids(MetaList,Surfaces,UniverseBox,code_setting,True) File "F:\GEOUNED-1.0-main\src\GEOUNED__init__.py", line 400, in DecomposeSolids comsolid,err=Decom.SplitSolid(Part.makeCompound(m.Solids),UniverseBox) File "F:\GEOUNED-1.0-main\src\GEOUNED\Decompose\Decom_one.py", line 959, in SplitSolid piece, err = splitComponent(explode,UniverseBox) File "F:\GEOUNED-1.0-main\src\GEOUNED\Decompose\Decom_one.py", line 925, in splitComponent split0,err = SplitPlanes(Solids,UniverseBox,opt.newSplitPlane) File "F:\GEOUNED-1.0-main\src\GEOUNED\Decompose\Decom_one.py", line 630, in SplitPlanes return SplitPlanes_new(Solids,UniverseBox) File "F:\GEOUNED-1.0-main\src\GEOUNED\Decompose\Decom_one.py", line 642, in SplitPlanes_new cutSolids = splitPPlanes_new(base,UniverseBox) File "F:\GEOUNED-1.0-main\src\GEOUNED\Decompose\Decom_one.py", line 803, in splitPPlanes_new comsolid=BOPTools.SplitAPI.slice(solid,tools,'Split',tolerance =opt.splitTolerance) File "C:\Program Files\FreeCAD 0.20\Mod\Part\BOPTools\SplitAPI.py", line 75, in slice pieces, map = shapes[0].generalFuse(shapes[1:], tolerance) Base.CADKernelError: {'sclassname': 'class Part::BooleanException', 'sErrMsg': 'MultiFusion failed', 'sfile': '', 'iline': 0, 'sfunction': '', 'swhat': 'MultiFusion failed', 'btranslatable': False, 'breported': False} "

Thanks for any help :)

I am attaching all the required files (both .stp files, geouned, config.ini, materials.txt) files.zip

ghost commented 11 months ago

Hey Domen! I have quickly checked your problem. Before translating with GEOUNED, we highly recommend the following workflow:

  1. Saving the CAD file in IGS format.
  2. Opening the IGS file in tools like SpaceClaim.
  3. Running the SpaceClaim functions Split Edges, Extra Edges, Small Faces and Inexact Edges until all tests give you 0 problems.
  4. Saving the file in STP format. Translation.

With this workflow the STP CAD file is better written for translation with GEOUNED. Your geometry also translates as it is, but you have to set the splitTolerance to 5E-7. Not related to this problem, but for small geometries my recommendation would also be to reduce the minVoidSize, so you don't end up with one large void environment.

Files: domen.zip

DomenKotnik commented 10 months ago

Perfect, it is working !!!. Aljaz, thank you :)