CN110322552B - 一种基于激光测距的即时生成三维房型的软件*** - Google Patents

一种基于激光测距的即时生成三维房型的软件*** Download PDF

Info

Publication number
CN110322552B
CN110322552B CN201910613126.9A CN201910613126A CN110322552B CN 110322552 B CN110322552 B CN 110322552B CN 201910613126 A CN201910613126 A CN 201910613126A CN 110322552 B CN110322552 B CN 110322552B
Authority
CN
China
Prior art keywords
measuring
module
point
window
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910613126.9A
Other languages
English (en)
Other versions
CN110322552A (zh
Inventor
蔡启文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cloud Home Cloud Technology Co ltd
Original Assignee
Guangzhou Cloud Home Cloud Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Cloud Home Cloud Technology Co ltd filed Critical Guangzhou Cloud Home Cloud Technology Co ltd
Priority to CN201910613126.9A priority Critical patent/CN110322552B/zh
Publication of CN110322552A publication Critical patent/CN110322552A/zh
Application granted granted Critical
Publication of CN110322552B publication Critical patent/CN110322552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/002Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/02Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
    • G01B11/026Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness by measuring distance between sensor and object
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/02Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
    • G01B11/03Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness by measuring coordinates of points
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/02Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
    • G01B11/06Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness for measuring thickness ; e.g. of sheet material
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/02Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
    • G01B11/06Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness for measuring thickness ; e.g. of sheet material
    • G01B11/0608Height gauges
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/22Measuring arrangements characterised by the use of optical techniques for measuring depth
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/28Measuring arrangements characterised by the use of optical techniques for measuring areas
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Position Input By Displaying (AREA)

Abstract

本发明公开了一种即时生成三维房型的软件***,其基于激光测距,运用三维空间坐标运算技术,边测量边绘制三维房型,具体包括以下一些功能模块:房屋信息输入模块、房屋清空模块、房间设置模块、房高测量模块、墙面测量模块、窗测量模块、门测量模块、梁测量模块、柱测量模块、踢脚线测量模块、水电测量模块、激光测量数据导入模块、单房间生成模块、拼房模块、尺寸标注模块、显示模块、文件保存模块、验证模块等。本发明的有益之处在于:(1)非常直观,有效解决了量房难点,可广泛应用于装修设计、智能家居、房产测绘、装修建材等领域;(2)功能强大,解决了房屋里各种复杂的测量问题,并且测量精确度很高;(3)操作简单,测量速度快。

Description

一种基于激光测距的即时生成三维房型的软件***
技术领域
本发明涉及一种软件***,具体涉及一种基于激光测距的即时生成三维房型的软件***,属于计算机技术领域。
背景技术
在装修设计、智能家居、房产测绘、装修建材等领域都需要对房屋进行测量。
采用传统的测量方式对房屋进行测量很容易出错,例如:不同的测量人员对测量的理解不一样,有时受到环境或设备影响,会无法取得测量数据,测量人员往往靠估算一个值去替代被测物真实的尺寸,这样会导致后面设计、生产出错,这是要付出相当大的成本代价的。
另外,很多测量人员都是现场测量做记录,然后回到办公室打开设计软件再把房型画出来,这样不仅耗费时间,还会因为记录不清晰导致出错,例如:在画户型过程中,把墙面转角的地方都记录成90°,而实际户型的墙面转角不可能都是90°的,这就会造成后续生产的产品安装不了的问题。
发明内容
本发明的目的在于提供一种基于激光测距的即时生成三维房型的软件***。
为了实现上述目标,本发明采用如下的技术方案:
一种即时生成三维房型的软件***,其特征在于,基于激光测距,运用三维空间坐标运算技术,边测量边绘制三维房型,具体包括以下一些功能模块:
房屋信息输入模块:用来输入房屋信息;
房屋清空模块:用来清空当前所有测量的房屋的房屋信息;
房间设置模块:用来设置房间类型;
房高测量模块:用来测量房屋高度;
墙面测量模块:用来测量墙面的长度和空间面积;
窗测量模块:用来测量窗的大小和窗距地面的高度;
门测量模块:用来测量门的大小;
梁测量模块:用来测量梁的长度、宽度和深度;
柱测量模块:用来测量柱的宽度、深度和高度;
踢脚线测量模块:用来测量踢脚线的高度及厚度;
水电测量模块:用来测量与水电相关的物件的位置;
激光测量数据导入模块:用来导入激光测距仪测量得到的三维空间坐标数据,在该模块中用户可以对测量数据进行二次修改;
单房间生成模块:用来根据房间尺寸以及窗、门、梁、柱、踢脚线、与水电相关的物件的位置,生成单个房间的平面图和三维图;
拼房模块:用来以门为基准,将单房间生成模块所生成的各个房间的平面图和三维图拼接,生成三维户型图;
尺寸标注模块:用来标注/隐藏和修改窗和门的尺寸;
显示模块:用来显示房间透明/不透明、测量对象标签显示/隐藏、电器显示/隐藏;
文件保存模块:用来保存文件,包括skp文件、打扮家文件json和测量文件mjson;
验证模块:向该模块中输入注册验证码,经该模块验证并通过后,测量数据方可传入相应的测量模块,否则测量数据将无法传入。
前述的即时生成三维房型的软件***,其特征在于,前述房高测量模块具有两个测量子模块,分别是:
粗略测量子模块:适用于精装房的房高测量,天花板、地板各测一点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),根据公式room height=|Z1-Z2|获得房屋高度;
精细测量子模块:适用于毛坯房的房高测量,天花板、地板各测三点,天花板对应的三组数据为(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),地板对应的三组数据为(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6),根据公式X1.vector_to(X2)和X2.vector_to(X3)分别计算出X1到X2的向量vector1和X2到X3的向量vector2,然后根据公式vector1×vector2计算得到地板平面的法向量vector,之后判断地板平面的法向量vector的z轴值是否小于0,如果z轴值小于0,则将地板平面的法向量vector反转,如果z轴值不小于0,则地板平面的法向量vector不反转,地面所在的平面用[X1,vector]表示,使用库函数distance_to_plane得到天花板三点到地板平面的距离,分别记为dis1、dis2、dis3,然后运用公式room height=(dis1+dis2+dis3)/3获得房屋高度。
前述的即时生成三维房型的软件***,其特征在于,前述墙面测量模块具有两个测量子模块,分别是:
长度测量子模块:该测量子模块提供墙两点式、墙体直接封闭式两种测量方式,前者适用于任何墙面的长度测量,后者适用于单独一面墙的长度测量;
空间面积测量子模块:当房间中四面墙的长度都测量完毕后,即可使用该空间面积测量子模块来测量由这四面墙围起来的空间的面积,调用sketchup库函数area=floor.area得到四面墙围起来的空间的面积,四面墙围起来的空间的面积即地板平面的面积;
其中:
墙两点式的测量方法为:从左向右取点,在靠近左边墙角约10cm处取一点,在靠近右边墙角约10cm处再取一点,测量完第一面墙的长度后,再用同样的方法按照顺时针方向测量房间中其他墙面的长度,将每面墙的两个点连成直线,求相邻的两面墙墙上直线的交点,然后分别投影到天花板和地板,每面墙得到4个对角点points[0]、points[1]、points[2]、points[3],根据公式points[2].distance(points[3])得到每面墙的长度;
墙体直接封闭式的测量方法为:从墙面的墙角处取点,从左向右取点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),根据公式points1.distance(points2)得到墙的长度。
前述的即时生成三维房型的软件***,其特征在于,前述窗测量模块具有多个测量子模块,可以实现对多种窗型进行测量,这些测量子模块包括:矩形常规窗测量子模块、一字型飘窗测量子模块、转角飘窗测量子模块,其中:
矩形常规窗测量子模块提供两点式、八点式两种测量方式,前者适用于现场已经安装完矩形常规窗的情况,后者适用于现场只有窗洞的情况,其中:
两点式的测量方法为:在矩形常规窗的对角各测一点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),由两个对角坐标(X1,Y1,Z1)和(X2,Y2,Z2)得到另外两个对角坐标(X2,Y2,Z1)和(X1,Y1,Z2),根据公式window_height=|Z1-Z2|获得窗的长度,根据公式window_width=point1.distance(point2)获得窗的宽度;
八点式的测量方法为:在矩形常规窗的每边各测两点,共计八点,获得八组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6)、(X7,Y7,Z7)、(X8,Y8,Z8),求(X1,Y1,Z1)、(X2,Y2,Z2)所在直线与(X3,Y3,Z3)、(X4,Y4,Z4)所在直线的交点,求(X5,Y5,Z5)、(X6,Y6,Z6)所在直线与(X7,Y7,Z7)、(X8,Y8,Z8)所在直线的交点,这两个交点即为门的两个对角点,再按两点式进行计算获得窗的长度和宽度;
一字型飘窗测量子模块的测量方法为:在一字型飘窗的左上角及右下角各测一点,在飘窗的深度处测第三点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),point3=(X3,Y3,Z3),由两个对角坐标(X1,Y1,Z1)和(X2,Y2,Z2)得到另外两个对角坐标(X2,Y2,Z1)和(X1,Y1,Z2),根据公式window_height=|Z1-Z2|获得窗的长度,根据公式window_width=point1.distance(point2)获得窗的宽度,根据公式window_deepth=point3.distance_to_plane inner_face获得窗的深度;
转角飘窗测量子模块的测量方法为:在转角飘窗的左上角及右下角开口处各测一点,在左面的深度处和右面的深度处各测一点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),point3=(X3,Y3,Z3),point4=(X4,Y4,Z4),根据公式window_deepth1=point3.distance_to_plane inner_face1获得左窗的深度,,根据公式window_deepth2=point4.distance_to_plane inner_face2获得右窗的深度,根据公式window_height=|Z1-Z2|获得窗的长度。
前述的即时生成三维房型的软件***,其特征在于,前述门测量模块提供两点式、两边式、四边式三种测量方式,其中:
两点式:适用于已安装好门的情况,在门的左上角测量第一点,在门的右边上随意测量第二点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),将Z2的值置为0,获得第三组数据(X2,Y2,0),point3=(X2,Y2,0),第三组数据(X2,Y2,0)变为右下角坐标,由左上角坐标(X1,Y1,Z1)和右下角坐标(X2,Y2,0)得到右上角坐标(X2,Y2,Z1)和左下角坐标(X1,Y1,0),根据公式door_width=door_point1.distance(door_point3)获得门的宽度,根据公式door_height=|Z1|获得门的高度;
两边式:适用于门底与地面不平齐的情况,在门的左上角和右下角各测量一点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),由左上角坐标(X1,Y1,Z1)和右下角坐标(X2,Y2,Z2)得到右上角坐标(X2,Y2,Z1)和左下角坐标(X1,Y1,Z2),point3=(X2,Y2,Z1),point4=(X1,Y1,Z2),根据公式door_width=door_point1.distance(door_point3)获得门的宽度,根据公式door_height=|Z1-Z2|获得门的高度;
四边式:适用于测量毛批门洞的情况,按照顺时针方向,从门的顶边开始测量,每边各测量两点,获得八组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6)、(X7,Y7,Z7)、(X8,Y8,Z8),求(X1,Y1,Z1)、(X2,Y2,Z2)所在直线与(X3,Y3,Z3)、(X4,Y4,Z4)所在直线的交点,求(X5,Y5,Z5)、(X6,Y6,Z6)所在直线与(X7,Y7,Z7)、(X8,Y8,Z8)所在直线的交点,这两个交点即为门的两个对角点,再按两边式进行计算获得门的宽度和高度。
前述的即时生成三维房型的软件***,其特征在于,前述梁测量模块具有两个测量子模块,分别是:
角梁测量子模块:在梁所在墙的墙面测量一个点,在梁最外边的边线上再测量一个点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),先将第二个点(X2,Y2,Z2)分别投影到左边墙和右边墙上,投影的坐标分别记为p1、p5,然后将p1分别投影到天花板和中墙上,投影的坐标分别记为p4、p2,再将p5分别投影到天花板和中墙上,投影的坐标分别记为p8、p6,之后将p2和p6都投影到天花板上,投影的坐标分别记为p3、p7,最后根据公式height=p1.distance(p4)获得角梁的长度、根据公式width=p1.distance(p5)获得角梁的宽度、根据公式depth=p1.distance(p2)获得角梁的深度;
房中梁测量子模块:先在梁的左面墙面取一个点,然后在右面墙取一个点,再在梁的前面边线取一个点,最后在梁的后面边线取一个点,获得四组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4),先将第三个点(X3,Y3,Z3)分别投影到左边墙和右边墙上,投影的坐标分别记为p1、p5,然后将第四个点(X4,Y4,Z4)分别投影到左边墙和右边墙上,投影的坐标分别记为p4、p8,接下来将p1、p5、p4和p8都投影到天花板上,投影的坐标分别记为p2、p6、p3、p7,最后根据公式height=p1.distance(p2)获得角梁的长度、根据公式width=p1.distance(p5)获得角梁的宽度、根据公式depth=p1.distance(p4)获得角梁的深度。
前述的即时生成三维房型的软件***,其特征在于,前述柱测量模块具有三个测量子模块,分别是:
角柱测量子模块:在柱较短那面墙取一个点,然后在柱突出的边线取一个点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),将Z1和Z2的值都置为0,获得第三组数据(X1,Y1,0)和第四组数据(X2,Y2,0),point0=(X1,Y1,0),point1=(X2,Y2,0),根据公式dis1=point1.distance_to_plane plane1获得角柱的宽度,根据公式dis2=point1.distance_to_plane plane2获得角柱的深度,角柱的高度按房高算;
房中柱测量子模块:从柱子的左边开始,围绕柱子在3条边线上各取一个点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),将Z1、Z2和Z3的值都置为0,获得第四组数据(X1,Y1,0)、第五组数据(X2,Y2,0)和第六组数据(X3,Y3,0),point0=(X1,Y1,0),point1=(X2,Y2,0),point2=(X3,Y3,0),根据公式dis1=point1.distance_to_plane plane1获得角柱的宽度,根据公式dis2=point1.distance_to_plane plane2获得角柱的深度,角柱高度按房高算;
墙中柱测量子模块:在和柱子接触的墙面上取一个点,然后在柱子左边边上取一个点,最后在柱子右边边上取一个点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),将Z1、Z2和Z3的值都置为0,获得第四组数据(X1,Y1,0)、第五组数据(X2,Y2,0)和第六组数据(X3,Y3,0),point0=(X1,Y1,0),point1=(X2,Y2,0),point2=(X3,Y3,0),根据公式dis1=point1.distance point0获得角柱的宽度,根据公式dis2=point1.distance point2获得角柱的深度,高度按房高。
前述的即时生成三维房型的软件***,其特征在于,前述踢脚线测量模块的测量方式是在踢脚线最高处取第一点,在踢脚线最厚的地方取第二点,获得两组数据(X1,Y1,Z1)、(X2,Y2,Z2),Z1即为踢脚线的高度,(X2,Y2,Z2)到墙面的距离即为踢脚线的厚度,(X2,Y2,Z2)到墙面的距离调用库函数distance_to_plane计算。
前述的即时生成三维房型的软件***,其特征在于,前述水电测量模块具有多个测量子模块,分别是:插座测量子模块、开关测量子模块、墙上燃气测量子模块、地上燃气测量子模块、排水测量子模块、墙上进水测量子模块、地上进水测量子模块、排气测量子模块、电箱测量子模块、空调测量子模块、墙出风口测量子模块、天花出风口测量子模块和三点圆水管测量子模块,其中:
插座测量子模块、开关测量子模块、墙上燃气测量子模块、地上燃气测量子模块、排水测量子模块、墙上进水测量子模块、地上进水测量子模块的测量方式都相同,都是在物件的中心点测一点,如果只有一个物件,那么(X1,Y1,Z1)即为该物件的中心位置,如果一排有多个物件,那么测量完最左边的物件后,根据输入的物件的数量,即可自动复制多个物件;
排气测量子模块、电箱测量子模块、空调测量子模块、墙出风口测量子模块、天花出风口测量子模块的测量方式都相同,都是在物件的对角位置各取一点,获得两组数据(X1,Y1,Z1)、(X2,Y2,Z2),根据cp_mid=[(X1+X2)/2,(Y1+Y2)/2,(Z1+Z2)/2]获得物件的中心位置;
三点圆水管测量子模块的测量方式是在圆水管柱上从左到右取三点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),先计算得到圆心centerpoint的坐标(X4,Y4,Z4),然后根据公式
Figure BDA0002123042680000071
获得圆水管柱的直径。
前述的即时生成三维房型的软件***,其特征在于,前述圆心centerpoint的坐标(X4,Y4,Z4)采用如下的计算方法计算得到:
先计算第一个点、第二个点连成的线段的中垂线垂足坐标(foot_point_1.x,foot_point_1.y,0)以及斜率k1;
然后计算第二个点、第三个点连成的线段的中垂线垂足坐标(foot_point_2.x,foot_point_2.y,0)以及斜率k2;
之后根据前面计算得到的两个垂足坐标以及斜率k1、斜率k2计算圆心centerpoint的坐标(X4、Y4、Z4),其中:
圆心centerpoint的X坐标X4为:(foot_point_2.y-foot_point_1.y+k1×foot_point_1.x-k2×foot_point_2.x)/(k1-k2);
圆心centerpoint的Y坐标Y4为:k1×(X4-foot_point_1.x)+foot_point_1.y;
圆心centerpoint的Z坐标Z4为:0。
本发明的有益之处在于:
(1)基于激光测距,运用三维空间坐标运算技术,边测量边绘制三维房型,有效地解决了量房难点,并且非常直观,可广泛应用于装修设计、智能家居、房产测绘、装修建材等领域,为测量及设计人员服务;
(2)功能强大,能解决房屋里各种复杂的测量问题,例如:复杂的梁柱、L型飘窗、多面转角墙面、电位等,并且这些都能精准测量,精确度很高;
(3)操作简单,只需测量几个点,就能绘出三维房型,大大加快了测量的速度;
(4)可以导出各种设计软件格式,方便设计师直接设计。
附图说明
图1是采用墙两点式测量墙面长度的示意图;
图2是采用墙体直接封闭式测量墙面长度的示意图;
图3是测量四面墙围起来的空间的面积的示意图;
图4是采用两点式测量矩形常规窗的示意图;
图5是采用八点式测量矩形常规窗的示意图;
图6是测量一字型飘窗的示意图;
图7是测量转角飘窗的示意图;
图8是采用两点式测量门的示意图;
图9是采用两边式测量门的示意图;
图10是采用四边式测量门的示意图;
图11是测量角梁的示意图;
图12是测量房中梁的示意图;
图13是测量脚柱的示意图;
图14是测量房中柱的示意图;
图15是测量墙中柱的示意图;
图16是测量踢脚线的示意图;
图17是测量插座的示意图;
图18是测量圆水管的示意图。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明提供的基于激光测距的即时生成三维房型的软件***包括以下一些功能模块:
1、房屋信息输入模块
该模块是用来输入房屋信息的,房屋信息包括:小区名称、门栋、房间号等。
2、房屋清空模块
该模块是用来清空当前所有测量的房屋的房屋信息的。
3、房间设置模块
该模块是用来设置房间类型的,房间类型包括:主卧、次卧、客卧、儿童房、门厅、客厅、储物间、衣帽间。
4、房高测量模块
该模块是用来测量房屋高度的,其具有两个测量子模块:粗略测量子模块、精细测量子模块。
(1)粗略测量子模块
测量方式:天花板、地板各测一点。
适用情况:该种测量方式适用于精装房的房高测量。
具体操作:激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准天花板,获得第一组数据(X1,Y1,Z1),例如:(0,0,0),然后将激光测距仪对准地板,获得第二组数据(X2,Y2,Z2),例如:(0,0,2400)。
算法:根据公式room height=|Z1-Z2|获得房屋高度。
(2)精细测量子模块
测量方式:天花板、地板各测三点。
适用情况:该种测量方式适用于毛坯房的房高测量。
具体操作:激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准地板,测量三点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),例如:(0,0,0)、(350,215,122)、(56,321,132),然后将激光测距仪对准天花板,再测量三点,获得三组数据(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6),例如:(-213,-25,-89)、(-258,-45,-110)、(-218,-37,-123)。
算法:根据公式X1.vector_to(X2)和X2.vector_to(X3)分别计算出X1到X2的向量vector1和X2到X3的向量vector2,然后根据公式vector1×vector2计算得到地板平面的法向量vector,之后判断地板平面的法向量vector的z轴值是否小于0:
如果z轴值小于0,则将地板平面的法向量vector反转,如果z轴值不小于0,则地板平面的法向量vector不反转,地面所在的平面用[X1,vector]表示,使用库函数distance_to_plane得到天花板三点到地板平面的距离,分别记为dis1、dis2、dis3,然后运用公式room height=(dis1+dis2+dis3)/3获得房屋高度。
5、墙面测量模块
该模块是用来测量墙面的长度和空间面积的,其具有两个测量子模块:长度测量子模块、空间面积测量子模块。
(1)长度测量子模块
该测量子模块提供两种测量方式:墙两点式、墙体直接封闭式。
a、墙两点式
测量方法:从左向右取点,在靠近左边墙角约10cm处取一点,在靠近右边墙角约10cm处再取一点。
适用情况:该种测量方式适用于任何墙面的长度测量。
具体操作:参照图1,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准第一面墙,在靠近该面墙的左边墙角约10cm处取一点,获得第一组数据(X1,Y1,Z1),例如:(-676,94,1454),然后在靠近该面墙的右边墙角约10cm处再取一点,获得第二组数据(X2,Y2,Z2),例如:(2129,1987,1491)。
测量完第一面墙的长度后,再用同样的方法按照顺时针方向测量房间中其他墙面的长度,其中:
测量第二面墙,获得两组数据:(X3,Y3,Z3)、(X4,Y4,Z4),例如:(-6058,-4713,1986)、(-94,-4637,1478);
测量第三面墙,获得两组数据:(X5,Y5,Z5)、(X6,Y6,Z6),例如:(-12,-4564,1482)、(-43,-47,1177);
测量第四面墙,获得两组数据:(X7,Y7,Z7)、(X8,Y8,Z8),例如:(-6058,-4693,1986)、(-6058,-4713,1986)。
算法:将每面墙的两个点连成直线,求相邻的两面墙墙上直线的交点(每面墙有2个交点),然后分别投影到天花板和地板,每面墙得到4个对角点points[0]、points[1]、points[2]、points[3],根据公式points[2].distance(points[3])得到每面墙的长度。
b、墙体直接封闭式
测量方法:从墙面的墙角处取点,从左向右取点。
适用情况:该种测量方式适用于单独一面墙的长度测量。
具体操作:参照图2,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准墙面,在墙的左边墙角处取一点,获得第一组数据(X1,Y1,Z1),例如:(-565,-1987,1245),然后在墙的右边墙角处再取一点,获得第二组数据(X2,Y2,Z2),例如:(2129,1987,1491)。
算法:point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),根据公式points1.distance(points2)得到墙的长度。
(2)空间面积测量子模块
当房间中四面墙的长度都测量完毕后,即长度测量子模块将八个点都取完后,即可使用该空间面积测量子模块来测量由这四面墙围起来的空间的面积,四面墙围起来的空间的面积即为地板平面的面积,参照图3。
算法:调用sketchup库函数area=floor.area得到四面墙围起来的空间的面积,即地板平面的面积。
6、窗测量模块
该模块是用来测量窗的大小和窗距地面的高度的,其具有多个测量子模块:矩形常规窗测量子模块、一字型飘窗测量子模块、转角飘窗测量子模块,这些测量子模块可以实现对多种窗型进行测量。
(1)矩形常规窗测量子模块
该测量子模块提供两种测量方式:两点式、八点式。
a、两点式
测量方式:在矩形常规窗的对角各测一点。
适用情况:该种测量方式适用于现场已经安装完矩形常规窗的情况。
具体操作:参照图4,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准矩形常规窗的一个角,获得第一组数据(X1,Y1,Z1),例如:(-1572,-40,2308),然后将激光测距仪对准矩形常规窗的对角,获得第二组数据(X2,Y2,Z2),例如:(-3062,-55,1121)。
算法:point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),由两个对角坐标(X1,Y1,Z1)和(X2,Y2,Z2)得到另外两个对角坐标(X2,Y2,Z1)和(X1,Y1,Z2),根据公式window_height=|Z1-Z2|获得窗的长度(窗的底边到顶边的距离),根据公式window_width=point1.distance(point2)获得窗的宽度(窗的左边到右边的距离)。
b、八点式
测量方式:在矩形常规窗的每边各测两点,共计八点。
适用情况:该种测量方式适用于现场只有窗洞的情况。
具体操作:参照图5,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准矩形常规窗的顶边,测量两点,获得两组数据(X1,Y1,Z1)、(X2,Y2,Z2),例如:(-120,-3877,2105)、(-130,-3020,2044),然后将激光测距仪对准矩形常规窗的右边,测量两点,获得两组数据(X3,Y3,Z3)、(X4,Y4,Z4),例如:(-127,-2853,1758)、(-118,-2858,1125),再将激光测距仪对准矩形常规窗的底边,测量两点,获得两组数据(X5,Y5,Z5)、(X6,Y6,Z6),例如:(-116,-3159,868)、(-106,-3959,844),最后将激光测距仪对准矩形常规窗的左边,测量两点,获得两组数据(X7,Y7,Z7)、(X8,Y8,Z8),例如:(-105,-4119,1130)、(-109,-4110,1898)。
算法:求(X1,Y1,Z1)、(X2,Y2,Z2)所在直线与(X3,Y3,Z3)、(X4,Y4,Z4)所在直线的交点,求(X5,Y5,Z5)、(X6,Y6,Z6)所在直线与(X7,Y7,Z7)、(X8,Y8,Z8)所在直线的交点,这两个交点即为门的两个对角点,再按两点式进行计算获得窗的长度和宽度。
(2)一字型飘窗测量子模块
测量方式:在一字型飘窗的左上角及右下角各测一点,在飘窗的深度处测第三点。
具体操作:参照图6,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准一字型飘窗的左上角,获得第一组数据(X1,Y1,Z1),例如:(8597,4420,1829),然后将激光测距仪对准一字型飘窗的右下角,获得第二组数据(X2,Y2,Z2),例如:(6681,4683,1271),再将激光测距仪对准一字型飘窗的深度处,获得第三组数据(X3,Y3,Z3),例如:(7468,4715,1199)。
算法:point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),point3=(X3,Y3,Z3),由两个对角坐标(X1,Y1,Z1)和(X2,Y2,Z2)得到另外两个对角坐标(X2,Y2,Z1)和(X1,Y1,Z2),根据公式window_height=|Z1-Z2|获得窗的长度,根据公式window_width=point1.distance(point2)获得窗的宽度,根据公式window_deepth=point3.distance_to_plane inner_face获得窗的深度(point3到窗所在墙的内墙面的距离)。
(3)转角飘窗测量子模块
测量方式:在转角飘窗的左上角及右下角开口处各测一点,在左面的深度处和右面的深度处各测一点。
具体操作:参照图7,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准转角飘窗的左上角,获得第一组数据(X1,Y1,Z1),例如:(9779,2789,2342),然后将激光测距仪对准转角飘窗的右下角,获得第二组数据(X2,Y2,Z2),例如:(9354,4432,1478),再将激光测距仪对准转角飘窗的左边面的深度处,获得第三组数据(X3,Y3,Z3),例如:(9889,3627,1571),最后将激光测距仪对准转角飘窗的右边面的深度处,获得第四组数据(X4,Y4,Z4),例如:(8116,4731,1215)。
算法:point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),point3=(X3,Y3,Z3),point4=(X4,Y4,Z4),根据公式window_deepth1=point3.distance_to_plane inner_face1获得左窗的深度(point3到窗所在墙的内墙面的距离),根据公式window_deepth2=point4.distance_to_plane inner_face2获得右窗的深度(point4到窗所在墙的内墙面的距离),根据公式window_height=|Z1-Z2|获得窗的长度。
窗的宽度不计算。
7、门测量模块
该模块是用来测量门的大小的,其提供三种测量方式:两点式、两边式、四边式。
(1)两点式
测量方式:在门的左上角测量第一点,在门的右边上随意测量第二点。
适用情况:该种测量方式适用于已安装好门的情况。
具体操作:参照图8,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准门的左上角,获得第一组数据(X1,Y1,Z1),例如:(658,4379,2320),然后将激光测距仪对准门的右边,在门的右边上随意测量一点,获得第二组数据(X2,Y2,Z2),例如:(5679,4362,1426)。
算法:point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),将Z2的值置为0,获得第三组数据(X2,Y2,0),point3=(X2,Y2,0),第三组数据(X2,Y2,0)变为右下角坐标,由左上角坐标(X1,Y1,Z1)和右下角坐标(X2,Y2,0)得到右上角坐标(X2,Y2,Z1)和左下角坐标(X1,Y1,0),根据公式door_width=door_point1.distance(door_point3)获得门的宽度,根据公式door_height=|Z1|获得门的高度。
(2)两边式
测量方式:在门的左上角和右下角各测量一点。
适用情况:该种测量方式适用于门底与地面不平齐的情况。
具体操作:参照图9,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准门的左上角,获得第一组数据(X1,Y1,Z1),例如:(2716,881,2438),然后将激光测距仪对准门的右下角,获得第二组数据(X2,Y2,Z2),例如:(2771,2104,33)。
算法:point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),由左上角坐标(X1,Y1,Z1)和右下角坐标(X2,Y2,Z2)得到右上角坐标(X2,Y2,Z1)和左下角坐标(X1,Y1,Z2),point3=(X2,Y2,Z1),point4=(X1,Y1,Z2),根据公式door_width=door_point1.distance(door_point3)获得门的宽度,根据公式door_height=|Z1-Z2|获得门的高度。
(3)四边式
测量方式:按照顺时针方向,从门的顶边开始测量,每边各测量两点。
适用情况:该种测量方式适用于测量毛批门洞的情况。
具体操作:参照图10,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准门的顶边,获得两组数据(X1,Y1,Z1)、(X2,Y2,Z2),例如:(2745,1259,2433)、(2806,1869,2419),然后将激光测距仪对准门的右边,获得两组数据(X3,Y3,Z3)、(X4,Y4,Z4),例如:(2828,2138,1991)、(2815,2138,240),再将激光测距仪对准门的底边,获得两组数据(X5,Y5,Z5)、(X6,Y6,Z6),例如:(2878,2294,27)、(2742,1537,27),最后将激光测距仪对准门的左边,获得两组数据(X7,Y7,Z7)、(X8,Y8,Z8),例如:(2749,1336,499)、(2758,1353,1698)。
算法:求(X1,Y1,Z1)、(X2,Y2,Z2)所在直线与(X3,Y3,Z3)、(X4,Y4,Z4)所在直线的交点,求(X5,Y5,Z5)、(X6,Y6,Z6)所在直线与(X7,Y7,Z7)、(X8,Y8,Z8)所在直线的交点,这两个交点即为门的两个对角点,再按两边式进行计算获得门的宽度和高度。
8、梁测量模块
该模块是用来测量梁的长度、宽度和深度的,其具有两个测量子模块:角梁测量子模块、房中梁测量子模块。
(1)角梁测量子模块
测量方式:在梁所在墙的墙面测量一个点,在梁最外边的边线上再测量一个点。
具体操作:参照图11,激光测距仪安装于云台上,放在房间的中间位置,先将激光测距仪对准梁所在墙的墙面,在该墙面上取一个点,获得第一组数据(X1,Y1,Z1),例如:(9964,1149,2309),然后将激光测距仪对准梁最外边的边线,在边线上取第二个点,获得第二组数据(X2,Y2,Z2),例如:(9100,272,2980)。
算法:先将第二个点(X2,Y2,Z2)分别投影到左边墙和右边墙上,投影的坐标分别记为p1、p5,然后将p1分别投影到天花板和中墙(左边墙和右边墙之间的墙)上,投影的坐标分别记为p4、p2,再将p5分别投影到天花板和中墙上,投影的坐标分别记为p8、p6,之后将p2和p6都投影到天花板上,投影的坐标分别记为p3、p7,最后根据公式height=p1.distance(p4)获得角梁的长度、根据公式width=p1.distance(p5)获得角梁的宽度、根据公式depth=p1.distance(p2)获得角梁的深度。
(2)房中梁测量子模块
测量方式:先在梁的左面墙面取一个点,然后在右面墙取一个点,再在梁的前面边线取一个点,最后在梁的后面边线取一个点。
具体操作:参照图12,激光测距仪安装于云台上,放在房间的中间位置,把激光测距仪对准梁左边的墙面取一个点,获得第一组数据(X1,Y1,Z1),例如:(2776,3815,2845),然后在梁右边的墙上取一个点,获得第二组数据(X2,Y2,Z2),例如:(9982,1244,2311),然后在梁前面的边线上取一个点,获得第三组数据(X3,Y3,Z3)例如:(5269,2661,3039),最后在梁后面的边线上取一个点,获得第四组数据(X4,Y4,Z4),例如:(5316,3122,3033)。
算法:先将第三个点(X3,Y3,Z3)分别投影到左边墙和右边墙上,投影的坐标分别记为p1、p5,然后将第四个点(X4,Y4,Z4)分别投影到左边墙和右边墙上,投影的坐标分别记为p4、p8,接下来将p1、p5、p4和p8都投影到天花板上,投影的坐标分别记为p2、p6、p3、p7,最后根据公式height=p1.distance(p2)获得角梁的长度、根据公式width=p1.distance(p5)获得角梁的宽度、根据公式depth=p1.distance(p4)获得角梁的深度。
9、柱测量模块
该模块是用来测量柱的宽度、深度和高度的,其具有三个测量子模块:角柱测量子模块、房中柱测量子模块、墙中柱测量子模块。
(1)角柱测量子模块
测量方式:在柱较短那面墙取一个点,然后在柱突出的边线取一个点。
具体操作:参照图13,激光测距仪安装于云台上,放在房间的中间位置,先把激光测距仪对准柱出来的那面墙,在该墙的墙面取一个点,获得第一组数据(X1,Y1,Z1),例如:(8843,3324,2096),然后把激光测距仪对准柱突出的边线,在该边线上取一个点,获得第二组数据(X2,Y2,Z2),例如:(9122,2951,2132)。
算法:将Z1和Z2的值都置为0,获得第三组数据(X1,Y1,0)和第四组数据(X2,Y2,0),point0=(X1,Y1,0),point1=(X2,Y2,0),根据公式dis1=point1.distance_to_planeplane1获得角柱的宽度(point1到左边墙的距离),根据公式dis2=point1.distance_to_plane plane2获得角柱的深度(point1到右边墙的距离),角柱的高度按房高算。
(2)房中柱测量子模块
测量方式:从柱子的左边开始,围绕柱子在3条边线上各取一个点。
具体操作:参照图14,激光测距仪安装于云台上,放在房间的中间位置,先把激光测距仪对准柱子左边的边线,取第一个点,获得第一组数据(X1,Y1,Z1),例如:(4893,264,424),然后对准柱子中间的边线,取第二个点,获得第二组数据(X2,Y2,Z2),例如:(4899,641,424),最后对准右边边线,取第三个点,获得第三组数据(X3,Y3,Z3),例如:(5292,639,326)。
算法:将Z1、Z2和Z3的值都置为0,获得第四组数据(X1,Y1,0)、第五组数据(X2,Y2,0)和第六组数据(X3,Y3,0),point0=(X1,Y1,0),point1=(X2,Y2,0),point2=(X3,Y3,0),根据公式dis1=point1.distance_to_plane plane1获得角柱的宽度(point1到第一面墙的距离),根据公式dis2=point1.distance_to_plane plane2获得角柱的深度(point1到第二面墙的距离),角柱高度按房高算。
(3)墙中柱测量子模块
测量方式:在和柱子接触的墙面上取一个点,然后在柱子左边边上取一个点,最后在柱子右边边上取一个点。
具体操作:参照图15,激光测距仪安装于云台上,放在房间的中间位置,先把激光测距仪对准和柱子接触的墙面上取一个点,获得第一组数据(X1,Y1,Z1),例如:(1753,1407,777),然后对准柱子左边边线上取一个点,获得第二组数据(X2,Y2,Z2),例如:(2172,1247,225),最后对准柱子右边边线上取一个点,获得第三组数据(X3,Y3,Z3),例如:(2177,879,260)。
算法:将Z1、Z2和Z3的值都置为0,获得第四组数据(X1,Y1,0)、第五组数据(X2,Y2,0)和第六组数据(X3,Y3,0),point0=(X1,Y1,0),point1=(X2,Y2,0),point2=(X3,Y3,0),根据公式dis1=point1.distance point0获得角柱的宽度(point1到point0的距离),根据公式dis2=point1.distance point2获得角柱的深度(point1到point2的距离),高度按房高。
10、踢脚线测量模块
该模块是用来测量踢脚线的高度及厚度的。
测量方式:在踢脚线最高处取第一点,在踢脚线最厚的地方取第二点。
具体操作:参照图16,激光测距仪安装于云台上,放在房间的中间位置,把激光测距仪对准墙面,在踢脚线最高处取一个点,获得第一组数据(X1,Y1,Z1),例如:(1749,107,308),然后在踢脚线最厚的地方取一个点,获得第二组数据(X2,Y2,Z2),例如:(1768,121,65)。
算法:Z1即为踢脚线的高度,(X2,Y2,Z2)到墙面的距离即为踢脚线的厚度,(X2,Y2,Z2)到墙面的距离调用库函数distance_to_plane计算。
11、水电测量模块
该模块是用来测量与水电相关的物件的位置的,其具有多个测量子模块:插座测量子模块、开关测量子模块、墙上燃气测量子模块、地上燃气测量子模块、排水测量子模块、墙上进水测量子模块、地上进水测量子模块、排气测量子模块、电箱测量子模块、空调测量子模块、墙出风口测量子模块、天花出风口测量子模块和三点圆水管测量子模块。
(1)插座测量子模块
测量方式:在插座的中心点测一点。
具体操作:参照图17,激光测距仪安装于云台上,放在房间的中间位置,将激光测距仪对准插座的中心点,获得一组数据(X1,Y1,Z1),例如:(1731,296,773);如果一排有多个插座,那么将激光测距仪对准最左边的插座的中心点,获得一组数据(X1,Y1,Z1)即可。
算法:如果只有一个插座,那么(X1,Y1,Z1)即为该插座的中心位置,如果一排有多个插座,那么测量完最左边的插座后,根据输入的插座的数量,即可自动复制多个插座。
(2)开关测量子模块
与插座测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(3)墙上燃气测量子模块
与插座测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(4)地上燃气测量子模块
与插座测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(5)排水口测量子模块
与插座测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(6)墙上进水测量子模块
与插座测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(7)地上进水测量子模块
与插座测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(8)排气扇口测量子模块
测量方式:在排气扇口的对角位置各取一点。
具体操作:先将激光测距仪对准排气扇口的一个角,获得第一组数据(X1,Y1,Z1),例如:(1754,1237,2214),再将激光测距仪对准排气扇口的对角,获得第二组数据(X2,Y2,Z2),例如:(1742,631,1919)。
算法:根据cp_mid=[(X1+X2)/2,(Y1+Y2)/2,(Z1+Z2)/2]获得排气扇口的中心位置。
(9)电箱测量子模块
与排气扇口测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(10)空调测量子模块
与排气扇口测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(11)墙出风口测量子模块
与排气扇口测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(12)天花板出风口测量子模块
与排气扇口测量子模块的测量方式、具体操作、测量结果相同,不再赘述。
(13)三点圆水管测量子模块
测量方式:在圆水管柱上从左到右取三点。
具体操作:参照图18,把激光测距仪对准圆水管偏左边取一个点,获得一组数据point1(X1,Y1,Z1),例如:(5085,1508,839),然后在中间取一个点,获得第二组数据point2(X2,Y2,Z2),例如:(5066,1530,831),最后在右边取一个点,获得第三组数据point3(X3,Y3,Z3),例如:(5080,1565,858)。
算法:首先计算得到圆心centerpoint的坐标(X4,Y4,Z4),然后根据公式
Figure BDA0002123042680000191
获得圆水管柱的直径(point1(X1,Y1,Z1)到圆心centerpoint(X4,Y4,Z4)的距离)。
圆心centerpoint的坐标(X4,Y4,Z4)的计算方法如下:
先计算point1、point2连成的线段的中垂线垂足坐标(foot_point_1.x,foot_point_1.y,0)以及斜率k1;
然后计算point2、point3连成的线段的中垂线垂足坐标(foot_point_2.x,foot_point_2.y,0)以及斜率k2;
之后根据前面计算得到的两个垂足坐标以及斜率k1、斜率k2计算圆心centerpoint的坐标(X4、Y4、Z4),其中:
圆心centerpoint的X坐标X4为:(foot_point_2.y-foot_point_1.y+k1×foot_point_1.x-k2×foot_point_2.x)/(k1-k2);
圆心centerpoint的Y坐标Y4为:k1×(X4-foot_point_1.x)+foot_point_1.y;
圆心centerpoint的Z坐标Z4为:0。
12、激光测量数据导入模块
该模块是用来导入激光测距仪测量得到的数据的,在该模块中用户也可以对测量数据进行二次修改。
13、单房间生成模块
该模块是用来根据房间尺寸以及窗、门、梁、柱、踢脚线、与水电相关的物件的位置,生成单个房间的平面图和三维图的。
14、拼房模块
该模块是用来以门为基准,将单房间生成模块所生成的各个房间的平面图和三维图拼接,生成三维户型图的。
15、尺寸标注模块
该模块是用来标注/隐藏窗和门的尺寸,修改门尺寸的。
16、显示模块
该模块是用来显示房间透明/不透明、测量对象标签显示/隐藏、电器显示/隐藏的。
17、文件保存模块
该模块是用来保存文件的,文件包括:skp文件(本地保存)、打扮家文件json和测量文件mjson。
多种保存格式可以更好的适用于不同的设计软件。
18、验证模块
向该模块中输入注册验证码,经该模块验证并通过后,测量数据方可传入相应的测量模块,否则测量数据将无法传入。
由此可见,使用本发明提供的软件***量房时,具有以下优势:
(1)测量的点位自动画成三维房型,减少了内业人员的工作量;
(2)测量人员在现场无需再爬上爬下,目光所及之处(如梁、柱)所有数据都可以测量;
(3)内业与外业可以同时在现场进行,避免因错量漏量而回现场返工;
(4)整体效率大大提高,与传统方法相比工作时间甚至可以减少一半。
需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

