Add scripts and inp files.

This commit is contained in:
James Grogan 2024-05-13 20:50:21 +01:00
parent ad937f2602
commit e19f869a1e
390 changed files with 6580687 additions and 10 deletions

View file

@ -0,0 +1,215 @@
# 3D PCBs - JGrogan - V1.0
# V1.0 - Ceated: 18-02-12
from abaqus import *
from abaqusConstants import *
#
zModel=mdb.models['Model-1']
zAssembly=zModel.rootAssembly
zInstance=zAssembly.instances['Part-1-1']
#
# Enter Node Selection Tolerance and a 'Big' Number
Toler=1.e-6
BigNum=1.e6
# Characterize Part
XMax=-BigNum
YMax=-BigNum
ZMax=-BigNum
XMin=BigNum
YMin=BigNum
ZMin=BigNum
for eachNode in zInstance.nodes:
XCor=eachNode.coordinates[0]
YCor=eachNode.coordinates[1]
ZCor=eachNode.coordinates[2]
if XCor>XMax:
XMax=XCor
elif XCor<XMin:
XMin=XCor
if YCor>YMax:
YMax=YCor
elif YCor<YMin:
YMin=YCor
if ZCor>ZMax:
ZMax=ZCor
elif ZCor<ZMin:
ZMin=ZCor
#
# Distribute Nodes into Sets
for eachNode in zInstance.nodes:
XCor=eachNode.coordinates[0]
YCor=eachNode.coordinates[1]
ZCor=eachNode.coordinates[2]
# Front Face, Edges and Nodes
if(XCor<XMax+Toler)and(XCor>XMax-Toler):
if(YCor<YMax+Toler)and(YCor>YMax-Toler):
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='B',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='C',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeBC', sets=(zAssembly.sets['EdgeBC'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeBC',nodes=Node)
elif(YCor<YMin+Toler)and(YCor>YMin-Toler):
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='B1',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='C1',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeB1C1', sets=(zAssembly.sets['EdgeB1C1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeB1C1',nodes=Node)
elif(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeBB1', sets=(zAssembly.sets['EdgeBB1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeBB1',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeCC1', sets=(zAssembly.sets['EdgeCC1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeCC1',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='FaceFront', sets=(zAssembly.sets['FaceFront'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='FaceFront',nodes=Node)
# Back Face, Edges and Nodes
elif(XCor<XMin+Toler)and(XCor>XMin-Toler):
if(YCor<YMax+Toler)and(YCor>YMax-Toler):
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='A',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='D',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeAD', sets=(zAssembly.sets['EdgeAD'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeAD',nodes=Node)
elif(YCor<YMin+Toler)and(YCor>YMin-Toler):
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='A1',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='D1',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeA1D1', sets=(zAssembly.sets['EdgeA1D1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeA1D1',nodes=Node)
elif(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeAA1', sets=(zAssembly.sets['EdgeAA1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeAA1',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeDD1', sets=(zAssembly.sets['EdgeDD1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeDD1',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='FaceRear', sets=(zAssembly.sets['FaceRear'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='FaceRear',nodes=Node)
# Top Face and Edges
elif(YCor<YMax+Toler)and(YCor>YMax-Toler):
if(XCor<XMax-Toler)and(XCor>XMin+Toler):
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeAB', sets=(zAssembly.sets['EdgeAB'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeAB',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeCD', sets=(zAssembly.sets['EdgeCD'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeCD',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='FaceTop', sets=(zAssembly.sets['FaceTop'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='FaceTop',nodes=Node)
# Bottom Face and Edges
elif(YCor<YMin+Toler)and(YCor>YMin-Toler):
if(XCor<XMax-Toler)and(XCor>XMin+Toler):
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeA1B1', sets=(zAssembly.sets['EdgeA1B1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeA1B1',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='EdgeC1D1', sets=(zAssembly.sets['EdgeC1D1'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='EdgeC1D1',nodes=Node)
else:
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='FaceBottom', sets=(zAssembly.sets['FaceBottom'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='FaceBottom',nodes=Node)
# Left Face
elif(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
if(XCor<XMax-Toler)and(XCor>XMin+Toler)and(YCor>YMin+Toler)and(YCor>YMin+Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='FaceLeft', sets=(zAssembly.sets['FaceLeft'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='FaceLeft',nodes=Node)
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
if(XCor<XMax-Toler)and(XCor>XMin+Toler)and(YCor>YMin+Toler)and(YCor>YMin+Toler):
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
zAssembly.Set(name='Temp',nodes=Node)
try:
zAssembly.SetByMerge(name='FaceRight', sets=(zAssembly.sets['FaceRight'],zAssembly.sets['Temp']))
except:
zAssembly.Set(name='FaceRight',nodes=Node)
# Clean Up
del zAssembly.sets['Temp']

View file

@ -0,0 +1,261 @@
# 3D PCBs - JGrogan - V1.0
# V1.0 - Ceated: 18-02-12
from abaqus import *
from abaqusConstants import *
#
# Define Tolerance for Node Matching:
Toler = 0.0001
#
zModel=mdb.models['Model-1']
zAssembly=zModel.rootAssembly
#
# Constraints
for j in range(0,3):
if j == 0:
Name1='FaceBottom'
Name2='FaceTop'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=-1.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 1:
Name1='FaceFront'
Name2='FaceRear'
Coeff11=1.
Coeff12=-1.
Coeff13=-1.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 2:
Name1='FaceLeft'
Name2='FaceRight'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 3:
Name1='EdgeCC1'
Name2='EdgeBB1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 4:
Name1='EdgeBB1'
Name2='EdgeAA1'
Coeff11=1.
Coeff12=-1.
Coeff13=-1.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 5:
Name1='EdgeAA1'
Name2='EdgeDD1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 6:
Name1='EdgeCD'
Name2='EdgeAB'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 6:
Name1='EdgeAB'
Name2='EdgeA1B1'
Coeff11=-1.
Coeff12=1.
Coeff13=0.
Coeff21=-1. #
Coeff22=1.
Coeff23=-1.
Coeff31=-1. #
Coeff32=-1.
Coeff33=0.
elif j == 7:
Name1='EdgeA1B1'
Name2='EdgeC1D1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 7:
Name1='EdgeAD'
Name2='EdgeBC'
Coeff11=-1.
Coeff12=1.
Coeff13=-1.
Coeff21=-1. #
Coeff22=1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 8:
Name1='EdgeBC'
Name2='EdgeB1C1'
Coeff11=-1.
Coeff12=1.
Coeff13=0.
Coeff21=-1. #
Coeff22=1.
Coeff23=-1.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 8:
Name1='EdgeB1C1'
Name2='EdgeA1D1'
Coeff11=1.
Coeff12=-1.
Coeff13=-1.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 9:
Name1='B'
Name2='C'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 10:
Name1='A'
Name2='D'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=-1. #
Coeff22=1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 11:
Name1='C'
Name2='C1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=1.
Coeff31=1. #
Coeff32=-1.
Coeff33=-0.
elif j == 12:
Name1='D'
Name2='D1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=1.
Coeff31=1. #
Coeff32=-1.
Coeff33=-0.
elif j == 13:
Name1='C1'
Name2='B1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 14:
Name1='D1'
Name2='A1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 15:
Name1='A1'
Name2='B1'
Coeff11=-1.
Coeff12=1.
Coeff13=-1.
Coeff21=-1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
i=1
entity1=zAssembly.sets[Name1].nodes
entity2=zAssembly.sets[Name2].nodes
for eachNode1 in entity1:
cor1x=eachNode1.coordinates[0]
cor1y=eachNode1.coordinates[1]
cor1z=eachNode1.coordinates[2]
for eachNode2 in entity2:
distx=abs(cor1x-eachNode2.coordinates[0])
disty=abs(cor1y-eachNode2.coordinates[1])
distz=abs(cor1z-eachNode2.coordinates[2])
if (distx<Toler and disty<Toler)or(disty<Toler and distz<Toler)or(distx<Toler and distz<Toler) :
Node1=entity1.sequenceFromLabels(labels=(eachNode1.label,))
Node2=entity2.sequenceFromLabels(labels=(eachNode2.label,))
ZAssembly.Set(name=Name1+str(i),nodes=Node1)
ZAssembly.Set(name=Name2+str(i),nodes=Node2)
ZModel.Equation(name=Name1+Name2+'1'+str(i),terms=((Coeff11,Name1+str(i),1),(Coeff12,Name2+str(i),1),(Coeff13,'Dummy',1)))
ZModel.Equation(name=Name1+Name2+'2'+str(i),terms=((Coeff21,Name1+str(i),2),(Coeff22,Name2+str(i),2),(Coeff23,'Dummy',2)))
ZModel.Equation(name=Name1+Name2+'3'+str(i),terms=((Coeff31,Name1+str(i),3),(Coeff32,Name2+str(i),3),(Coeff33,'Dummy',3)))
i=i+1

View file

@ -0,0 +1,261 @@
# 3D PCBs - JGrogan - V1.0
# V1.0 - Ceated: 18-02-12
from abaqus import *
from abaqusConstants import *
#
# Define Tolerance for Node Matching:
Toler = 0.0001
#
zModel=mdb.models['Model-1']
zAssembly=zModel.rootAssembly
#
# Constraints
for j in range(0,19):
if j == 0:
Name1='FaceBottom'
Name2='FaceTop'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=-1.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 1:
Name1='FaceFront'
Name2='FaceRear'
Coeff11=1.
Coeff12=-1.
Coeff13=-1.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 2:
Name1='FaceLeft'
Name2='FaceRight'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 3:
Name1='EdgeCC1'
Name2='EdgeBB1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 4:
Name1='EdgeBB1'
Name2='EdgeAA1'
Coeff11=1.
Coeff12=-1.
Coeff13=-1.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 5:
Name1='EdgeAA1'
Name2='EdgeDD1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 6:
Name1='EdgeCD'
Name2='EdgeAB'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 7:
Name1='EdgeAB'
Name2='EdgeA1B1'
Coeff11=-1.
Coeff12=1.
Coeff13=0.
Coeff21=-1. #
Coeff22=1.
Coeff23=-1.
Coeff31=-1. #
Coeff32=1.
Coeff33=0.
elif j == 8:
Name1='EdgeA1B1'
Name2='EdgeC1D1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 9:
Name1='EdgeAD'
Name2='EdgeBC'
Coeff11=-1.
Coeff12=1.
Coeff13=-1.
Coeff21=-1. #
Coeff22=1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 10:
Name1='EdgeBC'
Name2='EdgeB1C1'
Coeff11=-1.
Coeff12=1.
Coeff13=0.
Coeff21=-1. #
Coeff22=1.
Coeff23=-1.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 11:
Name1='EdgeB1C1'
Name2='EdgeA1D1'
Coeff11=1.
Coeff12=-1.
Coeff13=-1.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
elif j == 12:
Name1='B'
Name2='C'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 13:
Name1='A'
Name2='D'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=-1. #
Coeff22=1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=-1.
elif j == 14:
Name1='C'
Name2='C1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=1.
Coeff31=1. #
Coeff32=-1.
Coeff33=-0.
elif j == 15:
Name1='D'
Name2='D1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=1.
Coeff31=1. #
Coeff32=-1.
Coeff33=-0.
elif j == 16:
Name1='C1'
Name2='B1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 17:
Name1='D1'
Name2='A1'
Coeff11=1.
Coeff12=-1.
Coeff13=0.
Coeff21=1. #
Coeff22=-1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=1.
elif j == 18:
Name1='A1'
Name2='B1'
Coeff11=-1.
Coeff12=1.
Coeff13=-1.
Coeff21=-1. #
Coeff22=1.
Coeff23=0.
Coeff31=1. #
Coeff32=-1.
Coeff33=0.
i=1
entity1=zAssembly.sets[Name1].nodes
entity2=zAssembly.sets[Name2].nodes
for eachNode1 in entity1:
cor1x=eachNode1.coordinates[0]
cor1y=eachNode1.coordinates[1]
cor1z=eachNode1.coordinates[2]
for eachNode2 in entity2:
distx=abs(cor1x-eachNode2.coordinates[0])
disty=abs(cor1y-eachNode2.coordinates[1])
distz=abs(cor1z-eachNode2.coordinates[2])
if (distx<Toler and disty<Toler)or(disty<Toler and distz<Toler)or(distx<Toler and distz<Toler):
Node1=entity1.sequenceFromLabels(labels=(eachNode1.label,))
Node2=entity2.sequenceFromLabels(labels=(eachNode2.label,))
zAssembly.Set(name='S'+Name1+str(i),nodes=Node1)
zAssembly.Set(name='S'+Name2+str(i),nodes=Node2)
zModel.Equation(name=Name1+Name2+'1'+str(i),terms=((Coeff11,'S'+Name1+str(i),1),(Coeff12,'S'+Name2+str(i),1),(Coeff13,'Dummy',1)))
zModel.Equation(name=Name1+Name2+'2'+str(i),terms=((Coeff21,'S'+Name1+str(i),2),(Coeff22,'S'+Name2+str(i),2),(Coeff23,'Dummy',2)))
zModel.Equation(name=Name1+Name2+'3'+str(i),terms=((Coeff31,'S'+Name1+str(i),3),(Coeff32,'S'+Name2+str(i),3),(Coeff33,'Dummy',3)))
i=i+1

View file

@ -0,0 +1,14 @@
from abaqusConstants import *
from abaqus import *
aModel=mdb.models['3D_Rad']
aAss=aMode.rootAsembly
aPart=aModel.parts['Mesh']
aSet=aAss.sets['Set-1']
aInst=aAss.instances['Mesh-1']
for eachnode in aSet.nodes:
theta=eachnode.coordinates[1]/Radius
newcoord1=eachnode.coordinates[0]
newcoord2=(Radius-eachnode.coordinates[2])*cos(theta)
newcoord3=(Radius-eachnode.coordinates[2])*sin(theta)
aPart.editNode(nodes=eachnode,coordinate1=newcoord1,coordinate2=newcoord2,
coordinate3=newcoord3)