Imageware-晋级学习-浏览ImagewareImageware发布日期:2006-4-410:19:13作者:出处:Imageware入门教程一:数据评估在本指南的开始,应该在你的Imgaeware中打开“stare.imw”文件注意:来自光学扫描系统的扫描数据受外围环境,材料的类型,物体的颜色的约束,应该趋向于密集和光滑。在本例中,为了节省时间,扫描数据已经被光滑处理和修整了。为了确定你的工程目标,你应该弄清楚以下问题:1.这些扫描数据从哪里来?这是一个摇臂开关(这个该是点云的名字),由光学扫描系统得到数据。2.这种数据具有什么特征?这种数据是非常密集的点云,位置错乱,这意味着它不具备基准或者对齐的信息。(此处我理解为在扫描数据的过程中,由于人工的原因,比如测量机晃动,以至于点的位置错乱,所以在这个逆向过程中应该进行数据对齐的操作。3.我的最终产品要用来做什么?最终模型用来校验原型产品(这个和逆向工程想要达到的目的有关,他要来校验最初的模型,应该是要求很高的精度了)4.最终反求的模型要达到怎样的精度?最终做出的曲面必须相当精确,偏差在0.10mm之内(虽然我是学机械设计的,但我的几何量测量太糟糕了,这里的偏差是不是指面的光滑度?)Datareductionandpolygonization数据缩减和多边形化处理海量数据时,典型的处理方式是采用定义点距大小的方式缩减一部分数据,使点云看上去更清楚,也便于多边形网格化数据或做其他处理。(化繁为简,许多东西多了并不一定好哎)二:Datareduction数据缩减缩减数据比较通俗的做法就是使用SpaceSampling(间隔取样)命令。这个命令会在指定的间隔中简化点云,也能去处重叠点。注意:确认示例文件“start.imw”是否被打开(老外的说法真罗嗦!!!)缩减数据:1.从Modify工具条找到Restructure,选择SpaceSampling。或菜单Modify|DataReduction||SpaceSampling。或在点云上击鼠标右键选择2.选择要处理的点云3.设定distancetolerancet为0.15mm.(这种做法就好象做一个0.15*0.15方格的筛子或者滤网,每个网格里边只保留一个点),处理结果如下图所示。处理之后,点云虽然被缩减了75%(原来是210109个点,现在是51616),但它依然具有足够的数据信息提给下面的各步处理。4.保存一下文件,以original_reduced.imw.为文件名。三:Scanpolygonization多边形化处理为了更清楚的表达点云的形状,我们要进行点云的多边形网格化处理(CAGD中叫织网,点云的曲面重建技术分三个主要步骤,采样,织网,蒙面。逆向工程的最高境界就是能自动进行重建,而不是像目前这样为了取得高精度面付出很多的人工参与。据说Hopper博士,好象是这么一个人,他的研究已经可以实现曲面重建,最终重建的曲面可以是NURBS定义的,这是不是意味着逆向工程要进行革命?这种革命的出现会让许多人付出失业的代价!)后来我又想到,之所以要进行多边形网格化,很大一部分原因为了曲率分析!因为曲率分析是要借助于每个单元格构成的小平面的曲率来进行近似统计!!!单纯对于点云中的点来说,曲率是没有意义的!!!注意:确认original_reduced.imw被打开扫描数据的多边形化处理1.从Construct工具条中找到CreatePolygonMesh,选择PolygonizeCloud,或从菜单选择Construct|Polygonmesh|PolygonizeCloud。或击鼠标右键选2.设定theMax.Similardistanceto为0,设定neighborhoodsize(邻域尺寸)为0.5mm,而后点击Apply提示:邻域尺寸值通常近似取spacesampling中设定的距离公差值的3倍,这样可以得到均匀的高质量的网格。完成之后,在菜单中选择Display|Point|Gouraud-Shaded,就看到如下图所示。3.按文件名为original_reduced_polygonized.imw.存盘四:Alignmentdatacreation数据对齐这一节讲述了通过简单的数据对齐把点云的位置调整好。之所以要对齐点云,是因为输入计算机的初始的点云坐标系是三坐标测量机的赋予它的局部坐标系,这个局部坐标系与Imageware系统坐标系通常不一致,这就导致了点云缺乏合适位置信息,处理起来十分不便。所以要进行点云对齐,可以更容易地进行建模操作。--------------------------------(一开始翻译的不够好,在把这个例子完整地做完之后才订正的,许多东西是动手之后才能明白!!!!)在建模操作之前,需要把点云的位置调整好,这就是对齐。(这一处内容一开始我读的不是很明白,后来按照指南中的步骤一步一步做下来,才领悟到为什么要这么做了。我在一本讲OpenGL编程的书中了解了世界坐标系和局部坐标系的概念。这里所谓的对齐调整就是把局部坐标系和世界坐标系的方位统一起来。什么叫世界坐标系和局部坐标系?说来话长,在OpenGL的图形学原理中这是基本概念,本人是半路出家学习反求工程,对图形学的概念了解的不是很多,我相信有许多人也和我一样不理解某些专业的概念,只好罗嗦一下。图形在计算机内是以数值的形式进行存储和处理的。众所周知,坐标建立了图形和数据之间的关系。为了使所显示的图形数量化,就要在被显示的图形所在的空间中定义一个坐标系,坐标系的长度单位和坐标轴的方向要适合所显示的图形对象,这就是世界坐标系。所谓的局部坐标系就是以物体的中心为原点,物体的旋转和平移操作均是围绕局部坐标系进行的之所以要统一局部坐标系和世界坐标系,是因为物体执行了缩放操作,局部坐标系也要进行相应的缩放操作,如果缩放的比例在个坐标轴上不同,经过旋转操作后,局部坐标系的各坐标轴有可能不再相互垂直。之所以要把点云的坐标系与世界坐标系进行对齐是为了下一步更精确定义截面线的位置或其他的建模操作。因为Imageware对视图的旋转和缩放等操作是基于世界坐标系的。。不知我这样理解对不对,,,请前辈指正!点云对齐的基本操作:先在点云上找出可以定位的线和面,通过做截面,取得截面线,调整截面线,这些截面和截面线就是点云的对齐特征。然后在世界坐标系中做出这些线和面的相似形,最后使用Imageware中的对齐工具,进行对齐。对齐是逆向工程的基本操作。下文的过程和我说的恰好相反,我觉得他的做法欠自然!!!不经过对点云的特征分析,怎么可能先在世界坐标系中建立点云特征相似形呢?????????创建基准Creatingreferencegeometry(所谓基准,就是点云对齐的依据)为了正确地调整数据,我们有必要建立一些几何图形作为参照物参与调整过程。在你的模型原点(0,0,0)和Z方向上创建一些直线,圆,平面等辅助图形,如下面过程所示。注意:Makesurethatthefileoriginal_reduced_polygonized.imwisopen.建立直线:1.在Create工具条中找到Lines选择Line,或选择Create|3DCurve|Line.2.设定startpoint为X=0,Y=0,Z=0,设定endpoint为X=0,Y=100,Z=0.3.点击Apply.建立圆:1.在Create工具条中找到Arc/Circle,选择Circle,或者选择Create|CirclePrimitive|Circle.2.设定center为0,0,0,设定direction为Z.即在XY面上作一个圆3.随便输入一个半径值,比如20mm(我的IMAGEWARE在这个地方出现BUG了,我输入2之后,不管输什么都显示2。好多次都这样,比如我输入12345,显示就是22222)4.点击Apply.建立一个平面:1.从Create工具条中找到Plane,选择PlanarSurface,或选择Create|SurfacePrimitive|Plane.2.在CreatplaneOptions栏指定ByCenterPoint,设定Centerofplane为(0,0,0)3.在planeNormal栏选择Z方向作为平面法线4.输入U向和V向的宽度(Extent),这个值不作要求,我们使用205.点击Apply.6.使用TOP视图(默认摁F1键)观察,如下图所示(下图有网格,你可以在VIEW菜单中选择ShowGrid)到此为止,辅助的参考几何元素建立完毕,至于为什么要这么干,请继续向下看。既然做了,肯定是要用到的,所以不要着急!建立相应的对齐特征(Creatingcorrespondingalignmententities)下一步,我们必须要在模型中建立相应的实体,这些实体就是点云的特征,对齐点云的位置只需要对齐这些实体的位置即可,可以将这些实体与上一步建立的参考几何图形对齐,完成点云对齐的工作。这一步,我们要构造截面线来决定哪些点被用来作为参考点,我们要拟合两个圆和一条直线组成参考实体。注意:在Imageware中,实体包括点,线,面。对齐视图:(Toalignview)为了创建对齐实体,视图必须首先与基于最合适的平面上的点云对齐,这样就可以很容易地抽取点云的截面线。1.在菜单中选择View|AlignViewTo|Cloud.2.选择要对齐的点云,击Apply.3.在视图中击右键,选择旋转,你看到如下图所示。(这儿是旋转90度,我不明白该怎样旋转地这么正好???我只是大体地旋转到这个位置)创建截面线:.一个截面线必须水平地切过网格化之后的点云,稍微切过主侧面之下。一旦截面线创建完毕,必须进行修整,把截面线分成直线部分和圆。1.从Construct工具条中找到CreateCrossSection,选择InteractiveCrossSection,或在菜单中寻找Construct|Crosssection|CloudInteractive2.设定采样间隔samplingdistanceto为0.25mm.3.使用鼠标左键建立一条穿过点云的水平直线,记住在画线时要摁着Ctrl键。(在画水平线和垂直线的时候都要摁着Ctrl)4.APPLY5.把多边形网格点云隐藏,并对齐截面线的视口6.从Modify工具条找到Trim,选择CircleSelectPoints,或在截面线处右击鼠标选择。7.设定选择模式selectionmodeto为BothClouds.(晕倒,这好象是10版的做法)8.使用鼠标画弯曲部分,然后APPLY。9.重复画另外弯曲的部分,如下图所示。创建对应的几何图形:1.菜单中Construct|CurvefromCloud|FitCircle.2.选择点云('OriginalScanInteractPolySectCldin2')拟合圆。然后Apply.3.再对另一端的点云拟合成圆。4.菜单中找到Create|3DCurve|Line.(这也是第10版的做法,第11版的在Create|CurvePrimitive|Line5.设定起始点为一圆的圆心,终点为另一圆的圆心,关于圆心的选择,请参考工具条处跳出的点捕捉功能。6.Apply.直线如下图浅兰色所示。7.删除由截面线生成的数据,即截面线的点云,只留下两圆和一直线。Grouptheentities组合实体(依然是为了数据对齐)在Imageware中,一组数据需要使用对齐工具进行对齐。这组数据必须包含所有你期望对齐的几何要素,也包括为了对齐而创建的参考图形,在本例中,就是那俩圆和一直线,我们要把它们和点云进行对齐。.注意:一旦物体被组合了,这组实体就呈现出一种不同的颜色以示区别。组合实体:1.选择Organize|CreateGroup.(这是老版本的做法,在第11版中从Edit菜单中选择CreatGroup)2.选择那两个圆,直线,和点云。3.Apply.4.保存为文件ready_for_alignmen