房屋面积测量计算系统集成的制作方法

文档序号:6361881阅读:211来源:国知局
专利名称:房屋面积测量计算系统集成的制作方法
技术领域
本发明涉及一种房屋面积测量计算系统集成,包括硬件和计算软件。
背景技术
目前的房屋测绘方法是在房屋建好后人工使用尺或测距仪,将测量结果记录下来另行计算。这种方法存在以下几个不便1.尺寸使用人工抄写,容易出错;2.测量人员在现场手工绘制实际建筑图,不精确而且容易漏掉边角;3.测量时间长,中等规模的楼每栋需要一至两天时间;4.存在人为修改实际测量值的可能;5.某些面积计算方法不容易被接受,对测量人员素质要求高;6.若计算规则改变,返回计算难度大。
目前还没有合适的自动化工具来实现房屋面积的自动测量和计算方法。

发明内容
本发明的目的是提供一种自动化工具来实现房屋面积的自动测量和计算方法系统的软硬件的集合,通过该系统集合作出符合国家表标准的计算结果,并打印出相应的存档硬拷贝。
上述的目的通过以下的技术方案实现房屋面积测量计算系统集成,其组成包括工业控制单板机,所述的单板机的输入装置包括15-21键小键盘,球迹鼠标、触摸屏和/或激光测距仪,所述的单板机的输出设备包括所述的液晶触摸屏、外接打印机和外接硬盘,以及电池,所述的单板机中装有房屋面积测量计算系统软件。
所述的房屋面积测量计算系统集成中,所述的软件包括文件存取、绘图、参数修正、计算、重绘、打印等模块,进行房屋测绘中的预先草图绘制、现场数据输入及参数修正、按比例对实图放大缩小进行重建、数据计算、各种所需数据打印等功能模块,采用ANSIC和C++混合编程。
这个技术方案有以下有益效果1.本系统的开发由于采用PC104微型计算机作为硬件平台,因此需要在分辨率为640*480的DOS环境的图形模式,采用C语言对图形绘制、处理、运算等进行编程。由于DOS环境下可供使用的内存比较小,因此在图形可视化编程过程中,需要不断的对程序进行优化,实现对内存的合理使用,从而在DOS环境下,利用编程实现了利用鼠标控制的仿WINDOWS可视化操作界面。
2.建筑面积测绘是一个比较复杂的测量和计算过程,本系统在设计过程中,根据国家建筑面积测绘标准,采用面向对象的C++图形编程,实现了对各种形状面积的计算,并实现了公有面积的一次分摊和二次分摊。
3.由于本系统采用中文可视化界面,在开发过程中采用了C语言DOS环境下汉字库的调用技术,汉字库为希望汉字系统的16位点阵宋体字库。采用PLC5(Printer Command Language)打印机命令语言,实现在了DOS环境下激光打印机的驱动。
4.本产品的硬件采用PC-104微型计算机加小液晶显示器,显示器侧面装有自定义含有15-21个键的键盘,可外接鼠标、测距仪。可以自行编制测量计算软件,可以严格的按照国家标准对距离和面积进行测量。
5.操作简便,计算过程自动化,测量人员只要将数据输入马上就可得到计算结果;测量精度高,能精确到毫米级且可对精度调整;6.操作图形界面化,先制图后计算,避免漏测和误测;计算规则可根据国家标准的更新而改变;体积小,只有字典大小,携带方便。
7.软件包括房屋测绘中的预先草图绘制、现场数据输入及参数修正、按比例对实图放大缩小进行重建、数据计算、各种所需数据打印等功能模块,所以运行速度快、软件所占空间小(只有269k),可以只用一个电子盘(8M)就能装下所有的应用软件和存储数据。