Claims (1)

1.一种即时生成三维房型的软件***,其特征在于,基于激光测距,运用三维空间坐标运算技术,边测量边绘制三维房型,具体包括以下一些功能模块:
房屋信息输入模块:用来输入房屋信息;
房屋清空模块:用来清空当前所有测量的房屋的房屋信息;
房间设置模块:用来设置房间类型;
房高测量模块:用来测量房屋高度,该模块具有两个子模块,分别是粗略测量子模块、精细测量子模块,其中,(1)粗略测量子模块适用于精装房的房高测量,天花板、地板各测一点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),根据公式room height=|Z1-Z2|获得房屋高度;(2)精细测量子模块适用于毛坯房的房高测量,天花板、地板各测三点,天花板对应的三组数据为(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),地板对应的三组数据为(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6),根据公式X1.vector_to(X2)和X2.vector_to(X3)分别计算出X1到X2的向量vector1和X2到X3的向量vector2,然后根据公式vector1×vector2计算得到地板平面的法向量vector,之后判断地板平面的法向量vector的z轴值是否小于0,如果z轴值小于0,则将地板平面的法向量vector反转,如果z轴值不小于0,则地板平面的法向量vector不反转,地面所在的平面用[X1,vector]表示,使用库函数distance_to_plane得到天花板三点到地板平面的距离,分别记为dis1、dis2、dis3,然后运用公式room height=(dis1+dis2+dis3)/3获得房屋高度;
墙面测量模块:用来测量墙面的长度和空间面积,该模块具有两个子模块,分别是长度测量子模块、空间面积测量子模块,其中,(1)长度测量子模块提供墙两点式、墙体直接封闭式两种测量方式,墙两点式适用于任何墙面的长度测量,具体方法为:从左向右取点,在靠近左边墙角约10cm处取一点,在靠近右边墙角约10cm处再取一点,测量完第一面墙的长度后,再用同样的方法按照顺时针方向测量房间中其他墙面的长度,将每面墙的两个点连成直线,求相邻的两面墙墙上直线的交点,然后分别投影到天花板和地板,每面墙得到4个对角点points[0]、points[1]、points[2]、points[3],根据公式points[2].distance(points[3])得到每面墙的长度;墙体直接封闭式适用于单独一面墙的长度测量,具体方法为:从墙面的墙角处取点,从左向右取点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),根据公式points1.distance(points2)得到墙的长度;(2)空间面积测量子模块在房间中四面墙的长度都测量完毕后使用,用来测量由这四面墙围起来的空间的面积,调用sketchup库函数area=floor.area得到四面墙围起来的空间的面积,四面墙围起来的空间的面积即地板平面的面积;
窗测量模块:用来测量窗的大小和窗距地面的高度,该模块具有多个子模块,可以实现对多种窗型进行测量,这些子模块包括:矩形常规窗测量子模块、一字型飘窗测量子模块、转角飘窗测量子模块,其中,(1)矩形常规窗测量子模块提供两点式、八点式两种测量方式,两点式适用于现场已经安装完矩形常规窗的情况,具体方法为:在矩形常规窗的对角各测一点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),由两个对角坐标(X1,Y1,Z1)和(X2,Y2,Z2)得到另外两个对角坐标(X2,Y2,Z1)和(X1,Y1,Z2),根据公式window_height=|Z1-Z2|获得窗的长度,根据公式window_width=point1.distance(point2)获得窗的宽度;八点式适用于现场只有窗洞的情况,具体方法为:在矩形常规窗的每边各测两点,共计八点,获得八组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6)、(X7,Y7,Z7)、(X8,Y8,Z8),求(X1,Y1,Z1)、(X2,Y2,Z2)所在直线与(X3,Y3,Z3)、(X4,Y4,Z4)所在直线的交点,求(X5,Y5,Z5)、(X6,Y6,Z6)所在直线与(X7,Y7,Z7)、(X8,Y8,Z8)所在直线的交点,这两个交点即为门的两个对角点,再按两点式进行计算获得窗的长度和宽度;(2)一字型飘窗测量子模块的测量方法为:在一字型飘窗的左上角及右下角各测一点,在飘窗的深度处测第三点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),point3=(X3,Y3,Z3),由两个对角坐标(X1,Y1,Z1)和(X2,Y2,Z2)得到另外两个对角坐标(X2,Y2,Z1)和(X1,Y1,Z2),根据公式window_height=|Z1-Z2|获得窗的长度,根据公式window_width=point1.distance(point2)获得窗的宽度,根据公式window_deepth=point3.distance_to_plane inner_face获得窗的深度;(3)转角飘窗测量子模块的测量方法为:在转角飘窗的左上角及右下角开口处各测一点,在左面的深度处和右面的深度处各测一点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),point3=(X3,Y3,Z3),point4=(X4,Y4,Z4),根据公式window_deepth1=point3.distance_to_plane inner_face1获得左窗的深度,根据公式window_deepth2=point4.distance_to_plane inner_face2获得右窗的深度,根据公式window_height=|Z1-Z2|获得窗的长度;
门测量模块:用来测量门的大小,该模块提供两点式、两边式、四边式三种测量方式,其中,(1)两点式测量方式适用于已安装好门的情况,具体方法为:在门的左上角测量第一点,在门的右边上随意测量第二点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),将Z2的值置为0,获得第三组数据(X2,Y2,0),point3=(X2,Y2,0),第三组数据(X2,Y2,0)变为右下角坐标,由左上角坐标(X1,Y1,Z1)和右下角坐标(X2,Y2,0)得到右上角坐标(X2,Y2,Z1)和左下角坐标(X1,Y1,0),根据公式door_width=door_point1.distance(door_point3)获得门的宽度,根据公式door_height=|Z1|获得门的高度;(2)两边式测量方式适用于门底与地面不平齐的情况,具体方法为:在门的左上角和右下角各测量一点,point1=(X1,Y1,Z1),point2=(X2,Y2,Z2),由左上角坐标(X1,Y1,Z1)和右下角坐标(X2,Y2,Z2)得到右上角坐标(X2,Y2,Z1)和左下角坐标(X1,Y1,Z2),point3=(X2,Y2,Z1),point4=(X1,Y1,Z2),根据公式door_width=door_point1.distance(door_point3)获得门的宽度,根据公式door_height=|Z1-Z2|获得门的高度;(3)四边式测量方式适用于测量毛批门洞的情况,具体方法为:按照顺时针方向,从门的顶边开始测量,每边各测量两点,获得八组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4)、(X5,Y5,Z5)、(X6,Y6,Z6)、(X7,Y7,Z7)、(X8,Y8,Z8),求(X1,Y1,Z1)、(X2,Y2,Z2)所在直线与(X3,Y3,Z3)、(X4,Y4,Z4)所在直线的交点,求(X5,Y5,Z5)、(X6,Y6,Z6)所在直线与(X7,Y7,Z7)、(X8,Y8,Z8)所在直线的交点,这两个交点即为门的两个对角点,再按两边式进行计算获得门的宽度和高度;
梁测量模块:用来测量梁的长度、宽度和深度,该模块具有两个子模块,分别是角梁测量子模块、房中梁测量子模块,其中,(1)角梁测量子模块的测量方法为:在梁所在墙的墙面测量一个点,在梁最外边的边线上再测量一个点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),先将第二个点(X2,Y2,Z2)分别投影到左边墙和右边墙上,投影的坐标分别记为p1、p5,然后将p1分别投影到天花板和中墙上,投影的坐标分别记为p4、p2,再将p5分别投影到天花板和中墙上,投影的坐标分别记为p8、p6,之后将p2和p6都投影到天花板上,投影的坐标分别记为p3、p7,最后根据公式height=p1.distance(p4)获得角梁的长度、根据公式width=p1.distance(p5)获得角梁的宽度、根据公式depth=p1.distance(p2)获得角梁的深度;(2)房中梁测量子模块的测量方法为:先在梁的左面墙面取一个点,然后在右面墙取一个点,再在梁的前面边线取一个点,最后在梁的后面边线取一个点,获得四组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4),先将第三个点(X3,Y3,Z3)分别投影到左边墙和右边墙上,投影的坐标分别记为p1、p5,然后将第四个点(X4,Y4,Z4)分别投影到左边墙和右边墙上,投影的坐标分别记为p4、p8,接下来将p1、p5、p4和p8都投影到天花板上,投影的坐标分别记为p2、p6、p3、p7,最后根据公式height=p1.distance(p2)获得角梁的长度、根据公式width=p1.distance(p5)获得角梁的宽度、根据公式depth=p1.distance(p4)获得角梁的深度;
柱测量模块:用来测量柱的宽度、深度和高度,该模块具有三个子模块,分别是角柱测量子模块、房中柱测量子模块、墙中柱测量子模块,其中,(1)角柱测量子模块的测量方法为:在柱较短那面墙取一个点,然后在柱突出的边线取一个点,获得两组数据(X1,Y1,Z1)和(X2,Y2,Z2),将Z1和Z2的值都置为0,获得第三组数据(X1,Y1,0)和第四组数据(X2,Y2,0),point0=(X1,Y1,0),point1=(X2,Y2,0),根据公式dis1=point1.distance_to_planeplane1获得角柱的宽度,根据公式dis2=point1.distance_to_plane plane2获得角柱的深度,角柱的高度按房高算;(2)房中柱测量子模块的测量方法为:从柱子的左边开始,围绕柱子在3条边线上各取一个点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),将Z1、Z2和Z3的值都置为0,获得第四组数据(X1,Y1,0)、第五组数据(X2,Y2,0)和第六组数据(X3,Y3,0),point0=(X1,Y1,0),point1=(X2,Y2,0),point2=(X3,Y3,0),根据公式dis1=point1.distance_to_plane plane1获得角柱的宽度,根据公式dis2=point1.distance_to_plane plane2获得角柱的深度,角柱高度按房高算;(3)墙中柱测量子模块的测量方法为:在和柱子接触的墙面上取一个点,然后在柱子左边边上取一个点,最后在柱子右边边上取一个点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),将Z1、Z2和Z3的值都置为0,获得第四组数据(X1,Y1,0)、第五组数据(X2,Y2,0)和第六组数据(X3,Y3,0),point0=(X1,Y1,0),point1=(X2,Y2,0),point2=(X3,Y3,0),根据公式dis1=point1.distance point0获得角柱的宽度,根据公式dis2=point1.distance point2获得角柱的深度,高度按房高;
踢脚线测量模块:用来测量踢脚线的高度及厚度,具体方法为:在踢脚线最高处取第一点,在踢脚线最厚的地方取第二点,获得两组数据(X1,Y1,Z1)、(X2,Y2,Z2),Z1即为踢脚线的高度,(X2,Y2,Z2)到墙面的距离即为踢脚线的厚度,(X2,Y2,Z2)到墙面的距离调用库函数distance_to_plane计算;
水电测量模块:用来测量与水电相关的物件的位置,该模块具有多个子模块,分别是插座测量子模块、开关测量子模块、墙上燃气测量子模块、地上燃气测量子模块、排水测量子模块、墙上进水测量子模块、地上进水测量子模块、排气测量子模块、电箱测量子模块、空调测量子模块、墙出风口测量子模块、天花出风口测量子模块和三点圆水管测量子模块,其中,(1)插座测量子模块、开关测量子模块、墙上燃气测量子模块、地上燃气测量子模块、排水测量子模块、墙上进水测量子模块、地上进水测量子模块的测量方式都相同,都是在物件的中心点测一点,如果只有一个物件,那么(X1,Y1,Z1)即为该物件的中心位置,如果一排有多个物件,那么测量完最左边的物件后,根据输入的物件的数量,即可自动复制多个物件;(2)排气测量子模块、电箱测量子模块、空调测量子模块、墙出风口测量子模块、天花出风口测量子模块的测量方式都相同,都是在物件的对角位置各取一点,获得两组数据(X1,Y1,Z1)、(X2,Y2,Z2),根据cp_mid=[(X1+X2)/2,(Y1+Y2)/2,(Z1+Z2)/2]获得物件的中心位置;(3)三点圆水管测量子模块的测量方式是在圆水管柱上从左到右取三点,获得三组数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),先计算得到圆心centerpoint的坐标(X4,Y4,Z4),然后根据公式
Figure FDA0003944979770000081
获得圆水管柱的直径,其中,圆心centerpoint的坐标(X4,Y4,Z4)采用如下的计算方法计算得到:先计算第一个点、第二个点连成的线段的中垂线垂足坐标(foot_point_1.x,foot_point_1.y,0)以及斜率k1;然后计算第二个点、第三个点连成的线段的中垂线垂足坐标(foot_point_2.x,foot_point_2.y,0)以及斜率k2;之后根据前面计算得到的两个垂足坐标以及斜率k1、斜率k2计算圆心centerpoint的坐标(X4、Y4、Z4),圆心centerpoint的X坐标X4为:(foot_point_2.y-foot_point_1.y+k1×foot_point_1.x-k2×foot_point_2.x)/(k1-k2),圆心centerpoint的Y坐标Y4为:k1×(X4-foot_point_1.x)+foot_point_1.y,圆心centerpoint的Z坐标Z4为:0;
激光测量数据导入模块:用来导入激光测距仪测量得到的三维空间坐标数据,在该模块中用户可以对测量数据进行二次修改;
单房间生成模块:用来根据房间尺寸以及窗、门、梁、柱、踢脚线、与水电相关的物件的位置,生成单个房间的平面图和三维图;
拼房模块:用来以门为基准,将单房间生成模块所生成的各个房间的平面图和三维图拼接,生成三维户型图;
尺寸标注模块:用来标注/隐藏和修改窗和门的尺寸;
显示模块:用来显示房间透明/不透明、测量对象标签显示/隐藏、电器显示/隐藏;
文件保存模块:用来保存文件,包括skp文件、打扮家文件json和测量文件mjson;
验证模块:向该模块中输入注册验证码,经该模块验证并通过后,测量数据方可传入相应的测量模块,否则测量数据将无法传入。
CN201910613126.9A 2019-07-09 2019-07-09 一种基于激光测距的即时生成三维房型的软件*** Active CN110322552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910613126.9A CN110322552B (zh) 2019-07-09 2019-07-09 一种基于激光测距的即时生成三维房型的软件***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910613126.9A CN110322552B (zh) 2019-07-09 2019-07-09 一种基于激光测距的即时生成三维房型的软件***

