python - Abaqus python脚本中的连接器位移分配-输入文件中的空元素
问题描述
我一直在尝试设置一个脚本来自动分配连接器位移边界条件。当我运行脚本时,它在 GUI 中看起来一切正常(创建了电线,创建了 BC 并分配了正确的值),但是当我提交时,我收到以下错误:“类型为“CONN3D2”的元素 x 缺少元素连接并且输入文件中实际上缺少元素连接性。我通过使用导线起点和终点之间的中点来分配边,但由于某种原因,它没有将它们分配给元素。这是我的连接器分配功能:
def assignConnectors(self):
p = self.m.parts[self.partName]
a = self.m.rootAssembly
a.Instance(name=self.instanceName, part=p, dependent=ON)
e = a.edges
n = a.instances[self.instanceName].nodes
#allelements = p.Set(name='allElements', elements=self.listObjElem)
elset = a.instances[self.instanceName].elements
elsetAssembly = a.Set('assemblyElements', elements=elset)
a.regenerate()
v1 = a.instances[self.instanceName].vertices
rows = len(self.listConstraints)
columns = len(self.listConstraints[0])
total = rows*columns
listObjNode=[];
self.listObjElem=[];
self.listObjConnector=[];
for j,pairElem in enumerate(self.listElem):
p1 = a.getCoordinates(self.listNodes[pairElem[0]-1])
p2 = a.getCoordinates(self.listNodes[pairElem[1]-1])
#print(p1,p2)
wires = a.WirePolyLine(points=((p1,p2),), mergeType=IMPRINT, meshable=OFF)
a.regenerate()
pt1 = a.getCoordinates(self.listNodes[pairElem[0]-1])
pt2 = a.getCoordinates(self.listNodes[pairElem[1]-1])
print(pt1,pt2)
pt11 = np.asarray(pt1[0])
pt12 = np.asarray(pt1[1])
pt13 = np.asarray(pt1[2])
pt21 = np.asarray(pt2[0])
pt22 = np.asarray(pt2[1])
pt23 = np.asarray(pt2[2])
new_p1 = (pt11+pt21)/2
new_p2 = (pt12+pt22)/2
new_p3 = (pt13+pt23)/2
new_p = tuple([new_p1,new_p2,new_p3])
print(new_p)
a = self.m.rootAssembly
e = a.edges
edges1 = e.findAt((new_p, ))
print(edges1)
region = a.Set(edges = edges1, name='Set'+str(j))
self.m.ConnectorSection(name='ConnSect-1'+str(j),translationalType=AXIAL)
csa = a.SectionAssignment(sectionName='ConnSect-1'+str(j), region=region)
self.m.ConnDisplacementBC(name='BC-'+str(j+total), createStepName=self.stepName, fastenerSetName='Set'+str(j), u1=float(self.listElongations[j]), u2=UNSET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM)
a.regenerate()
我是否以某种方式错误地分配了元素?非常感谢您的帮助!
解决方案
推荐阅读
- python - 如何通过代码或算法重新启动内核并重新运行 Python Jupyter notebook 中的所有单元?
- c# - C# lambda 空条件
- reactjs - react-router 更改 URL 但不渲染组件
- lmdb - 在同一个客户端进程中打开多个 lmdb 环境是否具有合法用例或是否多余?
- python - 无法以某种自定义方式排列抓取的内容
- c++ - 将模板类定义与声明分离 - 显式实例化
- java - 如何找出加载了哪个 Log4j 配置?
- node.js - 在mongodb nodejs中迭代更新对象数组
- java - 将分页库 3 与来自 Java 的 LiveData 一起使用
- python - 用户未进行身份验证