附图1是本发明的结构示意图。
本发明的
具体实施例方式实施例1房屋面积测量计算系统集成,其组成包括装载主机箱5中的工业控制单板机,所述的单板机的输入装置包括15-21键小键盘1,球迹鼠标2、触摸屏3和/或激光测距仪,所述的单板机的输出设备包括所述的液晶触摸屏3、外接打印机和外接硬盘,接口为4,以及电池,所述的单板机中装有房屋面积测量计算系统软件。
其中1.硬件部分的构件详述如下
主机板采用PC\104系列单板工业控制机处理器-ZFx86 CPU系统芯片集-板上集成16MB/32MB系统内存BIOS -Phoenix BIOS 4.0 Revision 6-C&T69000 LCD/CRT视频加速器2MB SDRAM,LCD和在板视频 CRT同步显示640×480×24bpp、800×600×24bpp、1024×768×16bpp、1280×1024×8bpp,在板LAN -Realtek RTL8139C 10/100Mbps以太控制器IDE控制器 -一个Ultra33通道,支持2个EIDE设备USB接口 -二个USB接口多I/O接口 -一个FDD接口、一个并口、二个RS-232、一个PS/2键盘/鼠标接口、一个115kbps IrDA接口固态盘接口-CompactFlash接口电子盘看门狗定时器 -1~255秒可编程扩充总线 -PC/104电源 -单+5V电源供电,5V/900mA(典型值)外形尺寸 -96mm×90mm工作温度 --10℃~60℃相对湿度 -5%--90%,非凝结输入设备自制小键盘自制15键小键盘,包括“0~9”“A”“G”“Z”“回车”“删除”键。这些键是根据软件系统的设计而定的。键盘采用标准的键盘设计方法,采用标准的键盘连接线连接到主机板的ps/2键盘口上。
轨迹球鼠标用ps/2鼠标连接线连接到主机板的ps/2接口上。因为轨迹球鼠标定为比较精确,用户可以比较精确、方便的利用鼠标完成房屋图纸的绘制工作。
液晶触摸屏我们采用东芝9英寸的黑白夜景触摸屏。用专用的15针视频连接线连接到主机板上的VGA/LCD显示输出接口。控制接口直接连接到主机板的LCD控制接口上。
用户可以在液晶触摸屏上通过点击菜单来实现对系统的操作。简单方便。
激光测距仪Pro4型激光测距仪,体积188×70×47mm,重量440g,测量精度1.5mm/100m测量距离0.2~100m接口RS232串行口用标准串口线连接到主机板的串口上输出设备液晶触摸屏同上(它既是输入设备又是输出设备)外接打印机用并口线连接到主机板的并行接口上,打印机是用来输出测绘的图纸和数据的外接硬盘用标准的硬盘线连接到主机板的IDE接口上,电源需要单独提供,用来备份和导出采集到的测量数据和图纸。
电池我们采用900mA锂电池对系统进行供电,将电池内置到机箱内。一般情况下系统可以连续工作4个小时以上。
2.软件部分说明软件设计阶段遵循的原则如下根据国家标准规定的具体测绘过程、计算过程、出图过程进行需求分析,此软件需要进行文件存取、绘图、参数修正、计算、重绘、打印等模块。
本系统采用图形界面,视图直观而且便于操作,图形界面的定义如下<pre listing-type="program-listing">#define_NOCURSOR_#ifndef_DRAW_#define_DRAW_#include″mouse.h″#include″frame.h″class Drawpublic mouse,public FRAME {protected int Oldx,Oldy;&lt;dp n="d4"/&gt;int X,Y,X1,Y1,X2,Y2,X3,Y3;publicvoid DrawLine();void DrawRectangle();void DrawArc();void DrawUnregule();void DrawTra();void DrawSti();void DrawCor();void DelRec();void DelArc();void DelUrg();void DelTra();void DelSti();void DelCor();};#endif#ifndef_FILE_#define_FILE_#include″str.h″#include″frame.h″#include″box.h″class Filepublic FRAME,public BASEBOX,public STRING{protectedint NewFileFunc;int MX,MY,MX1,MY1,MX2,MY2,MX3,MY3,MX4,MY4,MX5,MY5,MX6,MY6,MX7,MY7,MX9,MY9,MXA,MYA,y[6];int width,height,i;void*FileBuf;// FILE*fp;unsigned size;publicvoid FileChoose(int Func);void FileChoose();void FileInput(int Func_1);void FileInput();void FileCaculate(int Func_2);void FileCaculate();void FilePrint(int Func_3);void FilePrint();void FileDash();void FileHelp(int Func_4);void FileHelp();void File_New();void File_Save();void File_Save(char*FileName);void File_New_Path();void File_Open_Path();void File_Quit();void File_Open(char*FileName);void File_Open();void File_Input(char*FileName);&lt;dp n="d5"/&gt; void File_Input();void File_Rebuild();void File_All_Area();void File_Public_Area();void File_Build_Area();void File_Sell_Area();void File_All_Print();void File_Each_Print();void File_Build_Print();void File_Sell_Print();void File_All_Print(char*FileName);void File_Each_Print(char*FileName);void File_Build_Print(char*FileName);void File_Sell_Print(char*FileName);void File_Otx();void File_Help1();void File_Help2();void File_rec_eq(int f);void File_urg_eq(int f);void File_arc_eq(int f);void File_tra_eq(int f);void File_sti_eq(int f);void File_cor_eq(int f);// void File_Draw_Pic();};#endif#ifndef_GET_#define_GET_class Get_spublic File{protectedint NX,NY;char Chang[15];publicfloat get_sh(char*shujuming);};#endif#ifndef_OUT_#define_OUT_class Out_Scrpublic File{//protected//int SX,SY; //char*shuju;publicvoid out_scr(int SX,int SY,float shuju);};#endif#define_NOCURSOR_#ifndef_INPUT_#define_INPUT_&lt;dp n="d6"/&gt;#include″mouse.h″#include″frame.h″class Inputpublic File//Get_s{publicvoid InputRec();void InputUrg();void InputArc();void InputCor();void InputTra();void InputSti();};#endif</pre>2.各模块的实现过程说明如下2.1文件存取首先使用initgraph(&amp;driver,&amp;mode,″″);对DOS操作系统进行图形界面的初始化。主界面定义为<pre listing-type="program-listing">class FRAME{ protectedint i,MaxX,MaxY,OX,OY;int Left,Top,Right,Bottom;int FillStyle;int AllFunc; publicvoid DrawFrame();void Rect(int,int,int,int,int);void PutMessage(char*Msg);void DrawMenu(); // void DrawFillstyle();void WriteXY(int,int);void Writedxdy(int,int);};#endif</pre>鼠标的各种图形定义<pre listing-type="program-listing">#ifndef_MOUSE_#define_MOUSE_#include<dos.h>#include<stdio.h>class mouse{ private union REGS ireg,oreg; publicchar Reset();void Show_Mouse();void Hide_Mouse();char Left_Pressed();char Right_Pressed();void Get_XY(int*x,int*y);void Set_XY(int x,int y);void Set_X_Range(int min,int max);void Set_Y_Range(int min,int max);void Set_Graphic_Cursor(int x,int y,unsigned int*pattern);&lt;dp n="d7"/&gt;int Motion(int*x,int*y);};#ifndef_NOCURSOR_unsigned Cursor[7][32]={{//Cursor
-------->hand//Screen Mask0xE1FF, 0xE1FF, 0xE1FF, 0xE1FF, 0xE1FF, 0xE000, 0xE000, 0xE000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, //corsor Mask 0x1E00, 0x1200, 0x1200, 0x1200, 0x1200, 0x13FF, 0x1249, 0x1249, 0xF249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x8001, 0xFFFF }, { //cursor[1]--------->arrow //screen mask 0x3FFF, 0x1FFF, 0x0FFF, 0x07FF, 0x03FF, 0x01FF, 0x00FF, 0x007F, 0x003F, 0x001F, 0x01FF, 0x10FF, 0x30FF,&lt;dp n="d8"/&gt; 0xF87F,0xF87F,0xFC3F,//cursor mask 0x0000,0x4000,0x6000,0x7000,0x7800,0x7C00,0x7E00,0x7F00,0x7F80,0x7FC0,0x6C00,0x4600,0x0600,0x0300,0x0300,0x0180},{//cursor[2]--------->cross//screen mask 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,//cursor mask 0x0200,0x0200,0x0200,0x0200,0x0200,0x0000,0xF8F8,0x0000,0x0200,0x0200,0x0200,0x0200,0x0200,0x0000,0x0000,0x0000}&lt;dp n="d9"/&gt;};#elseextern unsigned Cursor[7][32];#endif//_nocursor_define#endif//end of mouse define</pre>使用M.Get_XY(&amp;Main_X,&amp;Main_Y);Main_X=(Main_X-40)/70;Main_Y=Main_Y/20; 取得鼠标位置。
新建文件使用void File::FileChoose()函数新建普通面积、总面积、公有面积、二次总面积、二次公有面积中的任意一种,每种看成一个文件,使用fopen(Filename,”name”)函数形成一个文件,其中包含数据写入缓冲区,设置写入模式setwritemode(COPY_PUT);,使用一系列的Rect(Left+12,30*10+14*4-5,Left+10+68,30*10+14*5+4,1)等函数设置对话框,输入使用显示屏右面的数字键盘,按enter间确认,按backspace键进行修改,键盘上设有总面积和二次面积等的快捷键,进行文件编号时可以直接使用,如z001代表一号楼总面积。
参数修正使用Title(MX-150,MY-45,MX+150,MY+45,″Load File″);设置弹出对话框,将激光测距仪的温度、气压、加常数、乘常数写入文件以便在以后进行加权计算;新建楼号使用fopen(Filename,”name”)函数将被测量和计算的整栋大楼的楼号输入数据缓冲区;使用PutMessage(″Hit Esc or choose Cancel to end.″);进行操作提示。
打开楼号使用fopen()函数打开一个已经存在的文件,退出使用fclose()函数并设置setwritemode(COPY_PUT);将以形成的文件数据写入数据缓冲区。
2.2绘图功能绘图应能采用各种手段完成建筑图纸的绘制、删除、修改、重建、保存、退出。
各种图形的实现方法定义如下2.2.1矩形房间和房间内的柱子实现如下柱子<pre listing-type="program-listing">extern CORNER{char Cor_Name[2]; //such as zs,ys,zx,yxfloat Cor_X,&lt;dp n="d10"/&gt;Cor_Y, Cor_long, Cor_width, Cor_area;}zs,ys,zx,yx; //left_up,...right_down//struct</pre>矩形房间<pre listing-type="program-listing">REC_ROOM//define rectangle room attribute{char Rec_RoomName[2];//such as A1float rx0,//original pointry0, rw_long, //the wall total x-lengthrw_width,//the wall total y-lengthrt_area,//the all area include the corner areararea;//the useful area of the roomCORNER zs,ys,zx,yx;};#endif#endif</pre>主要使用rectangle(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY);Get_XY(&amp;Oldx,&amp;Oldy);WriteXY(Oldx-OX,Oldy-OY);rectangle(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY);记录下矩形房间的长和宽长度2.2.2不规则房间代表走廊或呈不规则形状的房间,要求房间的形状横平竖直,画线时直线可以稍微有水平或垂直偏差,但不能超过3度。房间里可以有柱子或圆楼梯,但不能有其他东西。
<pre listing-type="program-listing">URG_ROOM{ int end_line;char Urg_RoomName[2];float ux[20],uy[20],rux[20],ruy[20],//the real point distanceu_long[20], u_hou[20], u_length,//the wall lengthu_length_z, //the zheng area of the roomu_length_f, //the fu area of the roomu_t, //the urg wall thickness&lt;dp n="d11"/&gt;zs_long, //the zs corner longzs_width,//the zs corner width ys_long, ys_width, zx_long, zx_width, yx_long, yx_width, u_t_area,//the urg wall areaut_area, uarea_1, //urg total areauarea; //usefut area};</pre>2.2.3弧形房间代表由弦和弧围成的曲面形状的房间,如呈弧形突出的阳台,室内曲面的墙、不等宽的圆楼梯等。
<pre listing-type="program-listing">ARC_ROOM{char Arc_RoomName[2]; int arc_label;float X,Y,S,E,c_2, arc_radius, r_arc_h, r_long, //the real arc heightr_arc_radius,//the real arc radiusarc_w, //the arc wall thicknessat_w_area, at_area, aarea_1, //the all areaaarea; //the useful area};</pre>2.2.4梯形房间代表梯形房间或阳台、楼梯,要求房间的上下两边平行且不相等,左右两边不平行,房间里可以有柱子或圆楼梯,但不能有其他东西。
<pre listing-type="program-listing">TRA ROOM{ int end_line1;char Tra_RoomName[2];float tx[4],//no.1 original pointty[4], //tx20, //no.2 original point //ty20, t_h, //tra height&lt;dp n="d12"/&gt;// tw_1_long,//the wall total x-length// tw_2_long,//the wall total y-lengthrtw_1_long, rtw_1_t, //the wall total x-lengthrtw_2_long, rtw_2_t, //the wall total y-lengthlw_long, lw_t, //the left wall thicknessrw_long, //the top wall thicknessrw_t, //the right wall thickness //the bottom wall thicknesszs_long, //the zs corner longzs_width, //the zs corner widthys_long, ys_width, yx_long, zx_width, yx_long, yx_width, tw_area, //the wall areatt_area, tarea_1, //the all area include the corner areatarea;//the useful area of the room};</pre>2.2.5圆楼梯代表楼梯等宽的回旋型楼梯。
<pre listing-type="program-listing">STI_ROOM{char Sti_RoomName[2];float X,Y,S,E,c_2,arc_radius,arc_radius1,arc_1_long,arc_s_x0,arc_s_y0,arc_s_x1,arc_s_y1,//the arc start point end point arc_h,arc_h1,arc_s_x00,arc_s_y00,arc_s_x11,arc_s_y11,&lt;dp n="d13"/&gt;s_arc_h, //the real arc heights_arc_h1, s_arc_1_radius,//the real arc radiuss_arc_2_radius, sarea_1, //the real arc radiussarea; //the useful area};</pre>2.3面积计算根据上述的作图实现方法,每划出一条线计算机都记录了线段的长度、弧线的弧度、梯形的高度等数据,根据这些数据计算出房间的面积,计算方法如下矩形房间面积计算包括使用面积和墙体面积,使用面积计算为房间的长乘宽float cacu_area(float rn_rw_long,float rn_rw_width){float area=rn_rw_long*rn_rw_width;return area;}墙体面积为四面墙的使用面积之和,但按国标为避免因为墙的长短不同和外墙面积与内墙面积计算所带来的矛盾(国标规定外墙面积计算按墙体厚度一半计算),采用算法为其中标有灰色的部分采用的是长乘宽除2的算法,因为每面外墙都算一半,而每面内墙都和另一面内墙公用所以也算一半,这种算法能正确计算出墙体面积,简称为追尾算法,正确性证明略。实现过程如下float A1_total_area=cacu_area(A1.rw_long,A1.rw_width);float A1_corner1_area=cacu area(A1.rc1_long,A1.rc1_width);float A1_corner2_area=cacu_area(A1.rc2_long,A1.rc1_width);float A1_corner3_area=cacu_area(A1.rc3_long,A1.rc3_width);float A1_corner4_area=cacu_area(A1.rc4_long,A1.rc4_width);A1.rarea=A1_total_area-A1_corner1_area-A1_corner2_area-A1_corner3_area-A1_corner4_area;不规则房间不规则房间指那些主要由直角弯组成的面积但不是矩形,如走廊,方厅等。
不规则房间由连续线段画出,主要使用的是line()函数,其算法由起始点作为坐标原点,计算后续点所构成的各象限的矩形的面积矢量和,具体如下<pre listing-type="program-listing">void Input::InputUrg(){ extern URG_ROOM urg[4];setcolor(RED);o=0;SetView();Hide_Mouse();urg[f].rux
=0;urg[f].ruy
=0;for(int j=0;j<urg[f].end_line;j++){do{ o=1-o;setcolor(change[o]);line(urg[f].ux[j]+80,urg[f].uy[j]+50,urg[f].ux[j+1]+80,urg[f].uy[j+1]+50);delay(300);} while(!kbhit());setcolor(WHITE);line(urg[f].ux[j]+80,urg[f].uy[j]+50,urg[f].ux[j+1]+80,urg[f].uy[j+1]+50);char temp_key=getch();urg[f].u_length=G.get_sh(″墙长″);//qiang chang″);urg[f].u_long[j]=urg[f].u_length;urg[f].u_t=G.get_sh(″墙厚″);//qiang hou″);urg[f].u_hou[j]=urg[f].u_t;if(fabs(urg[f].ux[j]-urg[f].ux[j+1])<=3) {if(urg[f].uy[j]<urg[f].uy[j+1])//3{ urg[f].rux[j+1]=urg[f].rux[j];urg[f].ruy[j+1]=urg[f].ruy[j]+urg[f].u_length;urg[f].u_t_area=urg[f].u_t_area+urg[f].u_length*urg[f].u_t/2;}if(urg[f].uy[j]>urg[f].uy[j+1])//4{ urg[f].rux[j+1]=urg[f].rux[j];urg[f].ruy[j+1]=urg[f].ruy[j]-urg[f].u_length;urg[f].u_t_area=urg[f].u_t_area+urg[f].u_length*urg[f].u_t/2;&lt;dp n="d15"/&gt;}}if(fabs(urg[f].uy[j]-urg[f].uy[j+1])<=3){//1if(urg[f].ux[j]<urg[f].ux[j+1]){ urg[f].ruy[j+1]=urg[f].ruy[j];urg[f].rux[j+1]=urg[f].rux[j]+urg[f].u_length;if(urg[f].uy[j]<=urg[f].uy
)urg[f].u_length_z=urg[f].u_length_z+urg[f].u_length*fabs(urg[f].ruy[j]);if(urg[f].uy[j]>urg[f].uy
)urg[f].u_length_f=urg[f].u_length_f+urg[f].u_length*fabs(urg[f].ruy[j]);urg[f].u_t_area=urg[f].u_t_area+urg[f].u_length*urg[f].u_t/2;}if(urg[f].ux[j]>urg[f].ux[j+1]){//2 urg[f].ruy[j+1]=urg[f].ruy[j];urg[f].rux[j+1]=urg[f].rux[j]-urg[f].u_length;if(urg[f].uy[j]>=urg[f].uy
)urg[f].u_length_z=urg[f].u_length_z+urg[f].u_length*fabs(urg[f].ruy[j]);if(urg[f].uy[j]<urg[f].uy
)urg[f].u_length_f=urg[f].u_length_f+urg[f].u_length*fabs(urg[f].ruy[j]);urg[f].u_t_area=urg[f].u_t_area+urg[f].u_length*urg[f].u_t/2;}</pre>弧形房间有弧形阳台及其他弧形面积,也包括弧形墙体周长的使用面积,弧形画法采用的是给出弧两个端点的位置和弧高,计算使用标准的弧形面积计算方法,由于需在任意位置划出弧形,弧形画法的算法为计算各象限的转角,然后画弧,这一部分的算法如下<pre listing-type="program-listing">////file name=arc-1.cpp//#include″Drawarc.h″#include<graphics.h>&lt;dp n="d16"/&gt;#include<conio.h>#include<string.h>#include<process.h>#include<math.h>#define Esc 27char Ch;extern Color;int OX,OY;void Draw::Drawarc(){ static int dx=20,dy=20;DrawFrame();PutMessage(″Press right button\ to change size and direction″);setviewport(Left+1,Top+1,Right-1,Bottom-1,1);setcolor(Color);setwritemode(XOR_PUT);Get_XY(&amp;amp;Oldx,&amp;amp;Oldy);line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY);double jiao=1.014-atan2((double)dx,(double)dy);double radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy);int arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;(int)realjiao2=realjiao1+60;arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);Writedxdy(dx,dy);while(1){ if(Motion(&amp;amp;X,&amp;amp;Y)) {line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY); jiao=1.014-atan2((double)dx,(double)dy);radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy);arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;&lt;dp n="d17"/&gt; (int)realjiao2=realjiao1+60; arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);Get_XY(&amp;amp;Oldx,&amp;amp;Oldy);WriteXY(Oldx-OX,Oldy-OY);line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY);jiao=1.014-atan2((double)dx,(double)dy);radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy);arc_x,arc_y,realjiao1,realjiao2; (int)arc_x=Oldx-OX-radius*sin(jiao); (int)arc_y=Oldy-OY+radius*cos(jiao); (int)realjiao1=180*jiao/3.14; (int)realjiao2=realjiao1+60; arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);}// if(!Inside(Oldx,Oldy,Left,Top,Right,Bottom)) //break; if(kbhit())if((Ch=getch())==Esc){ Reset(); closegraph(); exit(1);} if(Left_Pressed()) { Set_X_Range(Left+1,Right-1); Set_Y_Range(Top+1,Bottom-1); setwritemode(COPY_PUT); line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY);jiao=1.014-atan2((double)dx,(double)dy);radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy);arc_x,arc_y,realjiao1,realjiao2; (int)arc_x=Oldx-OX-radius*sin(jiao); (int)arc_y=Oldy-OY+radius*cos(jiao); (int)realjiao1=180*jiao/3.14; (int)realjiao2=realjiao1+60; arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);while(Left_Pressed()){ if(Motion(&amp;amp;X,&amp;amp;Y)) { Get_XY(&amp;amp;Oldx,&amp;amp;Oldy);WriteXY(Oldx-OX,Oldy-OY);line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY);&lt;dp n="d18"/&gt; jiao=1.014-atan2((double)dx,(double)dy); radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy); arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;(int)realjiao2=realjiao1+60;arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);} }setwritemode(XOR_PUT);line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY); jiao=1.014-atan2((double)dx,(double)dy); radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy); arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;(int)realjiao2=realjiao1+60;arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius); Set_X_Range(1,MaxX-1); Set_Y_Range(1,MaxY-1); }if(Right_Pressed()){ Set_XY(Oldx+dx,Oldy+dy); while(Right_Pressed()) {if(Motion(&amp;amp;X,&amp;amp;Y)){line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY); jiao=1.014-atan2((double)dx,(double)dy); radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy); arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;(int)realjiao2=realjiao1+60;arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);Get_XY(&amp;amp;X,&amp;amp;Y);dx=X-Oldx;dy=Y-Oldy;Writedxdy(dx,dy);&lt;dp n="d19"/&gt; line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY); jiao=1.014-atan2((double)dx,(double)dy); radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy); arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;(int)realjiao2=realjiao1+60;arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius);} } Set_XY(Oldx,Oldy);} }line(Oldx-OX,Oldy-OY,Oldx+dx-OX,Oldy+dy-OY); jiao=1.014-atan2((double)dx,(double)dy); radius=sqrt((double)dx*(double)dx+(double)dy*(double)dy); arc_x,arc_y,realjiao1,realjiao2;(int)arc_x=Oldx-OX-radius*sin(jiao);(int)arc_y=Oldy-OY+radius*cos(jiao);(int)realjiao1=180*jiao/3.14;(int)realjiao2=realjiao1+60;arc(arc_x,arc_y,realjiao1,realjiao2,(int)radius); setwritemode(COPY_PUT); setviewport(0,0,MaxX,MaxY,1);}</pre>梯形房间与矩形房间类似,但计算面积是按标准的梯形计算法,此外,梯形房间由于在建筑图中处于非正向位置,所以梯形房间在绘图时可以旋转角度以与建筑图一致,其旋转算法如下<pre listing-type="program-listing">void Draw::DrawTra(){extern TRA_ROOM tra[2];int Flad,NewX,NewY,i=0; // Draw::DrawUnregule()DrawFrame();// 按右键结束画梯形PutMessage(″″);show_hz(″按右键结束画梯形″,3,461,BLACK);// PutMessage(″Press right button to stop tiking″);setviewport(Left+1,Top+1,Right-1,Bottom-1,1);setcolor(Color);Writedxdy(0,0);&lt;dp n="d20"/&gt;setwritemode(XOR_PUT);Set_Graphic_Cursor(6,6,Cursor[2]);while(Left_Pressed());Get_XY(&amp;amp;Oldx,&amp;amp;Oldy);setcolor(LIGHTGRAY);line(Oldx-OX,0,Oldx-OX,Bottom);line(0,Oldy-OY,Right,Oldy-OY);setcolor(WHITE); //Draw::DrawUnregule()while(1){if(Motion(&amp;amp;X1,&amp;amp;Y1)){setcolor(LIGHTGRAY);line(Oldx-OX,0,Oldx-OX,Bottom);line(0,Oldy-OY,Right,Oldy-OY);setcolor(WHITE);Get_XY(&amp;amp;Oldx,&amp;amp;Oldy);WriteXY(Oldx-41,Oldy-21);setcolor(LIGHTGRAY);line(Oldx-OX,0,Oldx-OX,Bottom);line(0,Oldy-OY,Right,Oldy-OY);setcolor(WHITE);}if(kbhit())if((Ch=getch())==Esc){Reset(); //Draw::DrawUnregule()closegraph();exit(1);}if(Left_Pressed()){setviewport(Left+1,Top+1,Right-1,Bottom-1,1);Set_X_Range(Left+1,Right-1);Set_Y_Range(Top+1,Bottom-1);Get_XY(&amp;amp;NewX,&amp;amp;NewY);setcolor(LIGHTGRAY);line(NewX-OX,0,NewX-OX,Bottom);line(0,NewY-OY,Right,NewY-OY);setcolor(WHITE);Oldx=NewX;Oldy=NewY;&lt;dp n="d21"/&gt;Set_XY(Oldx,Oldy);Flad=1;setcolor(LIGHTGRAY);line(NewX-OX,0,NewX-OX,Bottom);line(0,NewY-OY,Right,NewY-OY);setcolor(WHITE);while(Left_Pressed())while(Flad) //Draw::DrawUnregule(){if(Motion(&amp;amp;X,&amp;amp;Y)){Get_XY(&amp;amp;X,&amp;amp;Y);{line(Oldx-OX,Oldy-OY,NewX-OX,NewY-OY);setcolor(LIGHTGRAY);line(NewX-OX,0,NewX-OX,Bottom);line(0,NewY-OY,Right,NewY-OY);setcolor(WHITE);NewX=X;NewY=Y;//Draw::DrawUnregule()WriteXY(X-41,Y-21);line(Oldx-OX,Oldy-OY,NewX-OX,NewY-OY);setcolor(LIGHTGRAY);line(NewX-OX,0,NewX-OX,Bottom);line(0,NewY-OY,Right,NewY-OY);setcolor(WHITE);Writedxdy(NewX-Oldx,NewY-Oldy);}}else if(Left_Pressed()){while(Left_Pressed())setwritemode(COPY_PUT);line(Oldx-OX,Oldy-OY,NewX-OX,NewY-OY);Set_XY(NewX,NewY);Oldx=NewX;Oldy=NewY;tra[b-8].tx[i]=Oldx-80; //Draw::DrawUnregule()tra[b-8].ty[i]=Oldy-50; i++;&lt;dp n="d22"/&gt;setwritemode(XOR_PUT);}else if(Right_Pressed()){setcolor(LIGHTGRAY);line(NewX-OX,0,NewX-OX,Bottom);line(0,NewY-OY,Right,NewY-OY);setcolor(WHITE);Flad=0;line(tra[b-8].tx[i-1]+39,tra[b-8].ty[i-1]+29,tra[b-8].tx
+39,tra[b-8].ty
+29);Set_X_Range(1,MaxX);Set_Y_Range(1,MaxY); //Draw::DrawUnregule()break;}}break;//end of while(Flad)}//end of Left_pressed}//end of whilesetwritemode(COPY_PUT);setviewport(0,0,MaxX,MaxY,1);//Draw::DrawUnregule()Set_Graphic_Cursor(4,0,Cursor
);Show_Mouse();F1.File_New();}</pre>旋转楼梯方形楼梯的面积可按矩形面积计算,而旋转楼梯可看成是两个弧形面积的差,所以其画法和面积计算算法可有弧形面积得出,但楼梯与弧形房间的不同之处在于没有墙体面积。
计算菜单当上述各种形状的面积分别算出之后,须根据国标计算总面积、公有面积、分摊系数、二次总面积、二次公有面积、二次分摊系数。以《中华人民共和国国家计量技术规范》JJF1058-1998《商品房销售面积测量与计算》为例,采用规定算法进行计算。这部分算法简单,只是将各面积累加即可,故略。
2.4打印分别打印各种普通面积、总面积、公有面积、使用面积、建筑面积、销售面积,采用HP6L打印机,在DOS操作系统下的打印方法定义为void open_hzk(void);void get_hz(char incode[],char bytes[]);void dishz(int x,int y,char cade[],int color);void show_hz(char far*s,int x,int y,int hz_color);void printscr(int px0,int py0,int px1,int py1,int hz_color);void readscr(int px0,int py0,int px1,int py1);int shlbit(unsigned char c,int m,int n);3.本软件的使用说明3.1基本界面3.1.1屏幕上方为菜单栏,分为文件、输入、计算、打印、帮助五栏,用鼠标在每个条目上点击将出现下拉菜单,再用鼠标点击进行具体操作。
3.1.2屏幕左方为绘图工具栏,每个按钮代表一种房间样式,左边一列代表20个矩形房间,右边上面四个代表不规则房间,接下来分别是四个弧形,两个梯形,两个圆楼梯,七个代表柱子的角,右边最下面的代表门。绘图栏最下面有一个大按钮,在新建时显示保存,按此按钮将画好的图形存入磁盘,同时图形消失。这些绘图工具基本上可以绘制出任何房间的结构图,每个按钮所代表的房间面积除弧形外都是正面积,弧形负面积用于曲面房间。
3.1.3屏幕下方为信息栏,显示各项当前操作规则。
3.1.4屏幕左上在绘图时有一交叉的十字,用于选取基准点。
3.1.5屏幕右上绘图时有相对坐标和绝对坐标显示,绝对坐标表示基准线交点的当前位置,相对坐标表示与前一坐标点的相对位置。
注意绘图的原则是封闭,即房间之间不存在嵌套。如图形复杂则将图细分以避免嵌套。每套住户或总面积应不超过20个矩形房间、四个不规则房间、四个弧型、两个梯形、两个圆楼梯、七个柱子,30个门。不规则房间边不超过20个,每个房间最多可有四个柱子。
3.2.绘图功能新建阶段绘图栏各按钮功能如下3.2.1矩形房间代表标准的矩形样式的房间或走廊、楼梯,房间里可以有柱子或圆楼梯,但不能有其他东西。点击按钮后可在屏幕上看到一个矩形,基准线的交点代表矩形的左上角,拖动鼠标可带动矩形在屏幕上移动,如要改变矩形大小,按右键将看到基准线交点移到右下角,按住右键不放拖动矩形大小发生变化,松开右键基线交点又回到左上角,再拖动鼠标将其定位,此过程可反复进行直到在合适位置画上合适大小的矩形,按左键结束。
3.2.2不规则房间代表走廊或呈不规则形状的房间,要求房间的形状横平竖直,画线时直线可以稍微有水平或垂直偏差,但不能超过3度。房间里可以有柱子或圆楼梯,但不能有其他东西。鼠标点击按钮后屏幕上出现的基准线交点即不规则房间的起始点,拖动鼠标可选择起始点,按左健将起始点定位,再拖动鼠标将看到有一条线连着起始点,选择合适位置后按鼠标左键确定,将看到此直线已被固定,继续拖动鼠标又有一条与上一点连接的直线出现,重复此过程直至画完不规则房间,最后的点应与最开始的点重合,重合后按右键结束。
3.2.3弧形房间代表由弦和弧围成的曲面形状的房间,如呈弧形突出的阳台,室内曲面的墙、不等宽的圆楼梯等。梯形和弧形搭配表示复杂曲面。点击按钮后基准线的交点代表弧的一个端点,拖动鼠标在屏幕上找到合适位置后按左键确定,再拖动鼠标可看到又一端点,再按左键确定,如果弦水平,第一点在左则弧将向上鼓,第一点在右则弧将向下鼓,如果弦垂直,第一点在上则弧将向右鼓,第一点在下则弧将向左鼓,此时出现对话框输入弧高,如果此弧的弦为水平或垂直或弧向上鼓输入正的弧高,如果弧向下鼓输入负的弧高,输入单位为米,按Enter结束输入,输入后即可看到一条弧,画弧结束。
3.2.4梯形房间代表梯形房间或阳台、楼梯,要求房间的上下两边平行且不相等,左右两边不平行,房间里可以有柱子或圆楼梯,但不能有其他东西。梯形和弧形搭配表示复杂曲面。梯形房间画法近似不规则房间,但要求先画上底或下底,在画完第三条边后按右键结束。
3.2.5圆楼梯代表楼梯等宽的回旋型楼梯。楼梯内弧画法同画弧,但输入弧高后还要求输入楼梯宽,输入后按Enter键将出现一个圆楼梯结束。
3.2.6柱子代表高层住宅房间内的立柱、通风井及其他屋内障碍物,可加到任何房间。画法同矩形房间。
注意以上每个房间图形在绘图任意时刻需要改动时,在代表该房间的按钮上按右键,该房间就会消失。再按左键重画。
3.2.7保存保存画好的图形。按此大键后出现保存提示框,键盘输入文件名,输入错误可按回格键逐个删除,文件命名规则为普通面积第一个字符取除“z”“g”外的字母,以后的字符取数字,如“a1”、“b2”。总面积第一个字符取“z”,第二个字符取数字,如“z1”,如是二次分摊总面积再加一位数字,如“z11”、“z12”,公有面积第一个字符取“g”,第二个字符取数字,如“g1”、“g2”,二次分摊公有面积再加一位数字,如“g12”、“g12”。
3.3.文件菜单操作包括新建、参数修正、打开楼号、新建楼号、退出。每项功能如下3.3.1新建楼号新建整栋楼的编号,用键盘敲入数字,如001、002等,输入错误可按回格键逐个删除,其中包括各种面积,如果楼号已经存在,则在提示栏显示此楼号已存在,3.3.2参数修正绘图和数据输入前依次输入当前温度、当前气压、加常数、乘常数。
3.3.3打开楼号打开已存在的楼号,用键盘敲入数字,如001、002等,输入错误可按回格键逐个删除,打开楼号后才可对各种面积进行操作。
3.3.4新建出现三种面积的提示,普通面积指住户的户型,总面积指整栋楼的外轮廓,公有面积指公共的使用面积,如楼梯,电梯间等,用鼠标在三种面积之一前面的方框内点击选择,选择后提示栏消失,再在帮助菜单栏打开比例尺设定,出现提示栏显示输入比例。用键盘输入作图与实际尺寸比例。
注意本绘图界面绘图区范围用点距表示为580×400,而实际测量尺寸的单位为米,长度和面积计算可以精确到毫米和平方毫米级。所以在表示时应输入显示比例。如输入40,则最大可以输入580×400×40m/1000=23.2m×16m的面积,在输入实际弧形拱高0.5米时,图中显示拱高40×0.5=20个点距。如画大面积的总面积图时比例应加大,如加到200,即图上每个点代表实际的0.2米,100个点代表100×0.2=20米。默认普通面积输入比例为30,总面积输入比例为200。
3.3.5退出结束本次操作退出。
3.4.输入菜单操作包括打开、输入、重建三项操作。
注意输入之前应在文件菜单中打开楼号。公有面积和总面积应在输入数值后再输入层数。
3.4.1打开打开已画好的房间文件。按打开后出现打开文件名提示框,用键盘输入已存在的文件名,屏幕上将出现已画好的房间样式。如果打开错误按绘图栏的大按钮退出。
3.4.2输入左键点击已有的各房间代表按钮,按提示用键盘输入各房间的实际测量尺寸,其中墙厚按实际整墙厚输入,如果此处无墙则输入墙厚为0,房间内柱子数按实际个数输入,数据输入错误可按回格键逐个删除,数据输入用Enter结束,结束后可看到一组参考数值在屏幕上出现,上面代表此房间的使用面积,下面代表此房间的建筑面积。
注意输入时直接按Enter表示值为0。弧形房间面积有正负,0代表正面积,1代表负面积,负面积是为与梯形房间配合表示复杂曲面时用。
3.4.3重建点击重建后每个房间的大小将根据实际尺寸发生变化,此时再点击绘图栏的按钮将每个房间位置重新分布,不规则房间应根据矩形房间的位置重新分布。房间全部定位后,按绘图栏右面最下的按钮画门,鼠标左键点击基准线交点代表门枢,再拖动鼠标确定门在墙上的位置,按左键后确定门的大小及位置,此时弹出对话框输入门的开向,1代表向里开,-1代表向外开,按Enter确定门的开向,如果画错右键点击画门按钮删除,再按左键重画。重建后按绘图栏大按钮保存,文件名应输入打开时采用的文件名。
注意输入总面积和公有面积的面积和层数后应马上在计算菜单计算总面积和公有面积。二次总面积和二次公有面积及二次分摊系数也应在输入完成后马上计算。
3.5.计算菜单操作包括总面积、公有面积、分摊系数、二次总面积、二次公有面积、二次分摊系数。鼠标左键点击每个部分将在屏幕下面显示参考值。
3.5.1总面积本楼的外轮廓样式×层数的累加和。单位平方米。
3.5.2公有面积本楼的公有部分面积×层数的累加和。单位平方米。
3.5.3分摊系数公有面积/(总面积—公有面积)。
注意当本楼有住宅和商户区时,住宅的总面积及公有面积和商户的总面积及公有面积需要按比例分摊,3.5.4二次总面积住宅或商户的按比例分配的公有面积与私有的总面积和。单位平方米。
3.5.5二次公有面积住宅或商户的按比例分配的公有面积与私有的公有面积和。单位平方米。
3.5.6二次分摊系数分摊的公有面积与私有的公有面积和/(私有的总面积-私有的公有面积)。3.6.打印菜单操作包括整体面积、使用面积、建筑面积、销售面积。鼠标点击每项将刷新屏幕,显示房间结构图,按Esc将取消打印进入房间详细数据界面,按Enter将打印该图同时进入房间详细数据界面,进入房间详细数据界面后按Esc将取消打印房间详细数据界面,暂停后返回原始屏幕。每项打印的区别在于根据打印需要打印不同的数据。
3.6.1整体面积本项可打印普通面积、总面积或公有面积。
3.6.2使用面积本项包括整体面积的所有内容,增加了使用面积。
3.6.3建筑面积本项包括使用面积的所有内容,增加了使用面积和建筑面积。
3.6.4销售面积本项包括建筑面积的所有内容,增加了使用面积、建筑面积和销售面积。
软件系统的安装通过软盘驱动器,将DOS6.22操作系统想安装到固态电子盘上,大约需要3M的空间。然后将测量体统软件(约200k)和config.sys、autoexec.bat两个配置文件拷贝到电子盘中。重新开机,系统将直接引导进入测量系统主窗口,用户可以利用液晶触摸屏、轨迹球鼠标和小键板对系统进行操作了。当需要测量时,将激光测距仪队准被测房间的一个被测距离,按下测量键,激光测距仪将自动将测量到的距离数据,通过串口送到计算机内,系统自动保存该距离数据,用作后面房屋面积计算时使用。整个主机尺寸21cm×15cm×8cm。
权利要求
1.一种房屋面积测量计算系统集成,其组成包括工业控制单板机,其特征是所述的单板机的输入装置包括15-21键小键盘,球迹鼠标、触摸屏和/或激光测距仪,所述的单板机的输出设备包括所述的液晶触摸屏、外接打印机和外接硬盘,以及电池,所述的单板机中装有房屋面积测量计算系统软件。
2.根据权利要求1所述的房屋面积测量计算系统集成,其特征是所述的软件包括文件存取、绘图、参数修正、计算、重绘、打印等模块,进行房屋测绘中的预先草图绘制、现场数据输入及参数修正、按比例对实图放大缩小进行重建、数据计算、各种所需数据打印等功能模块,采用ANSI C和C++混合编程。
3.根据权利要求2所述的房屋面积测量计算系统集成,其特征是该计算系统采用图形界面。
4.根据权利要求2或3所述的房屋面积测量计算系统集成,其特征是所述的文件存取,包括首先使用initgraph(&amp; driver,&amp; mode``)对DOS操作系统进行图形界面的初始化,然后新建文件,进行参数修正将激光测距仪的温度、气压、加常数、乘常数写入文件以便在以后进行加权计算;新建楼号使用fopen(Filename,”name”)函数将被测量和计算的整栋大楼的楼号输入数据缓冲区;使用PutMessage(″Hit Esc or chooseCancel to end.″);进行操作提示;打开楼号使用fopen()函数打开一个已经存在的文件;退出。
5.根据权利要求2或3所述的房屋面积测量计算系统集成,其特征是所述的绘图包括建筑图纸的绘制、删除、修改、重建、保存、退出,所述的绘图的种类包括绘制矩形房间和房间内的柱子、矩形房间、不规则房间、弧形房间、梯形房间、圆楼梯。
6.根据权利要求2或3所述的房屋面积测量计算系统集成,其特征是所述的参数修正和数据计算包括矩形房间面积计算包括使用面积和墙体面积,使用面积计算为房间的长乘宽;不规则房间不规则房间指那些主要由直角弯组成的面积但不是矩形,如走廊,方厅等;不规则房间由连续线段画出,主要使用的是line()函数,其算法由起始点作为坐标原点,计算后续点所构成的各象限的矩形的面积矢量和;弧形房间有弧形阳台及其他弧形面积,也包括弧形墙体周长的使用面积,弧形画法采用的是给出弧两个端点的位置和弧高,计算使用标准的弧形面积计算方法,由于需在任意位置划出弧形,弧形画法的算法为计算各象限的转角,然后画弧;梯形房间与矩形房间类似,但计算面积是按标准的梯形计算法,此外,梯形房间由于在建筑图中处于非正向位置,所以梯形房间在绘图时可以旋转角度以与建筑图一致;旋转楼梯方形楼梯的面积可按矩形面积计算,而旋转楼梯可看成是两个弧形面积的差,所以其画法和面积计算算法可有弧形面积得出,但楼梯与弧形房间的不同之处在于没有墙体面积;计算菜单当上述各种形状的面积分别算出之后,须根据国标计算总面积、公有面积、分摊系数、二次总面积、二次公有面积、二次分摊系数,以《中华人民共和国国家计量技术规范》JJF1058-1998《商品房销售面积测量与计算》为例,采用规定算法进行计算,这部分算法简单,只是将各面积按规定累加即可。
7.根据权利要求2或3所述的房屋面积测量计算系统集成,其特征是所述的各种所需数据打印包括分别打印各种普通面积、总面积、公有面积、使用面积、建筑面积、销售面积。
全文摘要
房屋面积测量计算系统集成,涉及一种房屋面积测量计算系统集成,包括硬件和计算软件。目前的房屋测绘方法是在房屋建好后人工使用尺或测距仪,将测量结果记录下来另行计算。目前还没有合适的自动化工具来实现房屋面积的自动测量和计算方法。房屋面积测量计算系统集成,其组成包括装在主机箱5中的工业控制单板机,所述的单板机的输入装置包括15-21键小键盘1,球迹鼠标2、触摸屏3和/或激光测距仪,所述的单板机的输出设备包括所述的液晶触摸屏3、外接打印机和外接硬盘,接口为4,以及电池,所述的单板机中装有房屋面积测量计算系统软件。本产品用作便携式的房屋面积测量计算设备。
文档编号G06F9/445GK1567192SQ0313248
公开日2005年1月19日 申请日期2003年7月3日 优先权日2003年7月3日
发明者程欣, 李彬 申请人:程欣, 李彬
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1