Publications (2)

Publication Number Publication Date
CN110322552A CN110322552A (zh) 2019-10-11
CN110322552B true CN110322552B (zh) 2023-05-12

Family

ID=68121615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910613126.9A Active CN110322552B (zh) 2019-07-09 2019-07-09 一种基于激光测距的即时生成三维房型的软件***

Country Status (1)

Country Link
CN (1) CN110322552B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990644B (zh) * 2019-10-28 2024-04-05 深圳市彬讯科技有限公司 在线量房的方法、装置、计算机设备及存储介质
CN110826133A (zh) * 2019-11-04 2020-02-21 广东三维家信息科技有限公司 利用激光测距仪绘制户型的方法和***
CN111102936A (zh) * 2020-01-06 2020-05-05 青梧桐有限责任公司 一种户型图的扫描及生成***
CN111968245B (zh) * 2020-07-07 2022-03-01 北京城市网邻信息技术有限公司 三维空间的标线展示方法、装置、电子设备和存储介质
CN113340214B (zh) * 2021-05-21 2023-03-14 机械工业第九设计研究院股份有限公司 一种墙体任意位置厚度精确检测***及方法
CN117347979B (zh) * 2023-10-20 2024-04-26 广州后作科技有限公司 一种激光测距装置及其测距和绘图方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101836077A (zh) * 2007-10-26 2010-09-15 莱卡地球***公开股份有限公司 用于基准线投影仪器的测距方法和该基准线投影仪器
CN109724573A (zh) * 2018-12-28 2019-05-07 广东建准检测技术有限公司 基于三维激光检测***获取房屋指标参数的扫描方法
CN109923264A (zh) * 2016-09-14 2019-06-21 爱马特伦***有限责任公司 通过高速挤出打印进行加强水泥建筑的方法及使用该方法的设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4342919B2 (ja) * 2003-12-02 2009-10-14 旭化成ケミカルズ株式会社 光触媒組成物、それから形成される光触媒体及び機能性複合体
DE102009002733B3 (de) * 2009-04-29 2010-12-30 Haeberlin, Volker, Dr. Verfahren und Vorrichtung zur Manipulation eines Fluginsekts
WO2014106823A2 (en) * 2013-01-03 2014-07-10 Meta Company Extramissive spatial imaging digital eye glass apparatuses, methods and systems for virtual or augmediated vision, manipulation, creation, or interaction with objects, materials, or other entities
CN104778756B (zh) * 2015-04-10 2017-11-21 北京明兰网络科技有限公司 智能家居装饰设计***
CN105825501B (zh) * 2016-03-10 2018-06-12 北京工业大学 一种模型引导下的3d打印额面肿瘤治疗导板智能化质量检测方法
CN106844983B (zh) * 2017-01-26 2021-07-23 厦门理工学院 一种提高建筑物防台风能力的方法
CN107424193B (zh) * 2017-04-27 2020-10-13 巧夺天宫(深圳)科技有限公司 一种门窗信息提取方法及其装置
CN108446830B (zh) * 2018-02-13 2022-03-08 厦门知本家科技有限公司 一种基于移动设备端的户型日照分析方法
CN108961417B (zh) * 2018-05-30 2020-08-11 贝壳找房(北京)科技有限公司 在三维房屋模型中自动生成空间尺寸的方法和装置
CN109711018B (zh) * 2018-12-15 2022-11-22 武汉兴联云立方科技有限公司 一种二维到三维的户型设计方法
CN109781561A (zh) * 2018-12-28 2019-05-21 广东建准检测技术有限公司 基于三维激光扫描技术在结构鉴定中的应用方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101836077A (zh) * 2007-10-26 2010-09-15 莱卡地球***公开股份有限公司 用于基准线投影仪器的测距方法和该基准线投影仪器
CN109923264A (zh) * 2016-09-14 2019-06-21 爱马特伦***有限责任公司 通过高速挤出打印进行加强水泥建筑的方法及使用该方法的设备
CN109724573A (zh) * 2018-12-28 2019-05-07 广东建准检测技术有限公司 基于三维激光检测***获取房屋指标参数的扫描方法

