搜档网
当前位置:搜档网 › 数据结构(5)_文件压缩

数据结构(5)_文件压缩

数据结构(5)_文件压缩
数据结构(5)_文件压缩

数据结构实验报告

实验名称:文件压缩

实验类型:综合性试验

班级:20112111

学号:2011211107

姓名:冯若航

实验日期:2003.6.19 下午4:00

1.问题描述

文件压缩

①基本要求

哈夫曼编码是一种常用的数据压缩技术,对数据文件进行哈夫曼编码可大大缩短文件的传输长度,提高信道利用率及传输效率。要求采用哈夫曼编码原理,统计文本文件中字符出现的词频,以词频作为权值,对文件进行哈夫曼编码以达到压缩文件的目的,再用哈夫曼编码进行译码解压缩。

●统计待压缩的文本文件中各字符的词频,以词频为权值建立哈夫曼树,

并将该哈夫曼树保存到文件HufTree.dat中。

●根据哈夫曼树(保存在HufTree.dat中)对每个字符进行哈夫曼编码,并

将字符编码保存到HufCode.txt文件中。

●压缩:根据哈夫曼编码,将源文件进行编码得到压缩文件CodeFile.dat。

●解压:将CodeFile.dat文件利用哈夫曼树译码解压,恢复为源文件。

2.数据结构设计

此类问题,应设计文件的数据结构。

* 4 压缩头标记

* 1 文件名长度

* ns 文件名

* 4 源文件长度

* 1020 huffman树

* 1021~EOF 文件内容

赫夫曼树节点的数据结构

typedef struct node

{

long w; //权

short p,l,r; //父亲,左孩子,右孩子

}HTNODE,*HTNP; //霍夫曼树的结点

赫夫曼编码数组元素的数据结构设计

typedef struct huffman_code

{

BYTE len; //长度

BYTE *codestr; //字符串

}HFCODE; //霍夫曼编码数组元素

3.算法设计

源代码

#define_CRT_SECURE_NO_DEPRECATE

#include

#include

#include

typedef unsigned int UINT;

typedef unsigned char BYTE;

typedef struct node

{

long w; //权

short p,l,r; //父亲,左孩子,右孩子

}HTNODE,*HTNP; //霍夫曼树的结点

typedef struct huffman_code

{

BYTE len; //长度

BYTE *codestr; //字符串

}HFCODE; //霍夫曼编码数组元素

#define OK 1

#define ERROR -1

#define UNUSE -1 //未链接节点标志

#define CHAR_BITS 8 //一个字符中的位数

#define INT_BITS 32 //一个整型中的位数

#define HUFCODE_SIZE 256 //霍夫曼编码个数

#define BUFFERSIZE 256 //缓冲区大小大小

#define UINTSIZE sizeof(UINT)

#define BYTESIZE sizeof(BYTE)

#define TAG_ZIGHEAD 0xFFFFFFFF //压缩文件头标

#define MAX_FILENAME512

//函数声明

//压缩模块

int Compress(char *SourceFilename,char *DestinationFilename);

//压缩调用

int Initializing(char *SourceFilename,FILE **inp,char *DestinationFilename,FILE **outp); //初始化文件工作环境

long AnalysisFiles(FILE *in,long frequency[]);

//计算每个不同字节的频率以及所有的字节数

int CreateHuffmanTree(long w[],int n,HTNODE ht[]);

//生成霍夫曼树

int HuffmanTreeCoding(HTNP htp,int n,HFCODE hc[]);

//霍夫曼编码

int Search(HTNP ht,int n);

//查找当前最小权值的霍夫曼树节点并置为占用

BYTE Char2Bit(const BYTE chars[CHAR_BITS]);

//将一个字符数组转换成二进制数字

int Search(HTNP ht,int n);

//查找当前最小权值的霍夫曼树节点并置为占用

int WriteZipFiles(FILE *in,FILE *out,HTNP ht,HFCODE hc[],char* SourceFilename,long source_filesize);//写压缩文件

//解压缩模块

int DeCompress(char *SourceFilename,char *DestinationFilename);

//解压缩调用

int Initializing_Dezip(char *SourceFilename,FILE **inp,char

*DestinationFilename,FILE **outp); //为处理解压缩流程初始化文件

void ReadHuffmanTree(FILE* in,short mini_ht[][2]);

//从待解压缩文件中读取huffman树

int WriteDeZipFiles(FILE *in,FILE* out,short mini_ht[][2],long bits_pos,long

Dst_Filesize); //写解压缩文件

void ErrorReport(int error_code);

//报错

//函数定义

//函数实现

//压缩

int Compress(char *SourceFilename,char *DestinationFilename)

