CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Mesh Generation & Pre-Processing (https://www.cfd-online.com/Forums/mesh-generation/)
-   -   python script to create geometry for salome, and then mesh (https://www.cfd-online.com/Forums/mesh-generation/182593-python-script-create-geometry-salome-then-mesh.html)

6863523 January 13, 2017 12:09

python script to create geometry for salome, and then mesh
 
1 Attachment(s)
Dear All,
I am trying to create the geometry for salome via Python script.
The geometry is like in the attachment.
I exported the original Python script from salome via dump study and changed the coordinates for the small squares.
But when I load the script in salome, there is an error like:
Code:

>>> execfile(r"/home/LEPT/ywang/OpenFOAM/ywang-3.0.1/run/salome/UCUCscript.py")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/LEPT/ywang/OpenFOAM/ywang-3.0.1/run/salome/UCUCscript.py", line 52, in <module>
    Edge_8 = geompy.MakeEdge(Vertex_8, Edge_5_vertex_2)
  File "/usr/local/salome/INSTALL/GEOM/lib/python2.7/site-packages/salome/salome/geom/geomBuilder.py", line 284, in OpenCallClose
    res = theFunction(self, *args, **kwargs)
  File "/usr/local/salome/INSTALL/GEOM/lib/python2.7/site-packages/salome/salome/geom/geomBuilder.py", line 4562, in MakeEdge
    RaiseIfFailed("MakeEdge", self.ShapesOp)
  File "/usr/local/salome/INSTALL/GEOM/lib/python2.7/site-packages/salome/salome/geom/geomBuilder.py", line 299, in RaiseIfFailed
    raise RuntimeError, Method_name + " : " + Operation.GetErrorCode()
RuntimeError: MakeEdge : The end points are too close

The Python script is
Code:

import sys
import salome

salome.salome_init()
theStudy = salome.myStudy

import salome_notebook
notebook = salome_notebook.NoteBook(theStudy)
sys.path.insert( 0, r'/home/LEPT/ywang/OpenFOAM/ywang-3.0.1/run/salome')

###
### GEOM component
###

import GEOM
from salome.geom import geomBuilder
import math
import SALOMEDS
import numpy as np


geompy = geomBuilder.New(theStudy)

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Vertex_1 = geompy.MakeVertex(0, 0, 0)
Vertex_2 = geompy.MakeVertex(1, 0, 0)
Vertex_3 = geompy.MakeVertex(1, 1, 0)
Vertex_4 = geompy.MakeVertex(0, 1, 0)
Edge_1 = geompy.MakeEdge(Vertex_1, Vertex_2)
Edge_2 = geompy.MakeEdge(Vertex_2, Vertex_3)
Edge_3 = geompy.MakeEdge(Vertex_3, Vertex_4)
Edge_1_vertex_2 = geompy.GetSubShape(Edge_1, [2])
Edge_4 = geompy.MakeEdge(Vertex_4, Edge_1_vertex_2)

Vertex_5 = geompy.MakeVertex(19.138425, 21.870465, 0)
Vertex_6 = geompy.MakeVertex(29.745015, 21.870465, 0)
Vertex_7 = geompy.MakeVertex(29.745015, 32.477055, 0)
Vertex_8 = geompy.MakeVertex(19.138425, 21.870465, 0)
Edge_5 = geompy.MakeEdge(Vertex_5, Vertex_6)
Edge_6 = geompy.MakeEdge(Vertex_6, Vertex_7)
Edge_7 = geompy.MakeEdge(Vertex_7, Vertex_8)
Edge_5_vertex_2 = geompy.GetSubShape(Edge_5, [2])
Edge_8 = geompy.MakeEdge(Vertex_8, Edge_5_vertex_2)

Vertex_9 = geompy.MakeVertex(3.051645, 11.103165, 0)
Vertex_10 = geompy.MakeVertex(13.658235, 11.103165, 0)
Vertex_11 = geompy.MakeVertex(13.658235, 21.709755, 0)
Vertex_12 = geompy.MakeVertex(3.051645, 11.103165, 0)
Edge_9 = geompy.MakeEdge(Vertex_9, Vertex_10)
Edge_10 = geompy.MakeEdge(Vertex_10, Vertex_11)
Edge_11 = geompy.MakeEdge(Vertex_11, Vertex_12)
Edge_9_vertex_2 = geompy.GetSubShape(Edge_9, [2])
Edge_12 = geompy.MakeEdge(Vertex_12, Edge_9_vertex_2)
# Face_1 = geompy.MakeFaceWires([Edge_1, Edge_2, Edge_3, Edge_4, Edge_5, Edge_6, Edge_7, Edge_8], 1)
geompy.addToStudy( O, 'O' )
geompy.addToStudy( OX, 'OX' )
geompy.addToStudy( OY, 'OY' )
geompy.addToStudy( OZ, 'OZ' )
geompy.addToStudy( Vertex_1, 'Vertex_1' )
geompy.addToStudy( Vertex_2, 'Vertex_2' )
geompy.addToStudy( Vertex_3, 'Vertex_3' )
geompy.addToStudy( Vertex_4, 'Vertex_4' )
geompy.addToStudy( Vertex_5, 'Vertex_5' )
geompy.addToStudy( Vertex_6, 'Vertex_6' )
geompy.addToStudy( Vertex_7, 'Vertex_7' )
geompy.addToStudy( Vertex_8, 'Vertex_8' )
geompy.addToStudy( Vertex_9, 'Vertex_9' )
geompy.addToStudy( Vertex_10, 'Vertex_10' )
geompy.addToStudy( Vertex_11, 'Vertex_11' )
geompy.addToStudy( Vertex_12, 'Vertex_12' )
geompy.addToStudy( Edge_1, 'Edge_1' )
geompy.addToStudy( Edge_2, 'Edge_2' )
geompy.addToStudy( Edge_3, 'Edge_3' )
geompy.addToStudyInFather( Edge_1, Edge_1_vertex_2, 'Edge_1:vertex_2' )
geompy.addToStudy( Edge_4, 'Edge_4' )
geompy.addToStudy( Edge_5, 'Edge_5' )
geompy.addToStudy( Edge_6, 'Edge_6' )
geompy.addToStudy( Edge_7, 'Edge_7' )
geompy.addToStudyInFather( Edge_5, Edge_5_vertex_2, 'Edge_5:vertex_2' )
geompy.addToStudy( Edge_8, 'Edge_8' )
geompy.addToStudy( Edge_9, 'Edge_9' )
geompy.addToStudy( Edge_10, 'Edge_10' )
geompy.addToStudy( Edge_11, 'Edge_11' )
geompy.addToStudyInFather( Edge_9, Edge_9_vertex_2, 'Edge_9:vertex_2' )
geompy.addToStudy( Edge_12, 'Edge_12' )
#geompy.addToStudy( Face_1, 'Face_1' )

if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser(1)

Thank you in advance for any suggestions.
Best Regards,
Bill

nsf January 15, 2017 19:06

Hi bill,

Could it be because vertex5 and vertex8 have the exact same coordinates?

Best regards
Nicolas

6863523 January 16, 2017 05:22

rectangle function in Salome
 
1 Attachment(s)
Dear Nicolas,
Yes, you are right. I made a mistake about the vortex coordinates. I changed the coordinates and it works fine now.
Thank you.
Best Regards,
Bill

6863523 January 22, 2017 04:10

draw fine mesh in Salome
 
Dear,
I want to draw fine mesh of the structure mentioned above.
I have used the "traditional" approach (mesh: 3D extrusion, sub-meshes: 2D mesh front face, 2D projection to the back, 1D elements in the third direction).
However, if the number of the small squares increases, it is a nightmare to chose the edges in order to apply 1D elements in the third direction.

I wonder if you guys could give me some suggestions on how to draw finer mesh for this complex structure.
A sample of Salome file is also preferred.
Thank you in advance.
Best Regards,
Bill

LeeRuns March 18, 2017 09:00

I have built meshes with python scripts and ran them in salome. I built 3d geometry with the python script then made the men in the same script. Did u get that far?

I've never used submeshes so I cannot really help with that part.

Sent from my SM-G930V using CFD Online Forum mobile app


All times are GMT -4. The time now is 07:29.