/PMACRO
FINISH
/CLEAR    !ANSYSڴ
*AFUN,DEG !ýǶȵλ
!ģͻ
*SET,Kn,6   !ÿǵ
*SET,Nx,16  !Ȧ
*SET,f,17.025   !ʸ
*SET,Span,92 !ÿ
!
*dim,numnode,,Nx,1     !ÿȦڵ
*do,i,1,Nx,1
*set,numnode(i),Kn*i
*enddo
*dim,num,,Nx+1,1     !ÿȦڵ,ĵ㵥ΪһȦ
*set,num(1),1
*do,i,2,Nx+1,1
*set,num(i),num(i-1)+numnode(i-1)
*enddo
!ǰģ
/prep7
et,1,beam4   ϲǽṹĵԪ
mp,ex,1,2.06e11  !ֹܵĲϵĵģ
mp,dens,1,7850  !ֹܵĲϵܶ
mp,alpx,1,1.2e-5  !ֹܵĲϵ¶ϵ
mp,prxy,1,0.3   !ֹܵĲϵĲɱ
r,1,37.13e-4,1803.07e-8,1803.07e-8,0.203,0.203  !p203x6
!*****************************************ϲ㵥ǵԪ
!ҽڵ
CSYS,2                       !תΪϵ
R=(Span*Span/4+f*f)/(2*f)    !ʸߺͿȼ뾶R
DPha=Atn(Span/2/Sqrt(R*R-Span*Span/4))/Nx  !Ȧ˶ӦļнDpha
N,1,R,0,90                  ! 嶥1ŽڵλΪR,0,90
*DO,i,1,Nx                  ! 1NxȦĽڵѭ
*DO,j,1,Kn*i                ! ԳĽڵѭ,iȦɷΪKn*i
    x=R                     ! x
    y=(j-1)*360/(Kn*i)      ! y꣬ȦϵĽڵĿΪKnȦ
    z=90-i*DPha             ! z
N,1+Kn*(i-1)*i/2+j,x,y,z    ! μ㲢ڵıźλ
*ENDDO
*ENDDO
local,11,1,0,0,0
csys,11
!ϲ
type,1  
mat,1   
real,1 
*DO,i,1,Kn  
E,1,1+i 
*ENDDO  
*DO,j,1,Nx  
*DO,i,1,Kn*j-1  
E,1+Kn*(j-1)*j/2+i,1+Kn*(j-1)*j/2+i+1   
*ENDDO  
E,1+Kn*(j-1)*j/2+1,1+Kn*(j-1)*j/2+Kn*j  
*ENDDO  
*Do,j,1,Nx-1
*Do,k,1,Kn  
*Do,i,1,j+1 
*If,i,eq,j+1,then   
*If,k,eq,Kn,Then
E,1+Kn*(j-1)*j/2+1,1+Kn*(j+1)*j/2+(k-1)*(j+1)+i 
*else   
E,1+Kn*(j-1)*j/2+(k-1)*j+i,1+Kn*(j+1)*j/2+(k-1)*(j+1)+I 
*Endif  
*Else   
E,1+Kn*(j-1)*j/2+(k-1)*j+i,1+Kn*(j+1)*j/2+(k-1)*(j+1)+I 
*EndIf  
*Enddo  
*Do,i,1,j   
E,1+Kn*(j-1)*j/2+(k-1)*j+i,1+Kn*(j+1)*j/2+(k-1)*(j+1)+i+1   
*Enddo  
*Enddo  
*Enddo
!ЧӦԪSURF154
local,11,0,0,0,0
ET,10,SURF154,,1,,1            !浥Ԫsurf154 
R,10,,,,,,,0.1,0.1,0.1         !ʵ
MP,DENS,10,0                   !ܶ
TYPE,10                        !õԪ
MAT,10                         !ò
REAL,10                        !ʵ
esys,11
ENUMmax1=ELMIQR(0,14)+1           !ҵһ˵Ԫ,֪һ浥Ԫı
*DO,j,1,Kn-1                   !ӶһȦγ浥Ԫ
  E,1,j+1,j+2
*ENDDO
 E,1,Kn+1,2
*DO,i,1,Nx-1     ! Ȧ2ȦʼȦѭ
*DO,j,1,Kn       ! ԸԳѭ
*DO,k,1,i+1      ! ÿԳڵĸѭ
 *IF,k,EQ,i+1,THEN    ! жǷǵǰԳڵһ
  *IF,j,EQ,Kn,THEN   ! жǷһԳ
    E,1+Kn*(i-1)*i/2+1,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k,1+Kn*(i+1)*i/2+1
! 1ڵһڵӦĵԪ
  *ELSE
  E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1   