{

FILE *in,*out; //输入输出流

int i; //计数变量

float Compress_rate; //存放压缩率

HFCODE hc[HUFCODE_SIZE]; //存放256个字符的huffman编码

HTNODE ht[HUFCODE_SIZE*2-1]; //256个字符的huffman树需要2*256-1=511个节点。

long frequency[HUFCODE_SIZE],source_filesize,Dst_Filesize=0;//字符频率数组,源文件,目标文件。

//处理待压缩与压缩文件文件

Initializing(SourceFilename,&in,DestinationFilename,&out);

puts("Loading Files...");

//处理各个字符的频率,并输出原始文件长度

source_filesize=AnalysisFiles(in,frequency);

puts("Loading Complete!Now Analysising...");

printf("Original size:%ld Byte \n",source_filesize);

//创建Huffman树

CreateHuffmanTree(frequency,HUFCODE_SIZE,ht);

//Huffman编码

puts("Huffman Tree Initialized Successfully,HuffmanCoding Processing...");

HuffmanTreeCoding(ht,HUFCODE_SIZE,hc);

//计算目标文件长度

for(i=0;i

{//计算位的个数,计算每个字符的频数与其编码长度乘积之和

Dst_Filesize+=frequency[i]*hc[i].len;

}//将文件主体部分的位个数转换为字节个数;

Dst_Filesize=Dst_Filesize%8==0?Dst_Filesize/8:Dst_Filesize/8+1;

for(i=0;i

{//huffmantree长度

Dst_Filesize+=2*sizeof(short);

}

Dst_Filesize+=strlen(SourceFilename)+1; //源文件名占用空间

Dst_Filesize+=sizeof(long); //源文件名长度信息占用空间

Dst_Filesize+=UINTSIZE; //文件头长度

Compress_rate=(float)Dst_Filesize/source_filesize; //压缩率

puts("Coding Successfully.Now producing zip files...");

printf("Compressed File Size:%ld Byte,radiation: %%%.2lf

\n",Dst_Filesize,Compress_rate*100);

//生成压缩文件

WriteZipFiles(in,out,ht,hc,SourceFilename,source_filesize);

puts("Compress Complete!");

//擦屁股

fclose(in);

fclose(out);//关闭文件

for(i=0;i

{

free(hc[i].codestr);

}

return OK;

}

int Initializing(char *SourceFilename,FILE **inp,char *DestinationFilename,FILE **outp) {

if(strcmp(SourceFilename,DestinationFilename)==0)

{//重名判断

return ERROR;

}

printf("Source File:%s,Destination File:%s\n",SourceFilename,DestinationFilename);

if((*outp=fopen(DestinationFilename,"wb"))==NULL)

{//文件打开错误

return ERROR;

}

if((*inp=fopen(SourceFilename,"rb"))==NULL)

{//文件打开错误

return ERROR;

}

return OK;

}

long AnalysisFiles(FILE *in,long frequency[])

{

int i,read_len;

BYTE buf[BUFFERSIZE]; //缓冲区

long filesize; //文件总长

for(i=0;i

{

frequency[i]=0; //初始化所有字符频率为0

}

fseek(in,0L,SEEK_SET); //将文件定位符指向文件开头

read_len=BUFFERSIZE; //设置读入长度=缓冲区长度

while(read_len==BUFFERSIZE) //每当读取字符长度达到缓冲区长度时

{

read_len=fread(buf,1,BUFFERSIZE,in);

for(i=0;i

{

frequency[*(buf+i)]++; //统计字频

}

}

for(i=0,filesize=0;i

{

filesize+=frequency[i]; //计算文件长度,计算方法是把所有字符的频数相加

}

return filesize;

}

int Search(HTNP ht,int n)

{

int i,x;

for(x=0;x

{

if(ht[x].p==UNUSE) break; //找到第一个没有使用的叶子节点,跳出}

for(i=x;i

{

if(ht[i].p==UNUSE&&ht[i].w

{

x=i; //找权值最小的叶子节点

}

}

ht[x].p=-2; //将叶子节点占用

return x;

}

int CreateHuffmanTree(long w[],int n,HTNODE ht[])

{

int m,i,s1,s2;

if (n<1) return ERROR;

m=2*n-1; //霍夫曼树节点总数=叶子数*2-1

if (ht==NULL) return ERROR;

for(i=0;i

{

ht[i].w=w[i],ht[i].p=ht[i].l=ht[i].r=UNUSE; //初始化叶子节点

}

for(;i

{

ht[i].w=ht[i].p=ht[i].l=ht[i].r=UNUSE; //初始化分支节点

}

for(i=n;i

{ //循环至m-n个分支节点全部被使用完为止

s1=Search(ht,i);

s2=Search(ht,i); //找到权值最小的两个节点,这里通过两次调用寻找最小权值的函数search解决问题

ht[s1].p=ht[s2].p=i; //设置父节点

ht[i].l=s1,ht[i].r=s2; //设置孩子

ht[i].w=ht[s1].w+ht[s2].w; //设置权为两个孩子权之和}

return OK;

}

int HuffmanTreeCoding(HTNP htp,int n,HFCODE hc[])

{

int i,j,p,codelen; //codelen:临时字符数组长度变量

BYTE *code=(BYTE*)malloc(n*BYTESIZE); //临时字符数组,为每一个字符的编码申请一个字节的空间

for(i=0;i

{//从当前节点到根节点逆向求huffman编码,遍历所有叶子节点。

for(p=i,codelen=0;p!=2*n-2;p=htp[p].p,codelen++)

{//循环到根节点为止

code[codelen]=(htp[htp[p].p].l==p?0:1);//第i位编码:p节点如果是其父亲的:左孩子:0;右孩子:1

}

if((hc[i].codestr=(BYTE *)malloc((codelen)*BYTESIZE))==NULL)

{

return ERROR; //分配叶子节点huffman编码的空间,长度为

}

hc[i].len=codelen; //该字符编码的码长

for(j=0;j

{

hc[i].codestr[j]=code[codelen-j-1]; //反转(因为原来是逆的)}

}

free(code);//擦屁股

return OK;

}

BYTE Char2Bit(const BYTE chars[CHAR_BITS])

{

int i;

BYTE bits=0;

bits|=chars[0];

for(i=1;i

{

bits<<=1; //左移或实现

bits|=chars[i];

}

return bits;

}

int WriteZipFiles(FILE *in,FILE *out,HTNP ht,HFCODE hc[],char* SourceFilename,long

source_filesize)

{

UINT i,Read_Counter,Write_Counter,zip_head=TAG_ZIGHEAD;

//读缓存计数器,写缓存计数器,压缩文件头标

BYTE write_char_counter,code_char_counter,copy_char_counter;

//写字符计数器,huffman码字符计数器,复制字符计数器

BYTE read_buf[BUFFERSIZE],write_buf[BUFFERSIZE],write_chars[CHAR_BITS]; //读缓存,写缓存,转换字符数组,

BYTE filename_size=strlen(SourceFilename);

//文件名长度

HFCODE *Cur_HuffCode;

//当前数据的huffman编码指针

//预处理

fseek(in,0L,SEEK_SET);

//定位读文件到文件开始处

fseek(out,0L,SEEK_SET);

//定位写文件到文件开始处

fwrite(&zip_head,UINTSIZE,1,out);

//写入文件头标示符

fwrite(&filename_size,BYTESIZE,1,out);

//写入源文件名长度

fwrite(SourceFilename,sizeof(char),filename_size,out);

//写入源文件名

fwrite(&source_filesize,sizeof(long),1,out);

//写入源文件长度

for(i=HUFCODE_SIZE;i

{

//写huffman树的左右孩子(前HUFCODE_SIZE个节点无孩子,不写)

fwrite(&(ht[i].l),sizeof(ht[i].l),1,out);//写入左孩子

fwrite(&(ht[i].r),sizeof(ht[i].r),1,out);//写入右孩子

}

//写正文

Write_Counter=write_char_counter=0;

//写缓冲计数器以及写字符计数器清0

Read_Counter=BUFFERSIZE;

//置读缓存字符数

//当读入的缓存字符数不等于缓存时,文件读完,退出循环

while(Read_Counter==BUFFERSIZE)

{

Read_Counter=fread(read_buf,1,BUFFERSIZE,in);

//读入大小为BUFFSIZE的数据到读缓存

//为每个缓存的数据找huffman编码

for(i=0;i

{

Cur_HuffCode=&hc[read_buf[i]];

//当前数据的huffman编码位置

code_char_counter=0;

//当前数据huffman编码字符的计数器清0

//当huffman编码字符的计数器等于码长时,转换完毕退出

while(code_char_counter!=Cur_HuffCode->len)

{ //获取本次复制字符的长度为可用写字符长度与可用huffman编码长度中的较小者

copy_char_counter= (CHAR_BITS-write_char_counter >

Cur_HuffCode->len-code_char_counter ?

Cur_HuffCode->len-code_char_counter :

CHAR_BITS-write_char_counter);

//复制一段字符

memcpy(write_chars+write_char_counter,Cur_HuffCode->codestr+code_char_counter,copy_ char_counter);

write_char_counter+=copy_char_counter;

//写字符计数器增加

code_char_counter+=copy_char_counter;

//编码字符计数器增加

//当写字符计算器满=8时

if(write_char_counter==CHAR_BITS)

{

write_char_counter=0;//写字符计数器清0

//当写缓存满时

write_buf[Write_Counter++]=Char2Bit(write_chars);

//转化写字符为二进制数并存入写缓存

if(Write_Counter==BUFFERSIZE)

{

fwrite(write_buf,1,BUFFERSIZE,out);//输出到文件

Write_Counter=0;//写缓存清0

}

}

}

}

}

fwrite(write_buf,1,Write_Counter,out);//写缓存中剩余数据输出到文件,擦屁股

//当写字符数组中还有字符未转换

if(write_char_counter!=0)

{

write_char_counter=Char2Bit(write_chars);//转化为二级制数据

fwrite(&write_char_counter,1,1,out);//输出到文件

}

return OK;

}

//解压缩

int DeCompress(char *SourceFilename,char *DestinationFilename)

{

FILE *in,*out; //定义输入输出流

short mini_ht[HUFCODE_SIZE*2-1][2];

long Dst_Filesize;

Initializing_Dezip(SourceFilename,&in,DestinationFilename,&out); //初始化文件处理环境

puts("File open Successfully...");

fread(&Dst_Filesize,sizeof(long),1,in); //读取解压缩文件长度

printf("Expected Length: %ld\n",Dst_Filesize);

puts("Establishing HuffmanTree...");

ReadHuffmanTree(in,mini_ht); //生成mini的huffmantree

puts("Rebuild Successfully.Now Decompressing...");

WriteDeZipFiles(in,out,mini_ht,ftell(in),Dst_Filesize); //解码压缩文件并生成解压缩文件

puts("Decompress Complete!");

//擦屁股

fclose(in);

fclose(out);

return OK;

}

int Initializing_Dezip(char *SourceFilename,FILE **inp,char *DestinationFilename,FILE **outp)

{

UINT zip_head;

BYTE filename_size;

char temp_filename[MAX_FILENAME];

//处理源文件

printf("Source Files:%s,",SourceFilename);

if ((*inp=fopen(SourceFilename,"rb"))==NULL)

{

return ERROR;//不能读文件

}

//读取源文件头,如果读入的文件头与常量不符,报错退出。

fread(&zip_head,UINTSIZE,1,*inp);

if(zip_head!=TAG_ZIGHEAD)

{

return ERROR;//非法的文件头

}

//处理解压缩文件名

if(DestinationFilename==NULL)//如果目标文件名未分配

{

DestinationFilename = temp_filename;

fread(&filename_size,BYTESIZE,1,*inp); //得到目标文件名长度

fread(DestinationFilename,sizeof(char),filename_size,*inp); //得到目标文件名

DestinationFilename[filename_size]='\0'; //添加结尾字符}

else

{

fread(&filename_size,BYTESIZE,1,*inp);

fseek(*inp,filename_size,SEEK_CUR);//若分配了,直接跳过文件名信息}

printf("Decompress Files:%s\n",DestinationFilename);

if((*outp=fopen(DestinationFilename,"wb"))==NULL)

{

return ERROR;//不能写文件

}

return OK;

}

void ReadHuffmanTree(FILE* in,short mini_ht[][2])

{

int i;

for(i=0;i

{

mini_ht[i][0]=mini_ht[i][1]=UNUSE;//叶子节点无孩子

}

fread(mini_ht[i],sizeof(short),2*(HUFCODE_SIZE-1),in);//得到非叶子节点的孩子信息

}

int WriteDeZipFiles(FILE*in,FILE* out,short mini_ht[][2],long bits_pos,long Dst_Filesize) {

long cur_size;

BYTE read_buf[BUFFERSIZE],write_buf[BUFFERSIZE],convert_bit;

UINT Read_Counter,Write_Counter,cur_pos;

fseek(in,bits_pos,SEEK_SET);//定位到写文件压缩码开始处

fseek(out,0L,SEEK_SET);//定位到写文件头部

//解码开始

Read_Counter=BUFFERSIZE-1;//置写缓存计数器

cur_size=Write_Counter=0;//当前写入文件长度与写缓存计数器为0

cur_pos=HUFCODE_SIZE*2-2;//当前huffman节点为根节点

//如果写入文件长度达到目标文件长度,文件写入完毕,退出

while(cur_size!=Dst_Filesize)

{ //若读缓存计数器满

if(++Read_Counter==BUFFERSIZE)

{

fread(read_buf,1,BUFFERSIZE,in);//读入到读缓存

Read_Counter=0;//读缓存计数器清0

}

//一次循环处理8位,即1字节

for(convert_bit=128;convert_bit!=0;convert_bit>>=1)

{

cur_pos=((read_buf[Read_Counter]&convert_bit)==0?mini_ht[cur_pos][0]:mini_ht[cur_po s][1]);//按位查找huffmantree节点,0左,1右

if(cur_pos

{

write_buf[Write_Counter]=(BYTE)cur_pos;//缓存一个byte

if(++Write_Counter==BUFFERSIZE)//如果当前输出缓存满

{

fwrite(write_buf,1,BUFFERSIZE,out);//输出到文件

Write_Counter=0;//输入缓存计数器清0

}

cur_pos=HUFCODE_SIZE*2-2;//当前节点重置为最后根节点

if(++cur_size==Dst_Filesize)

{

break;//如果当前写入文件长度到达预定值,跳出

}

}

}

}

fwrite(write_buf,1,Write_Counter,out);//将写缓存中未输出的数据输出

return OK;

}

void ErrorReport(int error_code)

{

printf("Error");

}

int main()

{

char SRC[MAX_FILENAME],DST[MAX_FILENAME],choice='\0';

printf("c for Compress,d for Decompress: ");

scanf("%c",&choice);

fflush(stdin);

switch(choice)

{

case'c':

{//压缩

printf("Input Source file: ");

gets(SRC);

fflush(stdin);

printf("\nInput destination file:");

gets(DST);

fflush(stdin);

Compress(SRC,DST);

system("pause");

};break;

case'd':

{//解压

printf("Input Source file: ");

gets(SRC);

fflush(stdin);

printf("Input destination file:");

gets(DST);

fflush(stdin);

DeCompress(SRC,DST);

system("pause");

}break;

default:{ErrorReport(ERROR);}break;

}

return OK;

}

四.界面设计

本实验提供基本的输入输出提示,包括压缩率的计算。五.测试与分析

压缩过程:

解压缩过程:

实际测试中压缩率达到了惊人的45%。对于某些文件。实际测试这是一个非常实用有效的工具。

六.实验收获及思考

收获:

确实是一个很有挑战的问题。关于文件写入部分有部分借鉴参考之处。

本代码的编写经历对知识的巩固有着巨大的作用。是一次很好的锻炼与实践。

结构设计常用数据

结构设计常用数据

————————————————————————————————作者:————————————————————————————————日期: ?

混凝土结构设计规范 表3.4.3受弯构件的挠度限值 构件类型挠度限值 吊车梁手动吊车l0/500电动吊车l0/600 屋盖、楼盖及楼梯构件 当l0<7m时 l0/200(l0/2 50) 当7m≤l0≤9 m时 l0/250(l0/ 300) 当l0>9m时 l0/300(l0/4 00) 表3.3.5 结构构件的裂缝控制等级及最大裂缝宽度的限值(mm) 环境类别钢筋混凝土结构 预应力混凝土结 构 裂缝控 制等级 w lim 裂缝控 制等级 w lim 一 三级0.30 (0.4 0) 三级 0.20 二a 0.200.10 二b 二级——三a、三一级——

b 表3.3.2混凝土结构的环境类别环境类 别 条件 一室内干燥环境; 无侵蚀性静水浸没环境 二a 室内潮湿环境; 非严寒和非寒冷地区的露天环境; 非严寒和非寒冷地区与无侵蚀性的水或土壤直接接触的环境; 严寒和寒冷地区的冰冻线以下与无侵蚀性的水或土壤直接接触的环境 二b 干湿交替环境; 水位频繁变动环境; 严寒和寒冷地区的露天环境; 严寒和寒冷地区冰冻线以上与无侵蚀性的水或土壤直接接触的环境 三a 严寒和寒冷地区冬季水位变动区环境; 受除冰盐影响环境; 海风环境 三b 盐渍土环境;

受除冰盐作用环境; 海岸环境 四 海水环境 五 受人为或自然的侵蚀性物质影响的环境 表3.5.3 结构混凝土材料的耐久性基本要求 环境等级 最大水胶比 最低强度等级 最大氯离子含量(%) 最大碱含量(k g/m 3) 一 0.60 C 20 0.30 不限制 环境等级 最大水胶比 最低强度等级 最大氯离子含量(%) 最大碱含量(kg/m 3) 二a 0.55 C25 0.20 3.0 二b 0.50(0.55) C30(C 25) 0.15 三a 0.45(0.5 0) C35(C30) 0.15 三b 0.40 C 40 0.10 表8.1.1 钢筋混凝土结构伸缩缝最大间距(m) 结构类型 室内或土 露天

结构设计经验的总结

十年结构设计经验的总结 1.关于箱、筏基础底板挑板的阳角问题: (1).阳角面积在整个基础底面积中所占比例极小,干脆砍了。可砍成直角或斜角。  (2).如果底板钢筋双向双排,且在悬挑部分不变,阳角不必加辐射筋,谁见过独立基础加辐射筋的?当然加了也无坏处。  (3).如果甲方及老板不是太可恶的话,可将悬挑板的单向板的分布钢筋改为直径12的,别小看这一改,一个工程省个3、2万不成问题。 2.关于箱、筏基础底板的挑板问题: (1).从结构角度来讲,如果能出挑板,能调匀边跨底板钢筋,特别是当底板钢筋通长布置时,不会因边跨钢筋而加大整个底板的通长筋,较节约。 (2).出挑板后,能降低基底附加应力,当基础形式处在天然地基和其他人工地基的坎上时,加挑板就可能采用天然地基。必要时可加较大跨度的周圈窗井。 (3).能降低整体沉降,当荷载偏心时,在特定部位设挑板,还可调整沉降差和整体倾斜。 (4).窗井部位可以认为是挑板上砌墙,不宜再出长挑板。虽然在计算时此处板并不应按挑板计算。当然此问题并不绝对,当有数层地下室,窗井横隔墙较密,且横隔墙能与内部墙体连通时,可灵活考虑。 (5).当地下水位很高,出基础挑板,有利于解决抗浮问题。 (6).从建筑角度讲,取消挑板,可方便柔性防水做法。当为多层建筑时,结构也可谦让一下建筑。 3.关于箍筋在梁配筋中的比例问题(约10~20%): 例如一8米跨梁,截面为400X600,配筋:上6根25,截断1/3,下5根25,箍筋:8@100/200(4),1000范围内加密。纵筋总量: 3.85*9*8=281kg,箍筋:0.395*3.5*50=69,箍筋/纵筋=1/4, 如果双肢箍仅为1/8,箍筋相对纵筋来讲所占比例较小,故不必在箍筋上抠门。且不说要强剪弱弯。已经是构造配箍除外。 4.关于梁、板的计算跨度: 一般的手册或教科书上所讲的计算跨度,如净跨的1.1倍等,这些规定和概念仅适用于常规的结构设计,在应用日广的宽扁梁中是不合适的。梁板结构,简单点讲,可认为是在梁的中心线上有一刚性支座,取

【结构设计】钢筋混凝土结构设计经验数据分享

钢筋混凝土结构设计经验数据分享 1、结构类型如何选择? 解释:(1)对于高度不超过150米的多高层项目一般都选择采用钢筋混凝土结构; (2)对于高度超过150米的高层项目则可能会采用钢结构或混凝土结构类型; (3)对于落后偏远地区的民宅或小工程则可能采用砌体结构类型. 2、结构体系如何选择? 解释:对于钢筋混凝土结构,当房屋高度不超过120米时,一般均为三大常规结构体系——框架结构、剪力墙结构、框架—剪力墙结构. (1)对于学校、办公楼、会所、医院以及商场等需要较大空间的建筑, 当房屋高度不超过下表时,一般选择框架结构; 当房屋高度超过下表时,一般选择框架-剪力墙结构; 抗震设防烈度 6 度 7度 (0.1g) 7度 (0.15g) 8度 (0.2g) 8度 (0.30g) 框架结构 经济适用 高度(m) 3530252015(2)对于高层住宅、公寓、酒店等隔墙位置固定且空间较小的建筑项目一般选择剪力墙结构.当高层住宅、公寓、酒

店项目底部一层或若干层因建筑功能要求(如大厅或商业)需要大空间时,一般采用部分框支剪力墙结构. (3)对于高度大于100米的高层写字楼,一般采用框架-核心筒结构. 3、广州地区某40米高的办公楼采用框架结构体系合理吗? 解释:不合理.7度区框架结构经济适用高度为30米,超过30米较多时应在合适的位置(如楼梯、电梯、辅助用房)布置剪力墙,形成框架-剪力墙结构体系.这样子剪力墙承受大部分水平力,大大减小框架部分受力,从而可以减小框架柱、框架梁的截面和配筋,使得结构整体更加经济合理. 4、框架结构合理柱网及其尺寸? 解释:(1)柱网布置应有规律,一般为正交轴网. (2)普通建筑功能的多层框架结构除个别部位外不宜采用单跨框架,学校、医院等乙类设防建筑以及高层建筑不应采用单跨框架. (3)仅从结构经济性考虑,低烈度区(6度、7度)且风压小(小于0.4)者宜采用用大柱网(9米左右);高烈度区(8度及以上)者宜采用中小柱网(4~6米左右). (4)一般情况下,柱网尺寸不超过12米;当超过12米时可考虑采用钢结构.

【结构设计】结构工程师十年设计经验总结

结构工程师十年设计经验总结 1关于箱、筏基础底板挑板的阳角问题: (1)阳角面积在整个基础底面积中所占比例极小,干脆砍了.可砍成直角或斜角. (2)如果底板钢筋双向双排,且在悬挑部分不变,阳角不必加辐射筋,谁见过独立基础加辐射筋的?当然加了也无坏处. (3)如果甲方及老板不是太可恶的话,可将悬挑板的单向板的分布钢筋改为直径12的,别小看这一改,一个工程省个3、2万不成问题. 2关于箱、筏基础底板的挑板问题: 1)从结构角度来讲,如果能出挑板,能调匀边跨底板钢筋,特别是当底板钢筋通长布置时,不会因边跨钢筋而加大整个底板的通长筋,较节约. (2)出挑板后,能降低基底附加应力,当基础形式处在天然地基和其他人工地基的坎上时,加挑板就可能采用天然地基.必要时可加较大跨 度的周圈窗井. (3)能降低整体沉降,当荷载偏心时,在特定部位设挑板,还可调整沉降差和整体倾斜. (4)窗井部位可以认为是挑板上砌墙,不宜再出长挑板.虽然在计算时此处板并不应按挑板计算.当然此问题并不绝对,当有数层地下室,窗井横隔墙较密,且横隔墙能与内部墙体连通时,可灵活考虑.

(5)当地下水位很高,出基础挑板,有利于解决抗浮问题. (6)从建筑角度讲,取消挑板,可方便柔性防水做法.当为多层建筑时,结构也可谦让一下建筑. 3关于箍筋在梁配筋中的比例问题(约10~20%): 例如一8米跨梁,截面为400X600,配筋:上6根25,截断1/3,下5根25,箍筋范围内加密.纵筋总量:385*9*8=281kg,箍筋: 0395*35*50=69,箍筋/纵筋=1/4,如果双肢箍仅为1/8,箍筋相对纵筋来讲所占比例较小,故不必在箍筋上抠门.且不说要强剪弱弯.已经是构造配箍除外. 4关于梁、板的计算跨度: 一般的手册或教科书上所讲的计算跨度,如净跨的11倍等,这些规定和概念仅适用于常规的结构设计,在应用日广的宽扁梁中是不合适的.梁板结构,简单点讲,可认为是在梁的中心线上有一刚性支座,取消梁的概念,将梁板统一认为是一变截面板.在扁梁结构中,梁高比板厚大不了多少时,应将计算长度取至梁中心,选梁中心处的弯距和梁厚,及梁边弯距和板厚配筋,取二者大值配筋.(借用台阶式独立基础变截面处的概念)柱子也可认为是超大截面梁,所以梁配筋时应取柱边弯距.削峰是正常的,不削峰才有问题. 5纵筋搭接长度为若干倍钢筋直径d,一般情况下,d取钢筋直径的较小值,这是有个前提,即大直径钢筋强度并未充分利用.否则应取钢筋直径的较大值.如框架结构顶层的柱子纵筋有时比下层大,d应取较大的钢筋直径,甚至纵筋应向下延伸一层.其实,两根钢筋放一起,用铁丝捆

梁柱设计经验结构设计心得(汇总版)

梁柱设计经验结构设计心得1 一、梁的设计 1.梁尺寸确定。 该工程定为纵横向承重,主要为横向承重,根据梁尺寸初步确定:主梁高h : (1/8—1/12)L, 宽b(1/3—1/2)h 连系梁高h : (1/10-1/15)L, 宽b(1/3-1/2)h 次梁高h : (1/12-1/18)L, 宽b(1/3-1/2)h 2我这里引用一些梁设计的经验: (1).梁上有次梁处(包括挑梁端部)应附加箍筋和吊筋,宜优先采用“附加箍筋”。 梁上小柱和水箱下, 架在板上的梁, 不必加附加筋。 可在结构设计总说明处画一节点,有次梁处两侧各加三根主梁箍筋,荷载较大处详施工图。 (2).当外部梁跨度相差不大时,梁高宜等高,尤其是外部的框架梁。 当梁底距外窗顶尺寸较小时,宜加大梁高做至窗顶。 外部框架梁尽量做成梁外皮与柱外皮齐平。 当建筑有要求时:梁也可偏出柱边一较小尺寸。梁与柱的偏心可大于1/4柱宽,并宜小于1/3柱宽。(3).折梁阴角在下时纵筋应断开,并锚入受压区内La,还应加附加箍筋 (4).梁上有次梁时,应避免次梁搭接在主梁的支座附近,否则应考虑由次梁引起的主梁抗扭,或增加构造抗扭纵筋和箍筋。(此条是从弹性计算角度出发)。当采用现浇板时,抗扭问题并不严重。 (5).原则上梁纵筋宜小直径小间距,有利于抗裂,但应注意钢筋间距要满足要求,并与梁的断面相应。箍筋按规定在梁端头加密。布筋时应将纵筋等距,箍筋肢距可不等。小断面的连续梁或框架梁,上、下部纵筋均应采用同直径的,尽量不在支座搭接。 (6).端部与框架梁相交或弹性支承在墙体上的次梁,梁端支座可按简支考虑,但梁端箍筋应加密。 (7).考虑抗扭的梁,纵筋间距不应大于300和梁宽,即要求加腰筋,并且纵筋和腰筋锚入支座内La。箍筋要求同抗震设防时的要求。 (8).反梁的板吊在梁底下,板荷载宜由箍筋承受,或适当增大箍筋。梁支承偏心布置的墙时宜做下挑沿。 (9).挑梁宜作成等截面(大挑梁外露者除外)。与挑板不同,挑梁的自重占总荷载的比例很

结构设计经验总结

YJK弹性板参数说明 弹性板荷载计算方式: 有限元方式仅适用于定义为弹性板3或者弹性板6的楼板,不适合弹性膜或者刚性板的计算。 梁板变形协调: 对于弹性膜,一般可设置为不勾选此项。但是对于弹性板3或者弹性板6,则应勾选此项。因为设置弹性板3或弹性板6的目的是使梁与板共同工作,发挥板的面外刚度的作用,减少梁的受力和配筋,此时必须使弹性板中间节点和梁的中间节点变形协调才能实现这种作用。 考虑相对偏移(次梁点铰后负弯矩的由来): 以前弹性板与梁变形协调时,计算模型是以梁的中和轴和板的中和轴相连的方式计算的,由于一般梁与楼板在梁顶部平齐,实际上梁的中和轴和板中和轴存在竖向的偏差,勾选此参数后软件将在计算中考虑到这种实际的偏差,将在板和梁之间设置一个竖向的偏心刚域,该偏心刚域的长度就是梁的中和轴和板中和轴的实际距离。在生成数据后的计算简图中可以看到用粉色表示的弹性板和梁之间的竖向短线,就是它们之间的偏心刚域。这种计算模型比按照中和轴互相连接的模型得出的梁的负弯矩更小,跨中承受一定的拉力,这些因素在梁的配筋计算中都会考虑。 地震内力按弹性板6计算: 用户对恒活风等荷载工况计算时,对楼板习惯于按照刚性板、弹性膜的模型计算,这种模型不考虑楼板的抗弯承载能力,由梁承担全部荷载内力,此时的楼板成为一种承载力的安全储备。但是从抗震设计强柱弱梁的要求考虑,常造成梁的配筋过大的不好的效果。 勾选此参数则软件仅对地震作用的内力按照全楼弹性板6计算,这样地震计算时让楼板和梁共同抵抗地震作用,可以大座弯矩,从而可明显降低梁的支幅度降低地震作用下梁的支座部分的用钢量。 由于对其他荷载工况仍按照以前习惯的设置,保持恒活风等其他荷载工况的计算结果不变,这样做既没有降低结构的安全储备,又实现了强柱弱梁、减少梁的钢筋用量的效果。

结构设计摸索的经验

慢慢摸索的结构设计经验 高层结构需要控制的几个比值:轴压比、周期比、剪重比、刚度比、位移比、刚重比、层间受剪承载力之比 1.轴压比 轴压比主要是控制结构的延性,具体要求见抗规6.3.6和6.4.5,高规6.4.2和7.2.14。 轴压比过大则结构的延性要求无法保证,此时应加大截面面积或提高混凝土强度;轴压比过小,则结构的经济性不好,时应减小截面面积。 2.周期比 周期比控制的是结构侧向刚度与扭转刚度之间的相对关系,它的目的是使抗侧力构件的平面布置更合理,使结构不致于出现过大的扭转效应。一句话,周期比不是要求结构足够结实,而是要求结构承载布置合理,具体要求见高规4.3.5。刚度越大,周期越小。 抗侧力构件对结构扭转刚度的贡献与其距结构刚心的距离成正比,意思是结构外围的抗侧力构件对结构的扭转刚度贡献最大。 结构的第一、第二振型宜为平动,扭转周期宜出现在第三振型及以后。 当第一振型为扭转时,说明结构的扭转刚度相对于其两个主轴的侧移刚度过小,此时应沿两个主轴适当加强结构外围的刚度,或沿两个主轴适当削弱结构内部的刚度。 当第二振型为扭转时,说明结构沿两个主轴的侧移刚度相差较大,结构的扭转刚度相对于其中一主轴(第一振型转角方向)的侧移刚度是合理的,但对于另一主轴(第三振型转角方向)的侧移刚度过小,此时应适当削弱结构内部沿第三振型转角方向的刚度或适当加强结构外围(主要是沿第一振型转角方向)的刚度。3.位移比 位移比是指采用刚性楼板假定下,端部最大位移(层间位移)与两端位移(层间位移)平均值的比,位移比的大小反映了结构的扭转效应,同周期比的概念一样都是为了控制建筑的扭转效应提出的控制参数。见抗规3.4.3,高规4.3.5。位移比不满足时只能经过人工调整结构平面布置,减小结构刚心与形心的偏心距。调整方法如下: (1)由于位移比是在刚性楼板假定下计算的,最大位移比往往出如今结构的四角部位,因此应留意调整结构外围对应位置抗侧力构件的刚度;同时在设计中,应在

产品结构设计经验

塑胶产品结构设计注意事项 目录 第一章塑胶结构设计规范 1、材料及厚度 1.1、材料选择 1.2、壳体厚度 1.3、零件厚度设计实例 2、脱模斜度 2.1、脱模斜度要点 3、加强筋 3.1、加强筋与壁厚的关系 3.2、加强筋设计实例 4、柱和孔的问题 4.1、柱子的问题 4.2、孔的问题 4.3、“减胶”的问题 5、螺丝柱的设计 6、止口的设计 6.1、止口的作用 6.2、壳体止口的设计需要注意的事项 6.3、面壳与底壳断差的要求 7、卡扣的设计 7.1、卡扣设计的关键点 7.2、常见卡扣设计 7.3、

第一章塑胶结构设计规范 1、材料及厚度 1.1、材料的选取 a. ABS:高流动性,便宜,适用于对强度要求不太高的部件(不直接受冲 击,不承受可靠性测试中结构耐久性的部件),如内部支撑架(键板支 架、LCD支架)等。还有就是普遍用在电镀的部件上(如按钮、侧键、 导航键、电镀装饰件等)。目前常用奇美PA-757、PA-777D等。 b. PC+ABS:流动性好,强度不错,价格适中。适用于作高刚性、高冲击 韧性的制件,如框架、壳体等。常用材料代号:拜尔T85、T65。 c. PC:高强度,价格贵,流动性不好。适用于对强度要求较高的外壳、 按键、传动机架、镜片等。常用材料代号如:帝人L1250Y、PC2405、 PC2605。 d. POM具有高的刚度和硬度、极佳的耐疲劳性和耐磨性、较小的蠕变性和 吸水性、较好的尺寸稳定性和化学稳定性、良好的绝缘性等。常用于滑轮、 传动齿轮、蜗轮、蜗杆、传动机构件等,常用材料代号如:M90-44。 e. PA坚韧、吸水、但当水份完全挥发后会变得脆弱。常用于齿轮、滑轮等。 受冲击力较大的关键齿轮,需添加填充物。材料代号如:CM3003G-30。 f. PMMA有极好的透光性,在光的加速老化240小时后仍可透过92%的太阳 光,室外十年仍有89%,紫外线达78.5% 。机械强度较高,有一定的耐

自己总结结构设计经验

结构设计经验FOR YAN Li(20150120) 一、上部结构布置、PKPM建模、工作流程注意事项 1、小于等于C25混凝土时,保护层厚度+5mm【规范】 2、扭转位移比小于1.2,不用点双向地震 3、抗震缝相关规范:《抗规》6.1.4 4、有效质量系数<90%,说明结构存在局部振动较多,较为松散,常为有较多不与楼板相连的构件的情况。 5、外边柱、墙的外边线到轴线距离沿结构全高一致。 6、双连梁:利用窗台增设连梁。例如原200X600连梁超筋,改为双200X450连梁,建模时按400X450输 入正常连梁,计算结果均分到两根连梁上。 7、15m范围内不应出现非拉通榀框架【省规】 8、初次建模从CAD导入轴网至PKPM时,退出“AUTOCAD向建筑模型转化”菜单时不点“清理无用的 节点”,否则刚导入的轴网、节点又被清除了。 9、现阶段6mm一级钢(270Mpa)供应不足,故不宜采用。 10、PMCAD建模时别忘了点“自动计算现浇楼板自重”! 11、强制刚性假定 高层结构计算位移保留弹性板面外刚度 偶然偏心 双向地震【高规4.3.2】 偶然偏心(只看位移比) 高层结构计算配筋 双向地震 ·计算后发现楼层位移满足要求且位移比小于1.2,在计算配筋和出计算书时可不勾选双向地震。 另外,计算配筋和出计算书时不勾选强制刚性假定和保留弹性板面外刚度。 强制刚性假定 多层结构计算位移 保留弹性板面外刚度 多层结构计算配筋:双向地震 ·计算后发现楼层位移满足要求且位移比小于 1.2,在计算配筋和出计算书时可不勾选双向地震。 另外,计算配筋和出计算书时不勾选强制刚性假定和保留弹性板面外刚度。 12、调模型技巧: ·对于柱、墙较密的区域,柱、墙截面做小,反之做大。 ·受荷较大且靠边的区域柱、墙截面做大。 ·地梁层尽量低矮以作为崁固端。 ·扭转出现在第二周期:两个主轴方向刚度相差较大。 ·扭转出现在第一周期:结构周边刚度弱于中间刚度。 ·刚重比不足时,可调整地基土M值,实在不行就要考虑P-Δ效应。 13、楼板局部开大洞造成的明显薄弱部位应定义为弹性板;开洞较多或较复杂时应定义整层弹性板;多塔

结构设计经验 年轻工程师必看

结构设计经验 、设计坡屋顶时,梁配筋后,必须自校梁底标高,算出其净高,看是否满足要求,特别是楼梯等入口处。 、设计坡屋面时,屋脊(阳角、阴角)处,梁可适当减小,当板跨较小时,可以不设梁,否则可能影响使用,净高不足,再者,也会造成看上去影响美观。 、楼梯柱(中间平台作用处)应该全程加密,因为该柱为短柱。 、对于迎水面保护层为50mm的混凝土墙,应在50mm内增设Φ双层双向的钢筋网片,以减少混凝土的收缩裂缝。 、对于梁高的取值,应该考虑建筑空间的需求,要和建筑协商好净高要求。、写字楼、商场等8m跨梁,取的梁不好,应取,对于一些大跨度公键,梁宽应适当加大,应取以上,最好取、,因为: ①梁宽加宽,抗剪有利,符合“强剪弱弯”的原则。 ②宽的梁,用四肢箍可以使箍筋直径减小。 ③主梁加宽,有利于次梁钢筋的锚固。 、对于柱的大小,应该尽量做到按轴压比控制,轴压比相差不宜大于,当建筑有要求时,应和建筑协商好该问题。 、对于高层建筑,顶层板考虑到刚度突变很大,宜加厚到150mm,应充分分析计算结果,判断结构类型。 、梁配筋时,应充分考虑梁的锚固长度,特别是次梁,应尽量满足图集要求。 、板配筋时,应注意Ⅰ级、Ⅱ级钢的区别(是否有弯钩),以及板厚不同时,千万注意不能把钢筋拉通。

、画大样图时,一定要对照建筑大样图和立面图,以达到建筑的里面要求。、梁配筋时,应注意腰筋的设置,单侧腰筋应大于%。 、柱配筋时,应同时满足配筋率、箍筋、主筋、角筋、最小体积配筋率的要求。 、后浇带应按新规范加强。 、高层建筑中,楼板开大洞后,宜按第4.3.8条加强。 、剪力墙墙肢截面高度不宜大于8m,否则应开结构洞。 施工起拱:求出短期挠度(\长期)再带入规范求出起拱值 外露以及天面板需有抗渗防裂的考虑,按弹性法计算一般用一级号间距拉通,其余由计算另加;抗裂筋越小越密越好,可人为要求增加凳子筋,以增加刚度. 悬挑梁定要注意面筋的加强,箍筋全长加密,验算挠度,尤其是大于米长度的. 连梁超限问题:连梁多短而刚刚度折减,可直接减去梁高,模拟刚度折减,用算出来的梁内力安在原高梁之上配筋验算 地下室集水井与承台不能重合,应先由建筑初定,再结构核对,最后提交建筑设备配合。 二.浅议建筑结构设计中的概念设计 针对目前建筑结构设计当中墨守成规的现象,提倡采用概念设计思想来促进结构工程师的创造性,推动结构设计的发展。所谓的概念设计一般指不经数值计算,尤其在一些难以作出精确力学分析或在规范中难以规定的问

(完整版)朱炳寅结构设计经验总结

朱炳寅老师关于结构设计相关问题的网上问答 1.问:高规附录D中,作用于墙顶的竖向均布荷载设计值,是否可以只考虑竖向荷载组合?因为墙的轴压比计算中为重力荷载代表值作用下的轴向力设计值。 答:不可,应取各种工况(包括竖向荷载、地震作用等)组合的最大墙顶轴力设计值,并根据墙肢的长度,将其等效为墙顶均布荷载。此处,是墙肢的稳定计算,属于构件抗力计算的内容;而轴压比计算,只是结构构造设计的辅助指标,不是结构计算本身,主要作用是通过轴压比数值的大致划分,确定结构构件的相应构造措施标准。 2.问《混凝土结构设计规范》(GB 50010-2002)中第9.5.1条表9.5.1第三栏对现浇混凝土板也适用吗?若适用,那么《高层建筑混凝土结构技术规程》(JGJ 3-2002)中第4.5.5条对上部结构嵌固部位的地下室顶板180厚,C30,配筋率不宜小于0.25%的规定是否多余?因为按上述规定,其最小配筋率应为0.306%。 答:关于剪力墙和框架柱轴压比计算的相关问题剪力墙和框架柱轴压比的计算规定异同分析见下表剪力墙和框架柱轴压比的计算规定异同分析表项目框架柱剪力墙轴压比定义柱组合的轴压力设计值与柱的全截面面积和混凝土轴心抗压强度设计值乘积之比值;可不进行地震作用计算的结构,取无地震作用组合的轴力设计值在重力荷载代表值作用下剪力墙墙肢的轴向压力设计值与墙肢截面面积和混凝土轴心抗压强度设计值乘积之比值;计算公式轴力设计值的取值柱组合的轴压力设计值取地震作用组合的轴力最大值,即 = 在重力荷载代表值作用下剪力墙墙肢的轴向压力设计值,计算中取重力荷载分项系数 =1.2,为重力荷载代表值下,墙肢的轴力。轴压比真正的轴压比是名义轴压比 3.问:我在算桩基的群桩效应的时候对于桩规中公式5.2.2-5中的参数qck的理解不是很清楚,规范上的解释:承台底1/2承台宽度深度范围内地基土极限阻力标准值,其中地基土极限阻力标准值到底是指什么意思?是不是指承台底地基土的承载力。还有对于多桩承台下桩的布置形式,是用矩形布置好还是非矩形(如正多边形)布置比较好(比如是七桩,八桩的),是不是采用非矩形的布置形式更利于每根桩平均受力? 答: 1、qck指承台底面下,相当于1/2承台宽度的深度范围内地基土的极限承载力标准值。 2、对于多桩承台下桩的布置形式,用矩形和非矩形布置没有明确的优劣之分。一般说来当一定范围内布桩困难时,可非矩形布桩,以使在满足最小桩间距的前提下,布置更多的桩。桩布置还应考虑承台的布置(施工)等多种因素。宜优先考虑矩形布桩。 4.问:轻钢结构采用高强螺栓连接的拼接点,经常出现拼接板接触不严的情况,请问此种状况影响结构安全吗?对该部位的质量检验在工程实际中如何把握?现行规范中好像没有明确规定,请专家指教 答:轻钢结构采用高强螺栓连接的拼接点,经常出现拼接板接触不严的情况,主要原因在于螺栓间距和端板厚度的选择不匹配,螺栓间距太大或是端板太薄,引起端板不密贴现象,此种情况在螺栓连接中应避免。关于是否影响结构安全的问题,应根据具体情况而定,有不良影响是肯定的。过大的脱开情况必将影响结构安全和耐久性。结构设计中可采取缩小螺栓间距、加大端板刚度(如适量加设加劲板等)技术措施。 5.问:结构设计规范理解应用手册,第599页讲解的阶型或锥形基础的受剪承载力计算,只是介绍了等效高度及宽度的取法,截面条件计算公式是否应按照砼规式7.5.3.1(一般板类

结构设计经验总结工程

结构设计经验总结工程 技术规范 1:基本原则: 每一种新的结构都要有出处 如果采用全新的形式, 任何结构方式均以易做为准。用结构来决定ID 。非ID 决定MD 。 控制过程要至少进行3次项目评审。 一次在做模具之前。(ID 与MD共同参与) 第二次为T1后。 第三次为T2(可以没有) 在上市前进行最终的项目评审。 考虑轻重的顺序:

质量-结构-ID –成本 其文件体系采用项目评审表的形式。必须有各个与会者签字。 项目检查顺序: 按照表格顺序严格评审(此表格不能公布)。评审结果签字确认。 设计: 1) 建模前应该先根据规划高度分析,宽度分析与长度分析,目的是约束ID 的设计。 2) 建模时将硬件取零件图纸的最大值(NND 厂商通常将公差取为正负0.1,气死我了) 3) 设计尺寸基本上为二次处理后的尺寸(NND 模具厂肯定反对了,哈哈) 4) 手机的打开角度为150-155,开盖预压为4-7度(建议5度)。合盖预压为20度左右

5) 壁厚必须在1.0以上(为了防止缩水,可以将基本壁厚作到1.5,此时一定要注意胶口的选择)。 6) 胶口的选择一定要考虑熔接线的位置,注意 7) 尽力减少配合部分(但是不代表减少必要的配合)。 8) 音腔高度在1.2以上(实际情况应该是空间尺寸要足够大,对不同的产品其数值会不同,最好采用MIC SPEAKER RECERVE的厂商建议值)。 9) 粘胶的宽度必须在4mm以上(大部分厂商可以作到3。5,但 是为了安全起见,还是留点余量好)(另外电铸件的胶宽可以作到1,原理也较为简单可行,如果有人用过的话请补充)。 10) 上下壳的间隙保持在0.3左右。 11) 防撞塞子的高度要0.35左右。 12) 键盘上的DOME 需要有定位系统。

广厦结构设计心得19页

广厦结构设计心得 1 纯砖混和底框结构设计 1.1 砖混总体信息的合理选取 1.1.1 结构计算总层数 设置包含框架平面和砖混平面的结构计算平面总层数,结构计算平面可以是包含承台上拉接地梁的基础层、地下室平面层、上部结构平面层和天面结构层,结构层号从1开始到结构计算总层数。最后生成的结构施工图是按建筑层编号,在平法和梁柱表版的配筋系统中,可在“主菜单枛参数控制信息枛施工图控制”中设置建筑二层对应结构录入的第几层来实现结构层号到建筑层号的自动转化。 1.1.2 绘图窗口X向和Y向最大尺寸。 绘图窗口总体坐标的原点在窗口的左下角,根据所设置的X和Y向最大尺寸CAD可自动控制绘图窗口的大小,输入轴网时,使整个轴网系统离绘图窗口的左边和下边保持一定距离。当结构平面比较小时,X和Y向最大尺寸可设小一些,使右上角的空白减小;当结构平面比较大,超出当前绘图窗口,X和Y向最大尺寸可设大一些,使结构平面缩进绘图窗口。此种情况在第一标准层并且还没有输入第二标准层平面数据时,点按按钮窗口的“显示全图”,录入系统自动调整使结构平面在绘图窗口正中,且周边留有一定空白,所以工程师一般不用设置这两参数。 1.1.3 结构形式 =0则所有结构平面为框架、框剪或剪力墙结构平面,=1则所有结构平面为砖混平面,=2则底下为框架结构平面,上面为砖混平面。 1.1.4 抗震烈度 取6、7、8或9,只影响砖混平面的抗震验算,对底框结构平面,必须在相对应的结构分析程序的总体信息中设置抗震烈度。

1.1.5 楼面刚度类别 刚性:1;刚柔性:2;柔性:3 1.1.6 墙体自重 为砌块自重,若考虑抹灰的重量可增加自重数值。 1.1.7 砌体材料(1:砖;2:砼小;3:砼中;4:煤灰) 根据砌体所用材料,分别选择砖及空心砖、砼小型空心砌块、砼中型空心砌块、粉煤灰中型空心砌块等。计算时区别在于他们的抗剪强度和抗压强度。 1.1.8 构造柱是否参与工作(是:1;否:0) 当选择1时,将按《广厦建筑结构CAD系统说明书》附录七第9条根据砼构造柱截面积求出墙段的折算截面积来计算承载力,此时结构应隔开间或每开间设置构造柱;当选择0时,将不考虑构造柱实际截面积,而只根据构造柱数量来考虑承载力是否提高10%。 1.1.9 底层框架层数 当结构形式为2(即底框)时,输入底框层数,层数可大于一,当此设置超规范时,CAD结果只起参考作用。 1.1.10 悬臂梁导荷至旁边砖墙上比例和悬臂梁导荷至构造柱上比例。 砖混平面所有的梁都作为次梁输入,悬臂次梁上的荷载由构造柱、悬臂梁两边砖墙和与悬臂梁同方向的砖墙三方按设定的比例承担,工程师根据经验设定。 1.1.11 考虑墙梁作用上部荷载折减系数 分为无洞口墙梁折减系数和有洞口墙梁折减系数。 当输入的墙梁荷载折减系数小于1.0时,软件在导荷时,将对上部砖墙传递给框架梁的均布恒载和活荷载乘以该折减系数,折减掉的均布荷载将按集中荷载作用

结构设计经验--模型调整

慢慢摸索得结构设计经验 高层结构需要控制得几个比值:轴压比、周期比、剪重比、刚度比、位移比、刚重比、层间受剪承载力之比 1、轴压比 轴压比主要就是控制结构得延性,具体要求见抗规6、3、6与6、4、5,高规6、4、2与7、2、14。 轴压比过大则结构得延性要求无法保证,此时应加大截面面积或提高混凝土强度;轴压比过小,则结构得经济性不好,此时应减小截面面积。PKPM中得查瞧方法:

2、周期比 周期比控制得就是结构侧向刚度与扭转刚度之间得相对关系,它得目得就是使抗侧力构件得平面布置更合理,使结构不致于出现过大得扭转效应。一句话,周期比不就是要求结构足够结实,而就是要求结构承载布置合理,具体要求见高规4、3、5。刚度越大,周期越小。 抗侧力构件对结构扭转刚度得贡献与其距结构刚心得距离成正比,意思就是结构外围得抗侧力构件对结构得扭转刚度贡献最大。 结构得第一、第二振型宜为平动,扭转周期宜出现在第三振型及以后。 当第一振型为扭转时,说明结构得扭转刚度相对于其两个主轴得侧移刚度过小,此时应沿两个主轴适当加强结构外围得刚度,或沿两个主轴适当削弱结构内部得刚度。 当第二振型为扭转时,说明结构沿两个主轴得侧移刚度相差较大,结构得扭转刚度相对于其中一主轴(第一振型转角方向)得侧移刚度就是合理得,但对于另一主轴(第三振型转角方向)得侧移刚度过小,此时应适当削弱结构内部沿第三振型转角方向得刚度或适当加强结构外围(主要就是沿第一振型转角方向)得刚度。

PKPM中得查瞧方法:

3、位移比 位移比就是指采用刚性楼板假定下,端部最大位移(层间位移)与两端位移(层间位移)平均值得比, 位移比得大小反映了结构得扭转效应,同 周期比得概念一样都就是为了控制建筑得扭转效应提出得控制参数。见抗规3、4、3,高规4、3、5。 位移比不满足时只能经过人工调整结构平面布置,减小结构刚心与形心得偏心距。调整方法如下: (1)由于位移比就是在刚性楼板假定下计算得,最大位移比往往出如今结构得四角部位,因此应留意调整结构外围对应位置抗侧力构件得刚度;同时在设计中,应在结构措施上对楼板得刚度予以保证。 (2)应用顺序得节点搜索功用在SATWE得“剖析结果图形与文本显示”中得“各层配筋构件编号简图”中快速找到位移最大得节点,增强该节点对应得墙、柱等构件得刚度,也可找出位移最小得节点削弱其刚度,直到位移比满足要求。 PKPM中得查瞧方法:

数据结构课程设计心得体会范文3篇

数据结构课程设计心得体会范文3篇 导语:心得体会是指一种读书、实践后所写的感受性文字。语言类读书心得同数学札记相近;体会是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。以下是小编整理数据结构课程设计心得体会范文,以供参考。 篇一:数据结构课程设计心得体会 通过本次课程设计,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了《数据结构与算法》这门课程之后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉他有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也就说明了想要把生活中的信息转化到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。 图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这就是一件很巧妙的事情,经过了思考和老师同学的帮助,我用 edges[i][j]=up 和 edges[j][i]=up 就能实现了一个双向图信息的 存储。 对整个程序而言,Dijkstra 算法始终都是核心内容,其实这个 算法在实际思考中并不难,也许我们谁都知道找一个路径最短的方法,及从顶点一步一步找最近的路线并与其直接距离相比较,但是,在计

算机中实现这么一个很简单的想法就需要涉及到很多专业知识,为了完成设计,在前期工作中,基本都是以学习C 语言为主,所以浪费了很多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的原因,只能做一些很累赘的函数,可见在调用知识点,我没有掌握好。不过,有了这次课程设计的经验和教训,我能够很清楚的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf()和包涵在 #include 头文件中的输入函数。因为课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。 篇二:数据结构课程设计心得体会 本次课程设计,使我对《数据结构》这门课程有了更深入的理解。《数据结构》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。 我的课程设计题目是线索二叉树的运算。刚开始做这个程序的时候,感到完全无从下手,甚至让我觉得完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献,之后便开始着手写程序,写完运行时有很多问题。特别是实现线索二叉树的删除运算时很多情况没有考虑周全,经常运行出现错误,但通过同学间的帮助最终基本解决问题。 在本课程设计中,我明白了理论与实际应用相结合的重要性,并

工程结构设计经验总结汇总

工程结构设计经验总结汇总 一、上部结构布置、PKPM建模、工作流程注意事项 1、小于等于C25混凝土时,保护层厚度+5mm 2、扭转位移比小于1.2,不用点双向地震 3、抗震缝相关规范:《抗规》6.1.4 4、有效质量系数<90%,说明结构存在局部振动较多,较为松散,常为有较多不与楼板相连的构件的情况。 5、外边柱、墙的外边线到轴线距离沿结构全高一致。 6、双连梁:利用窗台增设连梁。例如原200X600连梁超筋,改为双200X450连梁,建模时按400X450输入正常连梁,计算结果均分到两根连梁上。 7、初次建模从CAD导入轴网至PKPM时,退出“AUTOCAD向建筑模型转化”菜单时不点“清理无用的节点”,否则刚导入的轴网、节点又被清除了。 8、现阶段6mm一级钢(270Mpa)供应不足,故不宜采用。 9、PMCAD建模时别忘了点“自动计算现浇楼板自重” 10、强制刚性假定 高层结构计算位移保留弹性板面外刚度

偶然偏心 双向地震【高规4.3.2】 偶然偏心(只看位移比) 高层结构计算配筋 双向地震 ·计算后发现楼层位移满足要求且位移比小于1.2,在计算配筋和出计算书时可不勾选双向地震。 另外,计算配筋和出计算书时不勾选强制刚性假定和保留弹性板面外刚度。 强制刚性假定 多层结构计算位移 保留弹性板面外刚度 多层结构计算配筋:双向地震 ·计算后发现楼层位移满足要求且位移比小于1.2,在计算配筋和出计算书时可不勾选双向地震。另外,计算配筋和出计算书时不勾选强制刚性假定和保留弹性板面外刚度。 11、调模型技巧: ·对于柱、墙较密的区域,柱、墙截面做小,反之做大。

PKPM软件结构设计经验汇总

PKPM软件结构设计经验汇总 PKPM软件结构设计经验汇总 (1) pkpm中柱下条形基础计算 (2) 如何迅速提高PKPM结构建模速度? (3) PKPM悬挑结构的边梁再挑板处理办法 (5) PKPM怎么设悬挑板 (5) PKPM楼板怎么开洞 (6) pkpm梁箍筋超限如何调整? (8) 门式刚架结构中夹层的设计用pkpm软件计算时,如何建模计算? (9) pkpm梁箍筋超限如何调整? (10) PKPM框架柱超筋后如何处理? (11) PKPM配筋计算结果手配钢筋问题? (11) PKPM钢结构设计经验 (12) pkpm建模时楼梯板厚和荷载如何输入? (22) PKPM中是一起建模还是分开建模? (23) PKPM中井字梁的建模方法 (24) PKPM中如何布置变截面梁 (24) PKPM建模不偏轴输入梁柱,影响大不大? (25) pkpm-剪力墙如何根据SATWE计算结果配筋 (25) PKPM施工缝验算超限怎么调整 (30) PKPM三级框架柱结构优化设计 (32) PKPM短肢剪力墙输入方法 (34) PKPM结构技术问题汇总 (36) PKPM短肢剪力墙输入方法 (41) PKPM悬挑板可否传导荷载与扭矩? (42) 38条PKPM钢结构设计问答题,你都知道吗? (43) PKPM丨Satwe参数详解:活荷载信息 (54) PKPM丨Satwe参数详解:风荷载信息 (57) PKPM丨Satwe参数详解:地震信息 (60)

pkpm中柱下条形基础计算 pkpm没有专门的柱下条基计算,但是框架结构,柱下如果采用条形基础,却可以用地基梁来计算,即它可以承担地基反力,计算是采用弹性地基梁计算。步骤如下: 1、读入地质资料输入 2、参数输入包括基本参数(主要是地基承载力特征值)和地梁筏板参数(主要是基床反力系数、地梁相关材料参数、钢筋调整参数、梁肋朝向) 3、网格输入(轴线延伸命令修改形成悬挑地基梁轴线) 4、修改荷载参数、读取荷载 5、定义地基梁(必须定义梁肋高和梁肋宽,地梁翼缘宽度可随意给出但应大于梁肋宽因为退出交互步骤时程序会给出调整翼缘宽度的机会)并布置地基梁 6、退出交互步骤:注意第一修改地梁翼缘宽度第二检查是否生成弹性地基梁计算用数据文件(即出现相关荷载值、相应坐标、地基反力、修正后地基承载力等信息) 7、弹性地基梁/基础沉降计算: 7-01:检查地质资料是否正确 7-02:设置计算参数(注意:应采用完全柔性假定、地下水高度需要修改) 7-03:进入附加反力图示,选择沉降计算菜单进行沉降计算,之后可查看相关需要数据 8、弹性地基梁/结构计算 8-01:选择是否进行交叉底面积重复利用计算、修改地基梁参数(注意:地梁计算时采用的内力)、选择计算采用的模型(可采用satwe、tat生成的上部基础刚度)进行计算 8-02:查看相关荷载工况下的内力图 9、弹性地基梁/参看结果(正常操作) 10、弹性地基梁施工图(正常操作) --------------------------------------------------------------------

梁柱设计经验结构设计心得

梁柱设计经验结构设计心得 一、梁的设计 1.梁尺寸确定。 该工程定为纵横向承重,主要为横向承重,根据梁尺寸初步确定: 主梁高h : (1/8—1/12)L, 宽b(1/3—1/2)h 连系梁高h : (1/10-1/15)L, 宽b(1/3-1/2)h 次梁高h : (1/12-1/18)L, 宽b(1/3-1/2)h 2我这里引用一些梁设计的经验: (1).梁上有次梁处(包括挑梁端部)应附加箍筋和吊筋,宜优先采用“附加箍筋”。 梁上小柱和水箱下, 架在板上的梁, 不必加附加筋。 可在结构设计总说明处画一节点,有次梁处两侧各加三根主梁箍筋,荷载较大处详施工图。

(2).当外部梁跨度相差不大时,梁高宜等高,尤其是外部的框架梁。 当梁底距外窗顶尺寸较小时,宜加大梁高做至窗顶。 外部框架梁尽量做成梁外皮与柱外皮齐平。 当建筑有要求时:梁也可偏出柱边一较小尺寸。梁与柱的偏心可大于1/4柱宽,并宜小于1/3柱宽。(3).折梁阴角在下时纵筋应断开,并锚入受压区内La,还应加附加箍筋 (4).梁上有次梁时,应避免次梁搭接在主梁的支座附近,否则应考虑由次梁引起的主梁抗扭,或增加构造抗扭纵筋和箍筋。(此条是从弹性计算角度出发)。当采用现浇板时,抗扭问题并不严重。 (5).原则上梁纵筋宜小直径小间距,有利于抗裂,但应注意钢筋间距要满足要求,并与梁的断面相应。箍筋按规定在梁端头加密。布筋时应将纵筋等距,箍筋肢距可不等。小断面的连续梁或框架梁,上、下部纵筋均应采用同直径的,尽量不在支座搭接。 (6).端部与框架梁相交或弹性支承在墙体上的次梁,梁端支座可按简支考虑,但梁端箍筋应加密。

【结构设计】结构大神分享的20点结构设计经验总结

结构大神分享的20点结构设计经验总结 1.关于箱、筏基础底板挑板的阳角问题: (1).阳角面积在整个基础底面积中所占比例极小,干脆砍了.可砍成直角或斜角. (2).如果底板钢筋双向双排,且在悬挑部分不变,阳角不必加辐射筋,谁见过独立基础加辐射筋的?当然加了也无坏处. (3).如果甲方及老板不是太可恶的话,可将悬挑板的单向板的分布钢筋改为直径12的,别小看这一改,一个工程省个3、2万不成问题. 2.关于箱、筏基础底板的挑板问题: 1).从结构角度来讲,如果能出挑板,能调匀边跨底板钢筋,特别是当底板钢筋通长布置时,不会因边跨钢筋而加大整个底板的通长筋,较节约. (2).出挑板后,能降低基底附加应力,当基础形式处在天然地基和其他人工地基的坎上时,加挑板就可能采用天然地基.必要时可加较大跨度的周圈窗井. (3).能降低整体沉降,当荷载偏心时,在特定部位设挑板,还可调整沉降差和整体倾斜.

(4).窗井部位可以认为是挑板上砌墙,不宜再出长挑板.虽然在计算时此处板并不应按挑板计算.当然此问题并不绝对,当有数层地下室,窗井横隔墙较密,且横隔墙能与内部墙体连通时,可灵活考虑. (5).当地下水位很高,出基础挑板,有利于解决抗浮问题. (6).从建筑角度讲,取消挑板,可方便柔性防水做法.当为多层建筑时,结构也可谦让一下建筑. 3.关于箍筋在梁配筋中的比例问题(约10~20%): 例如一:8米跨梁,截面为400X600,配筋:上6根25,截断1/3,下5根25,箍筋范围内加密.纵筋总量:3.85*9*8=281kg,箍筋:0.395*3.5*50=69,箍筋/纵筋=1/4,如果双肢箍仅为1/8,箍筋相对纵筋来讲所占比例较小,故不必在箍筋上抠门.且不说要强剪弱弯.已经是构造配箍除外. 4.关于梁、板的计算跨度: 一般的手册或教科书上所讲的计算跨度,如净跨的1.1倍等,这些规定和概念仅适用于常规的结构设计,在应用日广的宽扁梁中是不合适的.梁板结构,简单点讲,可认为是在梁的中心线上有一刚性支座,取消梁的概念,将梁板统一认为是一变截面板.在扁梁结构中,梁高比板厚大不了多少时,应将计算长度取至梁中心,选梁中心处的弯距和梁厚,及梁边弯距和板厚配筋,取二者大值配筋.

相关主题