2016-07-07 64 views
0

我檢查其標籤&他們在下面的代碼節點的座標的表面之下的元素,問題越來越節點座標的Abaqus的Python API

mySurf = mdb.models['Model-1'].rootAssembly.surfaces['Surf-1'] 
surfEls = mySurf.elements[:] 

surfNodes = [] 
for eNode in mySurf.nodes: 
    surfNodes.append(eNode.coordinates) 

此做一些事情,但是當我檢查每一個的大小然後我得到更多的元素標籤,而不是我做的節點座標集!

我也試過下面讓節點座標,

surfNodes = mySurf.nodes[:] 
surfNodesCoords = surfNodes.coordinates[:] 

但這只是拋出了一個錯誤,

AttributeError的: 'MeshSequence' 對象沒有屬性 '座標'

我承認我已經傻眼了。有沒有人對上面使用的方法有更深入的瞭解,誰能向我解釋這種行爲?

+0

我不關注,你困惑,元素數量不匹配的節點數量? – will

+0

不,我現在已經工作了,什麼是我的錯誤是,當你不能使用切片notaion – DrBwts

+0

你能編輯你的問題澄清請。你的附加列表包含一堆abaqus類型。如果你更新你的問題,那麼也許我們可以幫忙 – will

回答

1

問題是MeshSequenceObject沒有方法'座標'。但是,如果序列包含節點,則MeshSequenceObject的成員可能具有此方法。只要將其應用於序列的每個成員:

surfNodesCoords = [Node.coordinates for Node in SurfNodes] 

後者將與所有節點的座標列表。

P.S.問題的第一部分工作正常。節點的數量大於元素的數量。