2016-09-22 2 views
0

나는 python 스크립트를 사용하여 요소 또는 요소 노드 스트레스 값 (unaveraged)을 읽는 방법을 안다.python 스크립트를 사용하여 abaqus odb 파일에서 평균 절점 응력을 읽는 방법은 무엇입니까?

field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4') 

하지만 노드의 평균 스트레스 값을 원합니다. 참고로, odb에는 스트레스에 대한 노드 위치 데이터가 없습니다 (즉, position = NODAL).

+0

'position = NODAL'을 지정하면 Abaqus는 INTEGRATION_POINT의 값을 보간해야합니다. – hgazibara

+0

hi @hgazibara, 답장을 보내 주셔서 감사합니다. 하지만 작동하지 않습니다. 나는 position = NODAL을 사용할 때 빈 배열을 얻는다. –

+0

어떻게'region'을 정의 했습니까? 요소 집합, 노드 집합입니까? ...? – hgazibara

답변

0

이것은 이것이해야 할 일보다 더 귀찮은 일 중 하나입니다. 당신이 xydata을 만들어야합니다

session.xyDataListFromField(odb=odb, 
     outputPosition=ELEMENT_NODAL, 
     variable=(('S', INTEGRATION_POINT),), 
     elementSets=('PART-1-1.SETNAME',)) 

이 모든 요소의 모든 노드 모든 스트레스 구성 요소에 대한 객체와 사전을 만들어 (즉 거대한.).

session.xyDataObjects['S:S11 PI:PART-1-1 E: 15 N:2'].data 

당신이 중 하나를 문자열을 구성 할 필요가 스크립트에서 데이터를 사용하려면 요소 (15)와 연결된 노드 2의 11 스트레스 구성 요소를 제공합니다, 또는 : 불행하게도 사전은 예를 들어, 성가신 설명 문자열에 의해 키가 있습니다 사전을 반복하고 각 객체에 대해 positionDescription을 구문 분석하십시오.

편집 : 노드 평균을 거의 같게하려면 편집하십시오.

session.xyDataListFromField(odb=odb, 
     outputPosition=NODAL, 
     variable=(('S', INTEGRATION_POINT),), 
     nodeSets=('PART-1-1.SETNAME',)) 

및 사전 개체는 같은 키가 있습니다 : 당신은 할 여러 session.xyDataListFromField 통화를 발행 할 수

session.xyDataObjects['S:S11 (Avg: 75%) PI:PART-1-1 N:2'].data 

참고하고 스트레스를 원하는 당신을 변형하는 경우 모든 데이터는 예를 들어 (xyDataObjects로 전환 한 번에 모두를 처리 할 수 ​​있습니다) 완성도를 들어

, 당신은 단지 특정 구성 요소 (들 원하는 경우) 요청하실 수 있습니다으로 :.

variable=(('S', INTEGRATION_POINT,((COMPONENT, 'S11'),)),) 
+0

고마워요 @ 에이전트,하지만 고유 한 노드 값이 필요합니다. odb 표시 객체에서 고유 한 노드 응력 값을 얻을 수 있습니까? –

+0

gotcha, 편집을 참조하십시오. – agentp

관련 문제