# #-------------------------------------------------------- # LIBRARY #-------------------------------------------------------- # import os, tempfile import string from itertools import islice import salome import GEOM import math from salome.geom import geomBuilder salome.salome_init() geompy = geomBuilder.New(salome.myStudy) # #-------------------------------------------------------- # LECTURE .STEP #-------------------------------------------------------- # tmpdir = tempfile.mkdtemp() file = os.path.join(tmpdir, '/home/wilsonveloz/Bureau/Salome-Tests/Blade_10_MW_RTU/Salome-Meca-V2016/Blade_Composite_v2/DTU_10MW_refblade_structural.stp') Blade = geompy.ImportSTEP(file, True) geompy.addToStudy(Blade, 'Blade_10_MW_RWT') Faces = geompy.SubShapeAll(Blade, 4) #Faces # for i in range(len(Faces)): # geompy.addToStudy(Faces[i], 'Face_%s' %i) # Create Group of Faces Nose = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Leading_Panel_P = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Leading_Panel_S = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Web_A = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Cap_P = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Cap_S = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Web_B = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Trailing_Panel_P = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Trailing_Panel_S = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_A_P = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_A_S = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_B_S = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_B_P = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Web_C = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_C_S = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_C_P = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) Tail_V = geompy.CreateGroup(Blade, geompy.ShapeType['FACE']) # Adding Faces to groups FaceID = geompy.GetSubShapeID(Blade, Faces[10]) geompy.AddObject(Nose, FaceID) geompy.addToStudyInFather(Blade, Nose, 'Nose') FaceID = geompy.GetSubShapeID(Blade, Faces[9]) geompy.AddObject(Leading_Panel_P, FaceID) geompy.addToStudyInFather(Blade, Leading_Panel_P, 'Leading_Panel_P') FaceID = geompy.GetSubShapeID(Blade, Faces[6]) geompy.AddObject(Leading_Panel_S, FaceID) FaceID = geompy.GetSubShapeID(Blade, Faces[11]) geompy.AddObject(Leading_Panel_S, FaceID) geompy.addToStudyInFather(Blade, Leading_Panel_S, 'Leading_Panel_S') FaceID = geompy.GetSubShapeID(Blade, Faces[3]) geompy.AddObject(Web_A, FaceID) FaceID = geompy.GetSubShapeID(Blade, Faces[4]) geompy.AddObject(Web_A, FaceID) FaceID = geompy.GetSubShapeID(Blade, Faces[5]) geompy.AddObject(Web_A, FaceID) geompy.addToStudyInFather(Blade, Web_A, 'Web_A') FaceID = geompy.GetSubShapeID(Blade, Faces[7]) geompy.AddObject(Cap_P, FaceID) FaceID = geompy.GetSubShapeID(Blade, Faces[8]) geompy.AddObject(Cap_P, FaceID) geompy.addToStudyInFather(Blade, Cap_P, 'Cap_P') FaceID = geompy.GetSubShapeID(Blade, Faces[0]) geompy.AddObject(Cap_S, FaceID) FaceID = geompy.GetSubShapeID(Blade, Faces[1]) geompy.AddObject(Cap_S, FaceID) geompy.addToStudyInFather(Blade, Cap_S, 'Cap_S') FaceID = geompy.GetSubShapeID(Blade, Faces[3]) geompy.AddObject(Web_B, FaceID) geompy.addToStudyInFather(Blade, Web_B, 'Web_B') FaceID = geompy.GetSubShapeID(Blade, Faces[14]) geompy.AddObject(Trailing_Panel_P, FaceID) geompy.addToStudyInFather(Blade, Trailing_Panel_P, 'Trailing_Panel_P') FaceID = geompy.GetSubShapeID(Blade, Faces[15]) geompy.AddObject(Trailing_Panel_S, FaceID) geompy.addToStudyInFather(Blade, Trailing_Panel_S, 'Trailing_Panel_S') FaceID = geompy.GetSubShapeID(Blade, Faces[16]) geompy.AddObject(Tail_A_P, FaceID) geompy.addToStudyInFather(Blade, Tail_A_P, 'Tail_A_P') FaceID = geompy.GetSubShapeID(Blade, Faces[17]) geompy.AddObject(Tail_A_S, FaceID) geompy.addToStudyInFather(Blade, Tail_A_S, 'Tail_A_S') FaceID = geompy.GetSubShapeID(Blade, Faces[19]) geompy.AddObject(Tail_B_P, FaceID) geompy.addToStudyInFather(Blade, Tail_B_P, 'Tail_B_P') FaceID = geompy.GetSubShapeID(Blade, Faces[18]) geompy.AddObject(Tail_B_S, FaceID) geompy.addToStudyInFather(Blade, Tail_B_S, 'Tail_B_S') FaceID = geompy.GetSubShapeID(Blade, Faces[12]) geompy.AddObject(Web_C, FaceID) geompy.addToStudyInFather(Blade, Web_C, 'Web_C') FaceID = geompy.GetSubShapeID(Blade, Faces[21]) geompy.AddObject(Tail_C_P, FaceID) geompy.addToStudyInFather(Blade, Tail_C_P, 'Tail_C_P') FaceID = geompy.GetSubShapeID(Blade, Faces[20]) geompy.AddObject(Tail_C_S, FaceID) geompy.addToStudyInFather(Blade, Tail_C_S, 'Tail_C_S') FaceID = geompy.GetSubShapeID(Blade, Faces[13]) geompy.AddObject(Tail_V, FaceID) geompy.addToStudyInFather(Blade, Tail_V, 'Tail_V') Section = [Nose,Leading_Panel_P,Leading_Panel_S,Web_A,Cap_P,Cap_S,Web_B,Trailing_Panel_P, Trailing_Panel_S,Tail_A_P,Tail_A_S,Tail_B_S,Tail_B_P,Web_C,Tail_C_S,Tail_C_P,Tail_V] Names = ['Nose','Leading_Panel_P','Leading_Panel_S','Web_A','Cap_P','Cap_S', 'Web_B','Trailing_Panel_P','Trailing_Panel_S','Tail_A_P','Tail_A_S', 'Tail_B_S','Tail_B_P','Web_C','Tail_C_S','Tail_C_P','Tail_V'] dict_all_parts = {'Nose':Nose, 'Leading_Panel_P':Leading_Panel_P, 'Leading_Panel_S':Leading_Panel_S, 'Web_A':Web_A,'Cap_P':Cap_P,'Cap_S':Cap_S,'Web_B':Web_B,'Trailing_Panel_P':Trailing_Panel_P, 'Trailing_Panel_S':Trailing_Panel_S,'Tail_A_P':Tail_A_P,'Tail_A_S':Tail_A_S, 'Tail_B_S':Tail_B_S,'Tail_B_P':Tail_B_P,'Web_C':Web_C,'Tail_C_S':Tail_C_S, 'Tail_C_P':Tail_C_P,'Tail_V':Tail_V} # Section = [Nose,Leading_Panel_P] # Names = ['Nose','Leading_Panel_P'] # dict_all_parts = {'Nose':Nose, 'Leading_Panel_P':Leading_Panel_P} # #-------------------------------------------------------- # GEOMETRY #-------------------------------------------------------- # # # Lecture of all points to create the planes # filename = '/home/wilsonveloz/Bureau/Salome-Tests/Blade_10_MW_RTU/Salome-Meca-V2016/Blade_Composite_v2/composite_layup_Cap_P.txt' # fdata = [] # plane = range(100) # f = open(filename,'r') # for line in islice(f,5,105): # data = line.split(None) # fdata.append(map(float,data)) # f.close() # # Planes # vector = geompy.MakeVectorDXDYDZ(0, 0, 1) # for i in range(len(fdata)): # z = fdata[i][2] # pnt = geompy.MakeVertex (0, 0, z) # plane[i] = geompy.MakePlane (pnt, vector, 20) # # geompy.addToStudy(plane[i], "plane_%s" %i) # # Partition and Explode # part = {} # Folder = range(len(Section)) # for i in range(len(Section)): # for j in range(len(plane)): # if j == 0: # result = geompy.MakeHalfPartition(Section[i],plane[j]) # aux = geompy.MakeHalfPartition(Section[i],plane[j]) # else: # result = geompy.MakeHalfPartition(aux,plane[j]) # aux = result # if j == len(plane)-1: # geompy.addToStudyInFather(Section[i], result, 'Partition_%s' %(Names[i])) # part[Names[i]] = geompy.SubShapeAll(result, 4) # for name in part: # for i in range(len(part[name])): # geompy.addToStudyInFather(dict_all_parts[name], part[name][i], 'Explode_%s_%s' %(name,i)) # Lecture of all points to create the planes filename = '/home/wilsonveloz/Bureau/Salome-Tests/Blade_10_MW_RTU/Salome-Meca-V2016/Blade_Composite_v2/composite_layup_Cap_P.txt' fdata = [] plane = range(9) f = open(filename,'r') for line in islice(f,5,105): data = line.split(None) fdata.append(map(float,data)) f.close() # Planes vector = geompy.MakeVectorDXDYDZ(0, 0, 1) for i in range(9): z = fdata[(i+1)*10][2] pnt = geompy.MakeVertex (0, 0, z) plane[i] = geompy.MakePlane (pnt, vector, 20) # geompy.addToStudy(plane[i], "plane_%s" %i) # Partition and Explode part = {} Folder = range(len(Section)) for i in range(len(Section)): for j in range(len(plane)): if j == 0: result = geompy.MakeHalfPartition(Section[i],plane[j]) aux = geompy.MakeHalfPartition(Section[i],plane[j]) else: result = geompy.MakeHalfPartition(aux,plane[j]) aux = result if j == 8: geompy.addToStudyInFather(Section[i], result, 'Partition_%s' %(Names[i])) part[Names[i]] = geompy.SubShapeAll(result, 4) for name in part: for i in range(len(part[name])): geompy.addToStudyInFather(dict_all_parts[name], part[name][i], 'Explode_%s_%s' %(name,i)) # #------------------------------------------------------------------------------------------------------ # END #------------------------------------------------------------------------------------------------------ #
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question