/PMACRO
FINISH        
/CLEAR           !ANSYSڴ
*AFUN,DEG        !ýǶȵλ
/FILENAME, suspendome             !幤ļ
/TITLE, the model of suspendome   !幤
!1ģͻ
*SET,Kn,6        !ÿǵ
*SET,Nx,16       !Ȧ
*SET,f,17.025    !ʸ
*SET,Span,92     !ÿ
!2֧񷶥ṹϲǵļβ
*DIM,numnode,,Nx,1     !嵥ÿȦڵ
*DO,i,1,Nx,1
*SET,numnode(i),Kn*i   !㵥ÿȦĸֵ
*ENDDO
*DIM,num,,Nx+1,1     !ÿȦڵ,ĵ㵥ΪһȦ
*SET,num(1),1         !һȦĵ㣩ڵΪ1
*DO,i,2,Nx+1,1
*SET,num(i),num(i-1)+numnode(i-1) !IȦĵڵŲֵnum
*ENDDO
/PREP7          !ǰģ
!3嵥Ԫ͡Ժ͸˼ʵ
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
!ϲ㵥ǵԪ
!4ҽڵ
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      !ԭ㴦һϵΪ11
CSYS,11               !ֲϵ11
!5ϲǸ˼
TYPE,1        !õǰĵԪΪ1
MAT,1         !õǰĲԱΪ1
REAL,1        !õǰʵΪ1
! 
*DO,i,1,Nx                              !1NxȦĽѭ
*DO,j,1,Kn*i-1                          !1Kn*i-1ԳĽѭ
E,1+Kn*(i-1)*i/2+j,1+Kn*(i-1)*i/2+j+1   !ɵԪ
*ENDDO
E,1+Kn*(i-1)*i/2+1,1+Kn*(i-1)*i/2+Kn*i  !һԳĻ
*ENDDO
! ĵԪ
*DO,i,1,Kn                              !ԸԳѭ
E,1,1+i                                 !Ĵ˵Ԫ
*ENDDO
*DO,j,1,Nx-1                            !Ȧ2ȦʼȦѭ
*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 
!1һ
*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

!(6)ЧӦԪSURF154
local,11,0,0,0,0               !һֲϵñΪ11
ET,10,SURF154,,1,,1            !ĵԪΪSURF154 
R,10,,,,,,,0.1,0.1,0.1         !SURF154Ԫʵ
MP,DENS,10,0                   !URF154ԪĲܶ
TYPE,10                        !õǰĵԪ
MAT,10                         !õǰĲ
REAL,10                        !õǰʵ
esys,11                        !õԪϵΪֲϵ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)           !ҵһ˵Ԫ,֪һ浥Ԫı

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


!(8)ʩ
MULTIPRO,'START',1                            ! ɺԻ
    *CSET,1,3,P,'Surface LoadN/O',2000
    *CSET,61,62,'Please Input Surface Load Value:'
MULTIPRO,'END'
*DO,i, ENUMmax1, ENUMmax2,1
 SFE,i,3,PRES,, P
*ENDDO

!(9)нԼµľ
FINISH           !˳ǰģ
/SOLU            !
SOLVE            !
FINISH           !˳
/post1           !
set,last         !ѡһزļ
Num_node=ndinqr(0,12)   !ȡڵ㶨ĿֵNum_node
!(10)ȡЧ
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

!(11)дʩӵЧصļ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\dead_load,mac      
!(12)ڱĿ¼´/ļdead_load.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