!һڵһ˶ӦĵԪ
  *ENDIF
 *ELSE
 E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1   
! һ˶ӦĵԪ
 *ENDIF
*ENDDO
*DO,k,1,i
 *IF,k,EQ,i,then
  *IF,j,EQ,Kn,then
   E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1,1+Kn*(i-1)*i/2+1
  *ELSE
  E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1,1+Kn*(i-1)*i/2+(j-1)*i+k+1    
! һ㸺˶ӦԪ
  *ENDIF
 *ELSE
 E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1,1+Kn*(i-1)*i/2+(j-1)*i+k+1    
! һ㸺˶ӦԪ
 *ENDIF
*ENDDO
*ENDDO
*ENDDO
ENUMmax2=ELMIQR(0,14)           !ҵһ˵Ԫ,֪һ浥Ԫı

!Լн
*DO,i,1, 1+Kn*(Nx-1)*Nx/2+Kn*Nx               
    D,i,UX,0                        ! Լ
    D,i,UY,0
    D,i,UZ,0
*ENDDO

local,13,2,0,0,0   !ֲϵ13ԭΪ0,0,-30֧񷶥ǵ
csys,13            !ֲϵ13Ϊǰϵ
*AFUN,DEG          !ANSYSĽǶȵλΪǶ
!numwu֧񷶥ṹıЧӦԪϵ
*dim,numwu,,ENUMmax2  
*do,i,ENUMmax1,ENUMmax2,1  !SURF154ЧӦԪENUMmax1ENUMmax2ѭ
*get,mz,elem,i,cent,z      !ȡЧӦԪIĵZ
*set,numwu(i),90-mz        !ЧӦԪIϵֵnumwu(i)
*enddo
!ЧӦԪķѹֵֵʩӦıЧӦԪϡ
*set,v_windup,1.5*1.61*500*(-1)    
*do,i,ENUMmax1,ENUMmax2,1
SFE,i,1,PRES,,v_windup*cos(numwu(i))**2
*enddo
!нԼľ
FINISH           !˳ǰģ
/SOLU            !
SOLVE            !
FINISH           !˳
/post1           !
set,last
Num_node=ndinqr(0,12)
!ȡЧ
rsys,0                 !ϵתѿϵ
*DIM,Force_X,,Num_node  !X֧,ڴ洢X֧
*DIM,Force_y,,Num_node  !Y֧,ڴ洢Y֧ 
*DIM,Force_z,,Num_node  !Z֧,ڴ洢Z֧
*DO,i,1,Num_node,1      !нѭ
   *GET,Force_X(i),NODE,i,RF,FX!ȡXֵ֧X֧
   *GET,Force_Y(i),NODE,i,RF,FY!ȡYֵ֧Y֧
   *GET,Force_Z(i),NODE,i,RF,FZ!ȡZֵ֧Z֧
*ENDDO

!дʩӵЧصļpermanent.mac
*DIM,Array_PreName,CHAR,Num_node      !һάַ
*DIM,Node_Num,ARRAY,Num_node          !һάΪ
*DIM,Array_PostName,CHAR,Num_node,4   !άַ
*DO,i,1,Num_node
   *SET,Array_PreName(i),'f,'        !һάַ鸳ַ'f,'
   *SET,Node_Num(i),i                !鸳
   *SET,Array_PostName(i,1),',fx,'   !άַĵһиַ',fx,'
   *SET,Array_PostName(i,2),',fy,'   !άַĵڶиַ',fy,'
   *SET,Array_PostName(i,3),',fz,'   !άַĵиַ',fz,'
   *SET,Array_PostName(i,4),'*arg1'
*ENDDO
*CFOPEN,E:\BOOK_APDL\chapter_5\exzample5.3\permanent,mac      
!ڱĿ¼´/ļequiforce.mac
*VWRITE,Array_PreName(1),Node_Num(1),Array_PostName(1,1),Force_X(1),Array_PostName(1,4)    
(a2,f4.0,a4,f16.8,a5)   ! ոʽ˳дļ,㸳XЧ.趨һַܳ6ַ,ڶַܳ6λ,ַܳ6ַ,ĸַܳ16λ,С8λ
*VWRITE,Array_PreName(1),Node_Num(1),Array_PostName(1,2),Force_Y(1),Array_PostName(1,4)  
(a2,f4.0,a4,f16.8,a5)  !ոʽ˳дļ,㸳YЧ
*VWRITE,Array_PreName(1),Node_Num(1),Array_PostName(1,3),Force_Z(1),Array_PostName(1,4)   
(a2,f4.0,a4,f16.8,a5)   !ոʽ˳дļ,㸳ZЧ
*CFCLOS