Also Published As

Publication number Publication date
CN110322552A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
CN110322552B (zh) 一种基于激光测距的即时生成三维房型的软件***
Criminisi et al. Single view metrology
CN110543721B (zh) 一种面向室内位置服务的导航网络构建方法
CN109670262B (zh) 一种计算机辅助家居布局优化方法及***
Tang et al. Automatic reconstruction of as-built building information models from laser-scanned point clouds: A review of related techniques
Cruz et al. Zillow indoor dataset: Annotated floor plans with 360deg panoramas and 3d room layouts
US6333749B1 (en) Method and apparatus for image assisted modeling of three-dimensional scenes
CN109685891A (zh) 基于深度图像的建筑物三维建模与虚拟场景生成***
CN104392482B (zh) 变电站工程项目三维算量模型生成***及方法
WO2021098457A1 (zh) 一种实测实量任务点搜索与任务派发方法及***
CN108446830B (zh) 一种基于移动设备端的户型日照分析方法
CN113538671A (zh) 地图生成方法、装置、存储介质及处理器
CN110956690A (zh) 一种建筑信息模型生成方法和***
CN110226806A (zh) 一种鞋底涂胶轨迹生成方法及装置
CN108320323A (zh) 一种建筑物三维建模方法及装置
CN101404090A (zh) 一种用于空间分析的地下构筑物三维数字化模型构建方法
CN111400800A (zh) 一种基于bim和vr技术的建筑施工质量控制***及方法
CN110060342A (zh) 一种三维曲面拟合方法
Hou et al. A highly robust automatic 3D reconstruction system based on integrated optimization by point line features
CN102901488B (zh) 一种自动生成房间平面图的方法及设备
CN106126964A (zh) 一种建筑物面积的测量方法和装置
Schäfer et al. Automatic generation of topological indoor maps for real-time map-based localization and tracking
CN109302234B (zh) 一种室内可见光通信***复杂信道冲激响应的计算方法
CN109165399B (zh) 一种基于SketchUp API的自动化三维建筑建模方法与***
CN108009144B (zh) 幕墙表皮自动下单方法及其***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant