# 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