/nopr
! Ферма трапециедальная двускатная или
! с параллельными поясами и треугольной решеткой
! ----------------------------------------------------
! Локальные переменные:
! arg1 - высота фермы
! arg2 - ширина панели
! arg3 - количество панелей
! arg4 - уклон поясов
! -------------------------
finish
/prep7
! блок создания узловых точек
ar20=0
*dim,kpnp,,(arg3+1)
*do,ar21,1,(arg3+1) ! нижний пояс
k,,ar20
kpnp(ar21)=kp(ar20,0,0) ! узловые точки нижнего пояса в массив
ar20=ar20+arg2
*enddo
*get,ar22,kp,,num,maxd ! номер последней узловой точки н.п.
ar23=ar22-(ar21-1) ! номер начальной узловой точки н.п.
ar20=0
*dim,kpvp,,(arg3+2)
*do,ar21,1,(arg3+2) ! верхний пояс
*if,ar21,eq,2,then
ar20=arg2/2
*elseif,ar21,eq,(arg3+2)
ar20=arg2*arg3
*endif
*if,ar20,le,(arg2*arg3/2),then ! уклон
ar30=arg1+ar20*arg4
*else
ar30=arg1+(arg2*arg3-ar20)*arg4
*endif
k,,ar20,ar30
kpvp(ar21)=kp(ar20,ar30,0) ! узловые точки верхнего пояса в массив
ar20=ar20+arg2
*enddo
ar24=ar22+1 ! номер начальной узловой точки в.п.
! блок создания геометрии стержней
ar25=ar23
ar26=ar25+1
*do,ar21,1,arg3 ! нижний пояс
lstr,ar25,ar26
ar25=ar26
ar26=ar26+1
*enddo
ar25=ar24
ar26=ar25+1
*do,ar21,1,(arg3+1) ! верхний пояс
lstr,ar25,ar26
ar25=ar26
ar26=ar26+1
*enddo
ar25=ar23
ar26=ar24+1
*do,ar21,1,arg3 ! раскосы
lstr,ar25,ar26
lstr,ar26,(ar25+1)
ar25=ar25+1
ar26=ar26+1
*enddo
ar25=ar23
ar26=ar24
lstr,ar25,ar26 ! стойки
lstr,(ar25+arg3),(ar26+arg3+1)
/go |