Imageware 入门教程
一:数据评估
在本指南的开始,应该在你的Imgaeware中打开“stare.imw”文件
注意:来自光学扫描系统的扫描数据受外围环境,材料的类型,物体的颜色的约束, 应该趋向于密集和光滑。在本例中,为了节省时间,扫描数据已经被光滑处理和修整了。
为了确定你的工程目标,你应该弄清楚以下问题:
1. 这些扫描数据从哪里来?
这是一个摇臂开关(这个该是点云的名字),由光学扫描系统得到数据。 2. 这种数据具有什么特征?
这种数据是非常密集的点云,位置错乱,这意味着它不具备基准或者对齐的信息。(此处我理解为在扫描数据的过程中,由于人工的原因,比如测量机晃动,以至于点的位置错乱,所以在这个逆向过程中应该进行数据对齐的操作。 3. 我的最终产品要用来做什么?
最终模型用来校验原型产品(这个和逆向工程想要达到的目的有关,他要来校验最初的模型,应该是要求很高的精度了) 4. 最终反求的模型要达到怎样的精度?
最终做出的曲面必须相当精确,偏差在0.10mm之内(虽然我是学机械设计的,但我的几何量测量太糟糕了,这里的偏差是不是指面的光滑度?)
Data reduction and polygonization数据缩减和多边形化
处理海量数据时,典型的处理方式是采用定义点距大小的方式缩减一部分数据,使点云看上去更清楚,也便于多边形网格化数据或做其他处理。(化繁为简,许多东西多了并不一定好哎)
二:Data reduction数据缩减
缩减数据比较通俗的做法就是使用Space Sampling(间隔取样)命令。这个命令会在指定的间隔中简化点云,也能去处重叠点。
注意:确认示例文件“start.imw”是否被打开(老外的说法真罗嗦!!!) 缩减数据:
1. 从Modify工具条找到Restructure,选择Space Sampling 。
或菜单Modify|Data Reduction||Space Sampling。或在点云上击鼠标右键选择2. 选择要处理的点云
3. 设定 distance tolerancet为 0.15mm. (这种做法就好象做一个0.15*0.15方格的筛子或者滤网,每个网格里边只保留
一个点),处理结果如下图所示。
处理之后,点云虽然被缩减了75%(原来是210109个点,现在是51616),但它依然具有足够的数据信息提给下面的各步处理。
4. 保存一下文件,以 \"original_reduced.imw.\"为文件名。
三:Scan polygonization多边形化处理
为了更清楚的表达点云的形状,我们要进行点云的多边形网格化处理(CAGD中叫织网,点云的曲面重建技术分三个主要步骤,采样,织网,蒙面。逆向工程的最高境界就是能自动进行重建,而不是像目前这样为了取得高精度面付出很多的人工参与。据说Hopper博士,好象是这么一个人,他的研究已经可以实现曲面重建,最终重建的曲面可以是NURBS定义的,这是不是意味着逆向工程要进行?这种的出现会让许多人付出失业的代价!)
后来我又想到,之所以要进行多边形网格化,很大一部分原因为了曲率分析!因为曲率分析是要借助于每个单元格构成的小平面的曲率来进行近似统计!!!单纯对于点云中的点来说,曲率是没有意义的!!! 注意:确认 \"original_reduced.imw\" 被打开 扫描数据的多边形化处理
1. 从Construct工具条中找到Create Polygon Mesh ,选择Polygonize Cloud
mesh|Polygonize Cloud。或击鼠标右键选
,或从菜单选择Construct|Polygon
2. 设定 the Max. Similar distance to为0 ,设定neighborhood size(邻域尺寸)为0.5mm ,而后点击Apply
提示:邻域尺寸值通常近似取space sampling中设定的距离公差值的3倍,这样可以得到均匀的高质量的网格。完成
之后,在菜单中选择Display|Point|Gouraud-Shaded,就看到如下图所示。
3. 按文件名为 \"original_reduced_polygonized.imw.\"存盘
四:Alignment data creation数据对齐
这一节讲述了通过简单的数据对齐把点云的位置调整好。之所以要对齐点云,是因为输入计算机的初始的点云坐标系是三坐标测量机的赋予它的局部坐标系,这个局部坐标系与Imageware系统坐标系通常不一致,这就导致了点云缺乏合适位置信息,处理起来十分不便。所以要进行点云对齐,可以更容易地进行建模操作。--------------------------------(一开始翻译的不够好,在把这个例子完整地做完之后才订正的,许多东西是动手之后才能明白!!!!)
在建模操作之前,需要把点云的位置调整好,这就是对齐。(这一处内容一开始我读的不是很
明白,后来按照指南中的步骤一步一步做下来,才领悟到为什么要这么做了。我在一本讲OpenGL编程的书中了解了世界坐标系和局部坐标系的概念。这里所谓的对齐调整就是把局部坐标系和世界坐标系的方位统一起来。什么叫世界坐标系和局部坐标系?说来话长,在OpenGL的图形学原理中这是基本概念,本人是半路出家学习反求工程,对图形学的概念了解的不是很多,我相信有许多人也和我一样不理解某些专业的概念,只好罗嗦一下。图形在计算机内是以数值的形式进行存储和处理的。众所周知,坐标建立了图形和数据之间的关系。为了使所显示的图形数量化,就要在被显示的图形所在的空间中定义一个坐标系,坐标系的长度单位和坐标轴的方向要适合所显示的图形对象,这就是世界坐标系。所谓的局部坐标系就是以物体的中心为原点,物体的旋转和平移操作均是围绕局部坐标系进行的之所以要统一局部坐标系和世界坐标系,是因为物体执行了缩放操作,局部坐标系也要进行相应的缩放操作,如果缩放的比例在个坐标轴上不同,经过旋转操作后,局部坐标系的各坐标轴有可能不再相互垂直。之所以要把点云的坐标系与世界坐标系进行对齐是为了下
一步更精确定义截面线的位置或其他的建模操作。因为Imageware对视图的旋转和缩放等操作是基于世界坐标系的。。不知我这样理解对不对,,,请前辈指正!
点云对齐的基本操作:先在点云上找出可以定位的线和面,通过做截面,取得截面线,调整截面线,这些截面和截面线就是点云的对齐特征。然后在世界坐标系中做出这些线和面的相似形,最后使用Imageware中的对齐工具,进行对齐。对齐是逆向工程的基本操作。下文的过程和我说的恰好相反,我觉得他的做法欠自然!!!不经过对点云的特征分析,怎么可能先在世界坐标系中建立点云特征相似形呢?????????
创建基准Creating reference geometry(所谓基准,就是点云对齐的依据)
为了正确地调整数据,我们有必要建立一些几何图形作为参照物参与调整过程。在你的模型原点(0,0,0)和Z方向上创建一些直线,圆,平面等辅助图形,如下面过程所示。
注意: Make sure that the file \"original_reduced_polygonized.imw\" is open. 建立直线:
1. 在Create工具条中找到Lines选择 Line 3. 点击Apply. 建立圆:
,或选择 Create|3D Curve|Line.
2. 设定start point 为X = 0, Y = 0, Z = 0 ,设定end point 为 X= 0, Y = 100 , Z = 0.
1. 在Create工具条中找到Arc/Circle,选择 Circle ,或者选择 Create|Circle Primitive|Circle.
2. 设定 center 为 0,0,0 ,设定 direction 为Z. 即在XY面上作一个圆
3. 随便输入一个半径值,比如20mm(我的IMAGEWARE在这个地方出现BUG了,我输入2之后,不管输什么
都显示2。好多次都这样,比如我输入12345,显示就是22222)
4. 点击 Apply. 建立一个平面:
1. 从Create工具条中找到Plane,选择Planar Surface 3. 在plane Normal栏选择Z方向作为平面法线
,或选择Create|Surface Primitive|Plane.
2. 在Creat plane Options栏指定By Center Point,设定Center of plane为(0,0,0) 4. 输入U向和V向的宽度(Extent),这个值不作要求,我们使用20 5. 点击 Apply.
6. 使用TOP视图(默认摁F1键)观察,如下图所示(下图有网格,你可以在VIEW菜单中选择Show Grid)
到此为止,辅助的参考几何元素建立完毕,至于为什么要这么干,请继续向下看。 既然做了,肯定是要用到的,所以不要着急!
建立相应的对齐特征(Creating corresponding alignment entities)
下一步,我们必须要在模型中建立相应的实体,这些实体就是点云的特征,对齐点云的位置只需要对齐这些实体的位置即可,可以将这些实体与上一步建立的参考几何图形对齐,完成点云对齐的工作。这一步,我们要构造截面线来决定哪些点被用来作为参考点,我们要拟合两个圆和一条直线组成参考实体。 注意:在Imageware中,实体包括点,线,面。 对齐视图:(To align view)
为了创建对齐实体,视图必须首先与基于最合适的平面上的点云对齐,这样就可以很容易地抽取点云的截面线。
1. 在菜单中选择 View|Align View To|Cloud. 2. 选择要对齐的点云,击 Apply.
3. 在视图中击右键,选择旋转,你看到如下图所示。 (这儿是旋转90度,我不明白该怎样旋转地这么正好???我
只是大体地旋转到这个位置)
创建截面线:
.一个截面线必须水平地切过网格化之后的点云,稍微切过主侧面之下。一旦截面线创建完毕,必须进行修整,把截面线分成直线部分和圆。
1. 从Construct工具条中找到Create Cross Section,选择 Interactive Cross Section
Construct|Cross section|Cloud Interactive 2. 设定采样间隔 sampling distance to为0.25mm.
,或在菜单中寻找
3. 使用鼠标左键建立一条穿过点云的水平直线,记住在画线时要摁着Ctrl键。(在画水平线和垂直线的时候都要摁着
Ctrl) 4. APPLY
5. 把多边形网格点云隐藏,并对齐截面线的视口 6. 从Modify工具条找到Trim,选择Circle Select Points 8. 使用鼠标画弯曲部分,然后APPLY。 9. 重复画另外弯曲的部分,如下图所示。
,或在截面线处右击鼠标选择。
7. 设定选择模式 selection mode to为Both Clouds.(晕倒,这好象是10版的做法)
创建对应的几何图形:
1. 菜单中 Construct|Curve from Cloud|Fit Circle.
2. 选择点云 ('Original Scan InteractPolySectCld in2') 拟合圆。 然后 Apply. 3. 再对另一端的点云拟合成圆。
4. 菜单中找到Create|3D Curve| Line.(这也是第 10 版的 做 法,第11 版的在Create|Curve Primitive|Line 5. 设定起始点为一圆的圆心,终点为另一圆的圆心,关于圆心的选择,请参考工具条处跳出的点捕捉功能。 6. Apply. 直线如下图浅兰色所示。
7. 删除由截面线生成的数据,即截面线的点云,只留下两圆和一直线。
Group the entities组合实体(依然是为了数据对齐
在Imageware中,一组数据需要使用对齐工具进行对齐。这组数据必须包含所有你期望对齐的几何要素,也包括为了对齐而创建的参考图形,在本例中,就是那俩圆和一直线,我们要把它们和点云进行对齐。 .注意:一旦物体被组合了,这组实体就呈现出一种不同的颜色以示区别。 组合实体:
1. 选择Organize|Create Group. (这是老版本的做法,在第11版中从Edit菜单中 选择Creat Group) 2. 选择那两个圆,直线,和点云。 3. Apply.
4. 保存为文件 \"ready_for_alignment.imw.\" 5. 如下图所示
Top
Align the data to a world location把点云的坐标与世界坐标系对齐
.一旦对齐特征被创建了,你就准备把点云与全局坐标系进行对齐了,我们将使用逐步对齐命令(Stepwise Alignment),该命令允许我们堆叠对齐的配对数据和观察对齐的结果。 注意:确定\"ready_for_alignment.imw\"被打开。
对齐数据:(要把所有的数据都显示出来,不然Stepwise Alignment 是灰色的不可点,为什么会这样,自己想!!)
1. 从Modify工具条中找到Alignment,选择Stepwise Alignment 2. 指定使用点作为匹配操作类型
, 或在菜单中选择Modify|Align|Stepwise.
3. '选择颇象大拇指摁下去的那个部位的圆(FitCircle )作为源元素(source element). [ ,这儿的翻译颇让俺闷了好
大一会,老外也真晕人!太形象了!!] 4. 从目的元素列表中选择 circle
5. 摁下 Add,创建第一对对齐配对。.你可以看到点云组从原位置移到了新位置。嘿嘿,你知道它们移哪去了吗???
回想一下一开始咱不是画了一条线,一个圆和一个平面吗?就是在点云的多边形网格化之后,在数据对齐的一开始那儿做的。现在点云组中的那个 FitCirle的圆心被移到了那个辅助圆的圆心了!自己仔细看一看。。。。现在就该明白了为什么一开始要从(0,0,0)点画一条直线,画一个圆(法线为Z轴)和一个平面了吧。。。。。。 6. 把视图放大,如下所示:
7. 然后指定使用Plane 作为第二个匹配类型 8. 选择另外一个圆作为源元素 9. 选择plane作为目的元素
10. 摁Add 创建第二对匹配,你可以看到原来圆所在的平面和你在数据对齐一开始创建的那个plane重合起来。。。。
11. 指定使用line作为最后的匹配类型。这样就可以把点云的位置摆正 12. 选择扫描线作为源元素,指定直线(Line)作为目的元素
13. 摁Add 完成第三次配对。你应该可以看到扫描数据可以围绕它自己进行转动,并把它自身与Y+方向对齐了(两直
线重合)。
14. 在所有可能的匹配都被输入之后,不再有其他自由度了,那么你现在唯一要干的就是APPLY!!! 然后Stepwise对话框会报告对齐处理的精确度,达到的公差是多少。
修改对齐Modifying the alignment。
解散点云组,删掉所有被用来辅助对齐操作的参照几何形。由于所选位置的原因,点云侧面部分仍然在Z轴的下面。为了纠正这种现象,我们将要再一次使用对齐操作,在Z方向上移动这部分
注意:你可能会问为什么不是把全部数据都移动。很简单:你需要回退时,你已经动手移动了你的数据,如果你忘记了记下你移动了哪些数据,那么你就可能碰到麻烦。自由建模过程可以保持跟踪所有的对齐操作,并把它们保存在文件中。这些信息会一直保留在文件中,除非你明确地要把它们删除了。(这儿我读得不是很明白,我觉得它的大体意思就是说为什么要删除那些辅助几何形)
原指南中没有说如何解散点云组。在Edit菜单中找到Ungroup,然后选择你要解散的组即可。解散完毕之后,要把那些在前面参与对齐工作的辅助图形都删掉。删除的方法是在你要删除的图形处右键,然后找到Cut Entity.
.一旦对齐操作完成了,你可以得到所有对齐操作的信息。在菜单中选择Evaluate|Information|Alignment去看一看你把数据怎么样移动,移到哪去了的历史记录。更有意义的是,如果你需要重新装入初始数据到你已经清除它们的地方去,此时你可以使用Modify|Align|Reapply的命令。这个操作允许你重新对齐数据。 To establish the distance to move the data:确定移动数据的距离:
1. 在Main工具条中找到File Management ,然后选择Object Information 2. 选择要重新找回原信息的点云组。
你可以看到最小的Z值(也就是点云的侧面部分的最小值)的值是xx.xxxx 移动数据(To move the data:)
1. 在菜单中选择 Construct|Points.(这也是老版本中的做法,在11版中选择的路径是Create|Points) 2. 设定要建立的点坐标为(0,0,0),(此处输入点坐标时,是在工具条栏中找到
凡是坐标输入的功能几乎都在那儿找),然后APPLY
3. 设定第二个点的坐标为(0,0,xx.xxxx),这里的xx.xxxx即刚才我们在查看点云信息的时候看到的那个Z坐标最小
值。然后Apply
,前面在创建直线,圆什么的
4. 在Edit菜单中找到Create Group,把上面设定的第一个点(Cld)与点云成组。
5. Apply..注意建立的点坐标与点云的颜色不同以示区别。如下左图所示(它说的这个,我倒没看见,只要确定点已经
建立就可以了。我的Imageware在这个地方又死了一次)
Two clouds to be aligned
Part once the Stepwise alignment was completed
6. 从Modify工具条中找到Alignment,选择Stepwise Alignment 7. 指定使用点作为匹配类型
, 或在菜单中选择Modify|Align|Stepwise.
8. 选择点云组中的点作为源元素,选择另一个点(Cld2)作为目的元素,即对齐点。
9. 先Add ,然后Apply. 然后观察一下你的点云被移到哪儿了。。。是不是把那两个点重合对齐之后,点云此刻的Z
坐标大于等于0了???尽信书不如无书,我按他的指南做,结果恰恰背道而迟了,
(建议在前面第2步中选择另一点,不要按他说的那样。)[对不起,事实证明我在这一步做错了,,就应该按原文档中所说的那样操作!!!!]
10. 在菜单中选择 Modify|Orient|Reset Home 或在工具条中Modify|Orient|Reset Object Axis 重置坐标,把世界坐标系
定到新位置。。。。
这将会防止你意外的把数据返回到原来的位置,不让上面的辛苦浪费了。。。。 别忘了把方才构造的两个点删除!!!!!!!!!!!!!! 11. 以文件名 \"aligned.imw.\"保存文件。
数据对齐的经验
要记住你为对齐操作而建立的所有辅助形的名字,有时要被用到,比如在删除时,或决定要显示哪个,不显示哪个时。还有在做StepWise操作时选择匹配类型时也需要用到辅助形的名字。
及时清除不再需要的对齐操作辅助图形,尽量保证数据的可管理性。只要你觉得你的对齐操作已经完成了,那么就可以把你自己创建的辅助图形删除,要保证你的数据一直很干净,这个和手工绘图的道理是一样的。。。辅助线太多会干扰作图。
在对齐完成之后,要重置一次坐标系,防止以外地回退到原坐标系中,那样就不好再重新对齐了。也就是说要保证坐标系的唯一性。
至此,对齐操作完全结束,点云已经具有比较合适的坐标系位置了,下一步就是构造截面!!!
数据显示,抽取特征(Visualize the data and extract features)
.在处理点云的过程中,有时想看到很微小的特征很困难,有些特征很可能被遗漏了。在使用点云离散化显示或者单一平面投影模式(flat shaded mode)时,特征遗漏最为常见,在gouraud shaded(一个图形学的专业人士告诉我Gouraud是一个人名)模式下效果会好一些,但微小特征遗漏的现象也时有发生。为了解决这个问题,我们引入了一些功能操作,可以帮助你更好的观察点云,更方便抽取你需要的特征。额外的好处就是给你一个立体的(三维的)操作环境,你就不会遗漏掉那些你需要处理的重要的,微小的特征了。(gouraud shaded应该是多平面投影模式,个人理解,也许不对。)
这些功能最好不要用来处理非多边形网格化的点云,强烈推荐在使用这些功能前,你要保证你的点云已经被网格化了。这些功能可以帮助你审度点云的质量。如果点云呈现很亮的橘色,那么这些工具产生的精确度就会降低一些;如果点云呈现锯齿状,那么这些工具的的精确度就会更加的低了。在这种情况下,我们就必须再多用一些时间来整理一下数据,如果允许就对数据重新进行调整操作。(这段叙述应该讲:用一组有关数据显示的工具来检验点云的质量,如过质量不好,那么就该重新调整前面进行的处理所用的公差值什么的。。。。)
评估点云(Evaluating the scan data)
为了评估点云,我们要使用点云反射率(Cloud Reflectance)工具。这个操作可以显示在点光源中点云的颜色。反射率(反射比)就是点的法向量和这个点指向光源的向量之间的夹角(据一个搞图象研究的网友说反射率是指入射光线和法线的夹角的余弦)。换句话说,这样你就可以更好感受到这些投影到点云上的颜色区域表示了什么。连续或者柔和过渡的区域将会以相近的颜色进行着色渲染!
[附:在OpenGL的图形学原理中,顶点的法向量就是垂直于该点的切平面的向量,我猜想Imageware的这个算法就是评估各点的法向量与这个点指向光源的向量之间的夹角,如果一些点的这个角度值在一个邻近的范围内,那么就给这些点染上相近的颜色]
.注意:确定你的\"aligned.imw\"被打开了 评估点云(To evaluate the data):
1. Select F1 to see a top view of your model and ungroup the entities. 选择F1,观察你的模型的顶视图(TOP),并解除你
以前所做的Create Group操作。[如果你前面所做的都正确,那么现在你摁下F1你就可以看到如下图所示的窗口:
2. 从工具条栏中找到Main,再找到Basic Display,然后选择 Fill Screen
,或者在视图的空区域中右击鼠标,找到
3. 提示: 要确定你的点云是在 gouraud shaded模式下显示的,这种模式在菜单中的路径为
Display|Point|Gouraud-Shaded
3. 在工具条中寻找路径Modify > Direction ,选择 Harmonize Polygon Normals ,在菜单中路径是
Modify|Direction|Harmonize Polygon Normals ,此功能用来调和多边形网格点云的法线方向的。 [我的个人理解由于点云由海量个多边形组成,每个小多边形都可以看作一个小平面,每个小平面都有一个方向,此功能就是把邻近的小平面进行整理一下,使它们形成一个比较连续的区域,这样可以更好的分析反射率] 4. 在菜单路径中寻找 Evaluate|Surface Flow|Cloud Reflectance 操作功能
5. Select a point approximately in the center of the scan data for the initial light location.在点云的中心部位近似地取一点作
为着光点。(就是找一个点,让光源朝这个点照过来)
6. 把“动态更新(Dynamic Update)”选项打开,这样就可以在视图中看到你所做的设定产生的结果了。
7. 在(偏转方向)offset direction指定Along Direction,就是指定一个固定的方向来进行投光,下面的那一步就是指定Z方
向为光的照射方向,这样你可以随旋转你的模型,而光源的位置和照射方向会随着世界坐标系的旋转而旋转。(这样可以固定物体表面的颜色域)
8. 设定direction为 Z.方向(详细解释请看第7步)
9. Set the light to offset 20mm in the positive direction of the model.设定光在模型的正方向上偏离20mm,(我的理解就是
让光源在Z的负方向上远离20mm,我观察到在拖动offset的滑动条时,有一条线沿着Z伸长缩短,我是由这个判断光源的所在的,大家试试看)
这个偏移距离的操作是为了控制光源所在的位置,它允许我们移动光源在模型的上面或下面放置,不能放在点云上!!!(这里用了上和下两个方向,因为咱们使用的是顶视图(TOP),所以要讲上下,,,我的方向感不太强,所以对于方向的细节问题比较重视。。嘿嘿。。。。。。) 10. 设定条纹(zebra band)的数量为5
这个操作允许你定义颜色图的重复次数,可以更详细地表达点云。。。(原理上也无非就是递进地多照几次,颜色进行叠加)
11. 把视图旋转一下,看看是不是点云表达地清楚了。.
提示:如果你愿意随着旋转操作变换色图,那么你可以在对话框里offset direction栏中选择Along View Vector。这允许你随着旋转更新光源的位置(其实就是你旋转的时候,光源也跟着围绕世界坐标系旋转了),然后你Apply,色图就被冻结了在停留的那个位置了。。如下图所示。。。。 12. 在菜单路径中寻找Display|Point|Remove Cloud Colors 操作,移除点云上的颜色表,因为下面还有一种评估点云的
操作,那就是传说中的点云曲率分析,西西。。。。。。。
View of scan data using the Reflectance command
View of evaluation data once rotated
其他的评估操作(Another evaluation option)
. 另一种观察点云形状特征的操作是点云(Cloud Curvature)曲率操作。这个操作能显示出高曲率和低曲率区域在哪个位置,这样就很容易分辨出高低曲率的区域,给特征抽取提供了充分的信息!!!(我使用过几次浙江大学开发的一个反求工程软件,它的界面很糟糕就不用说了,此处Imageware所具有的这一功能它就没有了。我很伤心中国没有自己特色三维CAD/CAM软件,也伤心没有一个像样的反求软件)
评估点云曲率(To evaluate the cloud curvature)
1. 从菜单路径中选择Evaluate|Curvature|Cloud Curvature,或在工具栏中找到Evaluate,然后选取
择
,选
2. 设定邻域尺寸( neighborhood distance)为 0.5mm.
3. 确认[“'Curvature Based'”coloring]着色功能被打开。[我的第11版无此选项,老版本是不是有这个选项???] 4. Apply 之后,如下图所示:(呵呵,,是不是比较简单,,,我一直在思考它们是怎样开发出来的,就这么简单的
一个功能,为什么就没有中国制造???)
特征提取(Extracting features)
上面我们试过了两种评估方式,最后都生成了一张色图来显示点云。我们可以基于这些由点云评估产生的颜色信息来提取
特征。
特征提取(To extract features):
1. 在菜单路径中找到 Construct|Feature Line|Color Based.(纳闷,为什么工具条中找不到) 2. 在需要构造边线的区域选择种子点
3. 确认动态更新 (Dynamic Update')被选择了
4. 指定使用十字花标记模式(又是十字花,俺好讨厌,UG中显示点也这样的,Imageware中的点还能改样式,UG中
干脆连改都不能改!!!),使用这种标记功能可以让你很容易地看见哪部分被选择接受提取特征了。
5. 把percentage growth滑动条拖到95%。这样你就可以在基于颜色信息包含更多一些的点了。百分比越高,数据就越
多地被包围进来。你拖动滑动条时,可以观看到所选区域的变动。在本例中,选择的区域呈紫色显示。
6. Apply.。然后这些点就被提取到一个与原点云分离的新点云中了,目的是为了使用提取出来的新点云来构造一个比较
合适的边线框。(fillet我翻译为边线框,应该翻译为圆角的,但在这儿,我总觉得该叫边线框。。。。)
7. 在菜单路径中找到Display|Point|Remove Cloud Colors. 隐藏所有的点云,然后移走颜色层,结果如下右图所示。
Color based extraction
Only the extracted data is visible
------- (这个是我做的)
组织数据(Organizing the data)--------为了更好的管理数据。
为了保持数据被组织起来(以便于管理和使用),我们推荐使用层作为管理机构。为了下面的工作中数据更便于使用,它允许你把数据迁移到不同的层中。(我感觉在这一功能上,Imageware比UG做的要好,它可以动态更新,也就是在层管理器中,你可以规定哪个层被显示,哪些实体被显示,视图区会对你做的选择发生响应,这样更便于数据的显示与否的调整,UG中做的有些死,非动态。把层管理器用好了,可以减少许多不必要的麻烦。缺憾就是层管理器的对话框做的太窄,每次我都要用鼠标把它拖宽。)
组织数据(To organize data):
1. 从工具条Main中找到Create Layer(输入“Feature Data”作为新层的层名,然后确认该层被激活(选择\"Activate New
Layer\") [在第
11版中层的操作都被集中到对话框中了,直接在对话框的条目中编辑各项数据,
以下各步操作皆为老版本做法。在这段的下面,我把新版本的做法也贴出来。]
2. 从Main工具条中选择Layers,找到Transfer Objects(迁移对象)功能 3. 把特征数据('ColorCld 2')转移到新建的层中。 4. Apply
5. 再把活动层设回“Scan”
6. Select Layer Settings from the Main > Layers toolbar to hide the layer \"Feature Data.\"从Main工具条找到Layers,选择
Layer Settings(层设置),把层\"Feature Data.\"隐藏。然后再把该层设定为不可操作(non-pickable)的,这样可以保证该层数据的安全性,不至于在下面的过程中遭到破坏。待到使用时,再把它们提出来。 7. 以文件名 \"Section3.imw\"存盘
第11版中关于层的管理工具的使用,如下:
1. 菜单路径Edit|Layer Manager,或在Main工具条中找到
新层,默认名是L2
,选择层管理器,可以调出下面这样的一个对话框。
2. 在下图所示位置右键鼠标,选择New layer,如下图(不好意思!把金山词霸的翻译框也抓了下来),就创建了一个
为了更好的管理数据,我们需要为新层起一个自己比较喜欢,便于记忆的名字。可以在新建的层L2的层名上右键鼠标,选择Rename,然后键入“feature Data”,在上图中,我已经把名字改完了。然后在Active栏中把feature Data激活为当前工作层。
3.scan层中的('ColorCld 2')的特征数据转移到feature Data层中最简洁的做法是:把scan层打开之后,在右面的框中左键鼠标选取“ColorCld 2”,直接拖到左面框中层feature Data上,转移就完成了。(第11版中,层的管理有了很好的改进,使操作更直观,简便了。许多时候,从一些小的地方能够看到软件开发者是比较体贴用户的习惯的,工程学中管这个叫人机界面的吧。。。可是从这一点上就暴露出国产软件的许多不足来,不仅仅是软件,许多东西没有考虑用户使用时的细节问题,这是不尊重用户的表现)
4:隐藏数据时,只需要在Show栏中把该层或者该层的实体名字前的选择框取消即可,相应的若要实现non-pickable,只需要把pick栏中相应层的选择框取消即可。
5:还有一个比较好玩的方式,就是摁住空格键,可以从视图中用鼠标左键直接把数据拖到某个层中,这样可以完成转移工作。
数据显示及特征提取的总结(Visualization and Extraction Best Practices)
点云评估和特征提取要在干净的点云上进行处理(这里所说的干净,就是去掉以前为了对齐点云而创建的一些辅助几何形)
使用点云反射率工具来观察点云中微小部位的变化(这个工具我现在还没觉得它的作用有多大!!!好象只是用来查看点云面的走势)
Use the evaluation tools to get to know your data prior to starting surface patch breakdown.使用点云评估(evaluation)工具来获取点云上各面的分布信息(即各面的近似区域)
使用层管理工具来组织你的数据(使它们便于管理,在一个大工程中里,数据的有序性是重要的,逆向工程也是一个工程,所以应该从工程学的角度来进行逆向。)
大有用处的多边形操作(Useful polygon operations)
在开始创建线框之前,需要讨论处理多边形的一些很有用的技巧。这里所说的多边形就是指表面数据。我们可以像对待实体solid [ 注:solid,而不是前面讲的那个实体(entity),我不是在表示我有多严谨,而是事实上许多的概念一开始一定要清晰。]一样偏移和截切它们,也可以把它们脱壳(注:shell。倒霉,为什么老碰上难翻译的词啊,我把这个翻译为脱壳,去皮,难道也可以翻成加壳?在软件破解领域中是把这个叫为壳的)执行布尔操作,这个操作为建立需要的截面线提供了可行性;也为创建一些工程处理必需的特征提供了可行性,比如蒙皮(注:packaging.,这东西也不知道怎么翻了,是蒙皮,还是封装?) [我还要那样说,许多东西不动手去做是不能体会的。现在我可以确定上面的我的翻译没有错,shell就是脱壳的意思,是对原点云进行偏移,就好象把一层壳给提出来一样!金蝉脱壳!嘿嘿。。]
模型偏移脱壳(Shelling the model)
注意:确定文件\"Section3.imw\"被打开(这样的“注意”出现许多次,可能读者并不太在意,写文档的人煞废苦心,因为这个工程不是很小,所以他一再的提示要保存文件,这也是从工程学的角度来说的,谁也不愿意把自己辛苦一上午的工作由于疏忽而浪费了)
在处理开始之前,要设定好合理的层,我们要再建立并激活一个叫做“Offset”的新层,然后把层“Scan”显示,并设为可操作的(pickalble),而把层“feature Data”设为不可见的。如果你做了如上的设定,层Scan(也就是点云)仍不可见,那么可以摁Ctrl+S,然后把点云数据在视图中调整好位置,以便于观察。 多边形网格点云的脱壳(To shell the polygon model):
(注意:在动手之前,应该先把初始点云的颜色层清除掉,清楚方式请到上面寻找,刚才讲过的,原文中没有这一提示)
1. 从Construct工具条中寻找Create Offset,选择 Polygon Mesh
Mesh.
,或从菜单路径中这么找 Construct|Offset|Polygon
2. 设定偏移距离为 -1.5mm. 这样可以在点云数据的里面创建一个壳。
3. 指定偏移类型(offset type)为壳模(Shell Model),然后Apply. (另外还有一个偏移类型叫offset model,不知它
是用来做什么的,我试了一下,这两种偏移类型产生的结果如下图所示:(左图为shell model类型;右图为offset model类型,谁知道它的用途,告诉俺,行吗?)
4. 菜单路径选择 Organize|Filter Layers|Show Active Only(老版本中的做法),只需把刚才偏移出来的壳在视图中显
示(只使用脱出来的壳来做截面线)。注意在壳体边缘有一些须状物 ,这是由于偏移操作前的多边形网格中的小法线不一致的导致的,一旦它们被移除了,这个壳子就足够用来创建我们需要的截面数据了。(第11版中,参照前面所述的层管理工具来设定各层的属性!!!!!!!) 5. 下一步就要去掉那些壳的边缘的须状物。 移除多边形,去掉须状物(To remove polygons):
1. 寻找菜单路径 Modify|Polygon Mesh|Repair Polygon Mesh|Remove Long Polygons(.那些须状物实际上就是许多长的
多边形,由于偏移时的误差什么的,把一些小多边形拉长了,估计我们看到的只是在边缘,在壳与原网格点云之间还有许多这样的须状物。)
2. .设定极限距离(distance threshold)为1.8mm,这样就定义了多边形最大的允许长度。我们之所以选择1.8mm这个值
是因为这个壳的厚度为1.5mm,而其他的多边形关联则很小,这个长度足以概括了。(这就是经验之谈了,,我说过的,没有多少人比EDS公司更会使用Imageware。能造出最好的画笔的人,画画肯定不会很差!)
3. Apply. 修整的结果会在对话框中产生报告,在本例中69个多边形被移除了。如下图所示。(我把极限距离误设为
1.5mm,结果1000多个多边形被移除了)
Long Polygons
Part once polygons were removed
到这儿,我可以轻轻喘口气了,反正我该喘口气了。下面就是做截面线,构线。点云的处理到此应该全部结束了!!!前面所做的一切工作都是为了创建截面线,然后是构线和做面了吧。我已经走完了第一步。那么下面的工作还有许多,可是我们有信心,对吗?今天已经是我做这个例子的第四天了,我感觉我是辛苦的。没有网络(我房间里的网路一直都不可以用),也没有其他的资料可以用,我现在很感谢金山公司的词霸,虽然它不太好用,但是却给了我莫大的帮助!(嘿嘿,我用的是盗版,但我精神上是支持金山的,佛在哪里?不是在庙堂之中,而是在心中!还是那句话,世界不要给一个学生设置太多的学习障碍,应该免费或打折)
现在我还是建议论坛里可以多组织一些材料出一本用imageware讲逆向工程的书,侧重于应用,更侧重于原理。这样的书才是不过时的书。
各位,其实我不是为了学习imageware而学习imageware的,我仅仅是想知道逆向工程该怎样做,imageware在逆向工程中的特色是什么。现在我基本上明白了一些,但这还远远不够,所以我很希望认真读过我写的这些东西的人给我帮助和鼓励。
最后希望各位精通UG,也精通imageware的人,能全面衡量一下UG和imageware的建模功能的异同点,告诉我,因为我不仅在这两个软件的使用上是新手,在机械产品设计上也是新手,虽然我是机械设计专业的学生,惭愧惭愧,有关现代的设计方法我们没有开过什么课,现在的本科读与不读其实都一样。我们还是传统的画法几何。。。。。。。。。。。。。
声明:我把这个例子做多少就翻译多少,现在做到这儿,基本上和原文档中所说的相符。也许我的说法有许多谬误,还望指正!
创建需要的截面(Creating necessary sections)
有多种方式可以用来截切多边形网格化后的点云,这些截切工具允许我们指定采样间隙。使用这些工具可以取得截面上的每个取样点。(关于取样间隙的设定,要考虑你反求产品的精度,前面有几处是讲该怎样保证精度的,可以借鉴。这个是经验之谈,我现在大四没毕业,呵呵,,没有经验的) 建立截面(To create cross sections):
1. 在Construct工具条中找到Create Cross Section,选择平行截面方式 Parallel Cross Section
Construct| Cross Section|Cloud Parallel
2. 指定是在一个多边形网格化的点云上创建截面的。(我的第11版中是指定method为polygon)
;或依照菜单路径
3. 设定截面的方位为X方向,起始点为X=0;(这里所讲的X方向,应该是这个截面的法向。另外这里的设定X方向
操作依然是老版本的做法,11版的做法是直接在视图中操作坐标系,我感觉不是太好用。有时候坐标系移不走。) 4. 设定截面数为1个,邻域大小为0.25
5. Apply. . 结果将会出现一个YZ平面的截面。 6.
[1](我介绍一下第11版的做法,大家应当有心理准备,很可能不太好用,也可能是我用的是盗版的缘故,更可能
是软件的严重的BUG。如下图所示:(打红圈的地方一定不要选,如果选了它,那么坐标系就被固定住了,只能旋转,无法改变其原点位置!!!为什么会这样?我宁愿把它归为软件的BUG问题!)一开始我想当然地就把它给选上了,我觉得它既然叫自动计算间隔(Auto Calculate)那么就该选上,但下一步调整截面坐标系时就做不动了。在这个地方颇让我费了不少时间。具体这个Auto Calculate功能有什么用处,请大家测试一下,我觉得是BUG。
[2]如下图左图所示,图中白色的四边形就是我们打算穿过点云的截面。
首先要让截面所处的坐标系与世界坐标系对齐。如下图右图所示,对齐方法就是使用左键鼠标选择各坐标轴,比如选择Z轴然后将Z location值设为0,这样Z轴的方向就和世界坐标系一样了。(注意:下图中所示的世
界坐标系是不正确的!!!!那只是每个实体的局部坐标系,这个概念我现在还是有点迷糊,做到该例3/4处,坐标问题就相当重要了。请先将就着看下去,后面我会讲坐标系该怎样调整。)
:
然后要将调整截面平行与世界坐标系的YZ面,此处的调整需要使用旋转点来旋转截面所在的坐标系。如下图中左图所示:红圈中是旋转点,可以鼠标单击它,会出来一个角度输入的框,可以输入你需要旋转的角度和旋转时捕捉的角度,或直接拖动坐标系旋转
最后把截面坐标系的原点挪到点云坐标系的原点。如下图中右图所示,在截面坐标系的原点处左键鼠标,然后在屏幕上的坐标输入小窗口中输入0,0,0
7. 把壳体隐藏起来,只保留截面截多边形网格之后形成的点云,使用F3把视图调整到左视图模式。(摁F3??为什
么我得摁F5才如下图那样显示??呵呵,这应该是原文档的错误。另外做了这许多步,一直都疏忽的一个问题就是没有记清楚每一步产生的数据的名称约定,现在可以记一下了,比如此处的截面点云就叫OffsetCld SectCld)
7. 重新显示壳体(OffsetCld),摁下F1,返回顶视图(TOP)。
8. 在Construct工具条中找到Create Cross Section ,选择Interactive Cross Section
Cross Section|Cloud Interactive
9. 指定在多边形网格点云上创建截面,然后指定采样间距为0.25
10. 在上面那个镂空的三角形的一侧的点云上用鼠标左键拾取一个点,然后在相反的方位上也拾取一个点。(此处英文
句子也让我费解了近一个小时,后来突然想起来该文档在前面曾经把这个模型凹进去的地方说成是用拇指的摁痕,才领会到这儿是在说三角形的镂空区!!!此处没有图示,我把我自己做的贴上。如下图
。或者寻找菜单路径Construct|
11. 。12. APPLY
13. 重复第10、11步,创建另外两条水平通过两个三角镂空区中心的截面,再创建一条水平通过一个拐弯到另一个拐弯
的截面。(原文档无图,下图是我做的,也不知道我的理解对不对,特别是那个从一个拐弯到另一个拐弯的截面,理解原文总是别扭)。(注意:在做水平或着垂直几何对象时,需要摁住Ctrl键,还有在做两条水平通过两个三角镂空区中心的截面时需要摁一下F1恢复到TOP视图;当做一个拐弯到另一个拐弯的截面时要摁下F3在左视图中做,而且这个截面要大致通过零件的中心。)
14. .隐藏壳体模型,然后旋转视图观察你的截面,应该出现如下图所示的截面。
.注意:你应该有5条截面通过这个点云:一条通过点云的中心(下图浅蓝色的),两条水平的通过三角镂空区(蓝色的),一条通过从一个拐角延伸到另一个拐角(下图中褐色的),最后一条是通过点云的中间(浅紫色的)
数据缩减(Reduce data)
当你对你作的截面感到满意之后,应使用 约束取样(Constrained Sampling)命令来去除截面上的冗余点。这个操作命令可以基于弦偏差(chordal deviation)来缩减一部分点,也允许你指定各点之间的最大跨距,保证你不会移除太多的点。这个操作有助于使边缘清晰。 点云取样(To sample the cloud):
1. 在菜单路径中寻找Modify|Data Reduction|ConstrainedSampling(老版本也许是这么找)----第11版中的路径为
Modify|Data Reduction|Chordal Deviation
2. 设定最大偏差(Max. Deviation )为 0.2mm 和最大跨距( Max. Span )为0.7mm
3. Apply. Notice that you have reduced the amount of data by 91%. That should be easily imported into any CAD system.你
可以注意到它的报告中说你的数据被缩减了91%,这样这些截面点云可以很容易地被任何一种CAD系统引入了。。。。。。(我的报告是缩减了92%,缩了这么多不会大伤元气吧。。。。)
4. 以 \"Section4.imw\"为文件名保存。。。然后我们该吃晚饭了吧。。。我自己下的面条。。。办公室里就我一个人,
楼道里没有灯,我出去打水都要默念imageware…..imageware….,原来imageware不仅可以做逆向工程,还可以辟邪的。。)
建立线框(Creating wireframe geometry)
注意:确认 \"Section4.imw\" 文件打开
在进行构线之前,需要合理地进行层设置。建立并激活一个名为“Wireframe”的新层,然后使”Scan”可见并可操作。 我们将要创建三种类型的线框,每一种都具有不同的建模用途。我们要建立的第一种类型是要分离出用来进行扫掠(loft)上表面的曲线。第二种类型是一个被用来定义外围侧面的真正的曲线框。第三种类型是几何约束形,是指构造一个可以起约束实体形位的几何形。。
创建可以定义上表面的曲线(Creating the curves to define the top surface)
让我们从顶面的曲线开始吧,它将被用来描述上表面。一定要记住,在建模的过程中,一定要让不必要的几何元素很容易被删除,而不是一直要等到建模完成之后。除此之外还要要使用层来管理数据,在层中创建各种类型的很容易被隐藏和显示的几何图形。(我的理解就是,他把处理过程结构化了,分块操作,化整为零。先处理上表面,然后再处理周围侧面,最后再处理底面。在每一步的处理中,使用层来管理数据,一旦自己需要表达的线框或曲面被表达出来之后,要及时的清理掉辅助图形)
圈选顶部点云(To circle select the top portion):
提示:推荐使用left视图来提取点云。这样不至于截到太多的点。. 1. Select Circle Select Points from the Modify > Trim toolbar.
2. 指定保留圈选区域的内部( Keep Inside )把外部清除掉,这样上表面的点云基本上就被提取出来了. (是不是imageware
没有点云合并的功能,这个功能浙江大学开发的那个有)
3. 使用鼠标左键来选取上表面点云的范围(我没有按原文档推荐的在左视图(F3键)中操作,我觉得那样无法进行操作,我
选择的是F2底视图,我试过选择TOP视图,结果老是出了范围,我想还是底视图(bottom)操作比较方便).[注意:这儿不是很好操作,可能要反复做几遍才能比较好的把上表面点云分离出来,我一开始做的时候,总是分离失败,可能也是软件的故障。我不得不启动了imageware 10,在第10版中就比较好做。最后我又在11版中做了一次,结果如下图所示,如果你也是做到第50次的时候才做出来,那么我想和你握握手!因为你和我一样笨!!!!] 4. 然后再Apply
4把“Scan”层隐藏[嘿嘿。。。是不是你一把Scan层隐藏起来,你的屏幕上就什么也没有了??那还不抓紧为你刚才分离出来的点云创建一个新层,我建了一个层叫“top wirefram”.[提醒一下,在这儿做的工作在后面用不到,
反正我就没有用到. 就当是练手了!!!!!!]
(这是原文档中他做的,比我的要好多了)
创建初始线(To create initial curves):
1. 从Construct工具条中找到Create Cross Section ,选择t Interactive Cross Section (文档作者老是那么详细令
人反感,都做到这儿了,还要提示该如何找到那个工具,可能洋人总是不爱记东西吧。。。)
2. 再做两个截面,水平通过三角镂空区域的中心。这两个截面所截的线能表现出模型上表面的最高处和最低处的特征
(应该在TOP视图下进行!!!,这里所讲的最高处和最低处也让我猜解了好大一会,没办法,人笨猪胖,自然现象,最后才认真的想起来,上表面不是有个部位象拇指摁下去的么?那个就是最底处,最高处就是最高的那儿了!!嘿嘿。) 3. Apply。。。。。
拟合曲线(To fit curves):
下一步我们就该拟合截面曲线了,但是我们现在还无法确定我们建造的曲线就能够接触到边线(fillet,谁会翻这个词,前面我翻过,但老觉得不合适)。把你的视图改到XZ面上(你管它F1,F2,F3….什么的,只要摁到XZ面就可以了,点云要是还没隐藏,那就快点藏起来,使用层管理工具)[我看到下面的图就有点傻了,,,上面那一部做的两个截面有意义吗????看下面的图样中的截面,绝对不是上面那步作的。在想想,在往前时专门做过截面的操作,那时做出了5条截面点云来。所以我觉得上面的做截面线,纯属多余吧!!!。。。。。。。。。。。]
1. 从Create工具条中找到Curve,选择 Arc w/3 Points
Arc w/3 Points
,(在11版中是在Create工具条中找到Arc/Cirle,再选择
,或菜单路径Create|Curve Primitive| Arc w/3 Points)
2. 选择“点在点云中“ (\"Point in Cloud\" )(此时工具条上会出现一组点捕捉工具,找找看) 3. 沿着截面,选择三个点,然后 Apply.
4. 重复做其他截面的曲线。在XZ视图上,看上去应如下左图所示的样子。右图是我做的。
校验对称性(To check symmetry):
右键曲线,而后选择Toggle Control Plot Visibility ,检查曲线控制画面。
控制区域显示这些曲线是非对称的,我们可以根据控制点分布不均来做出此判定。(至于为什么要求是对称曲线呢?这个应该很理所当然的,因为模型是对称的嘛。。。) 创建对称曲线(To create symmetric curves):
1. 在Create 工具条中找到Lines ,选择Infinite Line 2. 设定坐标X = 10, Y = 12, Z = 0 。然后 Apply.
,或菜单路径 Create|Construction Line|Infinite Line。在
TOP视图中,数据区域的外部创建一条竖直无限长的约束线 3. 选择 Modify|Orient|Mirror我们要 把直线镜像到另一侧 4. 在镜向对话框中这样设定
5.
6. 然后Apply.
7. 菜单路径选择 Modify|Extend.
8. 选择刚才做的两条圆弧,并确认\"Extend All Sides\" 是否选中了。
9. 指定连续性类型(continuity type )为Natural,然后延长每段弧,使用一个延伸10mm的值穿过过约束线。 10. Apply.
11. 在Modify工具条中找到Modify Curves,选择Snip Curve w/Curve
在TOP视图中进行该操作的!!!)
12. 使用鼠标左键在视图中指定是使用两条曲线修剪的,然后再选择两条待修剪的圆弧。 13. 选择一条无限长的约束线作为第一条修剪线,然后再选择二条。
14. Select to snip using the View Intersection and make sure that \"Keep Inner\" is checked. This will delete the pieces beyond the
snipping curves.选择使用交叉点方式进行修剪,并确认保留内部(\"Keep Inner\")复选框被选中,这样就可以删除掉修剪线之外的曲线段。
15. Apply. 旋转你的视图,看看是不是象下面左图显示的样子。(另外,上面所述的方式是老版本的做法,在第11版
,修剪圆弧,以约束线为界限。(确信你是
中应如下面右图所示那样设置对话框!!!!!!)
在辅助图形的基础上创建新圆弧(To create new arcs from the construction geometry)(construction:词霸上解释为结构,建筑,构造,我觉得这种construction geometry的作用是辅助创建圆弧的,所以还是翻为辅助吧)
上面的建立的圆弧仅仅是构造的的图形(应该是形状相近但不能为我们所用的图形),如果要你检查每条圆弧的终点,他们在Z方向是有些不同。现在我们将要使用上面做好的圆弧来创建新的圆弧。在摁下Apply按纽前,你应该确定圆弧上三个点的Z坐标值是相同的,这样它们就是相对于中心线对称的了。(唉,,怎么理解起来那么费劲啊,为什么是三个点的Z坐标相同呢?怎么可能是相同啊,两个端点Z坐标相同倒也好理解,第三个点的Z坐标也相同,那不就成直线了???先看看下面都讲了什么,然后再考虑这个问题吧)
1. 在工具条上找这个路径Create > Arc/Circle ->Arc w/3 Points 。 (倒。。足够让人生气的!这不正是11版的
做法!那为什么前面关于此功能的叙述还是老版本的方式?真受不了修改文档的这个老眼昏花的洋鬼子了) 2. 使用曲线终点(Curve Endpoint)捕捉工具拾取第一条圆弧左端点。(捕捉工具系列在工具条上找找看) 3. .第二个点,使用曲线中点的捕捉方式,拾取。
4. 第三个点使用使用曲线终点(Curve Endpoint)捕捉工具拾取。(11版中叫Curve End,哎呀,如果你和我一样笨,
那么建议你把那个捕捉系列的名称都看一下,将来会很经常用到它们的,下面如果再有用到这些捕捉工具的,我就不赘述了)
5. 在Apply之前,确认三点的Z值是相同的,如果不同,那么在每个点Z坐标处重新键入一个值,使它们相同。(乖
乖,这不是霸王硬上弓漫?我试过了,作者是骗人的!!应该是两个端点的Z坐标相同,按道理说要一段要关于Z轴对称,怎么可以三个点的Z坐标相同???我把我的图贴出来,我不相信是我做错了!应该是Y值相等嘛。。下
图是我做的:)
6. 对另一条圆弧重复以上操作!
7. 把不要的辅助构造图形删除掉,避免在下面的工作中犯迷糊!!!!!!!!! (我的建议:新手不要随便乱删,
最好是建立一个收集垃圾的层,把自己觉得不需要的几何元素都移到这个收集垃圾的层中,以后万一再用,就可以恢复了!)
重新进行曲线参数化To reparameterize curves:
我们刚刚建立的圆弧是理论上的形体。理论形体是被用来表示真实形状的,要尽量消除掉这种自由性质。要去观察一段曲线是否是理论曲线,需要使用工具集中实体信息工具来查看。(下面的内容我还没有看,但我觉得他说的很有道理,因为我们的建模活动不是在绘画,不是在搞艺术,我们要保证建好的模型可以很容易地在CAM系统中转化成NC代码,可以充分利用现代数控机床的精度来实现产品的制造,废话不多说了,能读到我整理的这份文档的人肯定有好多都是具有许多年实践经验的人,我还未出茅庐呢。即使出了茅庐,我也不是诸葛孔明。。。西西。。)
1. 工具条路径Modify > Restructure ->Reparameterize Curve 2. 指定要保留现有的 (Retain Existing.)。
3. 选择两条曲线,然后Apply,这样两条曲线就被参数化了 (所谓的参数化,就是一条曲线或一个曲面可以使用已经
存在的数学语言进行描述,在Imageware中,这种数学语言就是NURBS曲线和曲面)
Note: Delete the two vertical curves or move them to your construction geometry layer. This type of data always seems to be needed again, so we suggest that you move it to the layer.注意:删除两条垂直垂直线,或者把它们移到你的辅助构造层中。这样,你的数据就具备了可恢复性(倒。。。。在前面我还提过这事呢,呵呵,原来文档的作者满具爱心的。 其实我们用计算机来搞设计,也算是计算机工作者了,做一名合格的计算机工作者必须具有的素质就是“备份”。事事都要有个副本。这样老做备份,也等于是浪费生命,100年,有1/10的时间都用来备份了,不能不说是一种悲哀。) 复制曲线(To copy the curves):
下一步就是把上面完成的圆弧做一个副本。把它们在Y方向上移动,越过模型的末端。
工具条路径Modify > Orient -> Translate Objects ,或菜单路径 Modify|Orient|Translate.
1. (原文档在此处说的过为简略,我把我做的过程贴一下,在这儿我没有去看第10版是如何做的,也可能和11版
是一样的做法。下图是对话框的设定。
2.
提示: 一定要使用 Copy/Model 操作 ,很容易看到操作结果. 3. 然后摁下Model ,预览平移结果,然后 Apply
4. 再对第二条圆弧进行类似操作,唯一不同就是Distance的值应设为8.0mm
做完之后,别忘了再整理一下你的层!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 到这儿,顶面的线框构建完毕,下一步就是进行扫掠形成上表面了!!!!!!!!
创建上表面(Creating the top surface)
下一步我们要动真格的了,要建立上表面。首先要建立一个名字叫“Surfaces”的新层。然后在X=0处做一个截面,再把点云隐藏,只显示刚做好的截面。在扫掠面(lofting)完成之后,为了显现曲面与截面的偏差,我们需要建立一个通过扫掠面的截面(如果此处一时不能明白,那么就往下看,带着问题来做问题,是好事情!!!)
创建扫掠面(To create the loft surface): (我不知道loft是不是可以翻译为扫掠,我是看了浙江大学的那个软件上有个扫掠面的功能,而且它的图标和这里的图标一样,所以我就认为是扫掠面了)
1. 工具条路径Construct > Create Surface-> Loft Curves
标中选择Loft Curves
,或者使用热键Ctrl + Shift + LMB,在弹出的浮动图
2. 用鼠标左键在视图上选择前面做好的那四条圆弧 (记住,要顺次选取,可以试试,不试怎么知道?)
3. 然后Apply. 曲面在视图上被显示出来,是红色的边框。.(菜单路径Display|surface|shaded可以着色的,前面做了这么多工作
就一下子了,觉得很不值。许多事情都这样子,也许我在做这个练习,并翻译这个文档所做的这么多努力,看得人只一两个档的人有所获,至少是提供了一种学习的方式。)
4. 为了观察扫掠面与截面的偏差,我们要创建一个通过扫掠面的截面,在工具条路径Construct > Create Cross Section
-> Surface Cross Section
,或者使用热键Ctrl + Shift + RMB ,在弹出的图标中选择Surface Cross Section
)
了,而我一边做,一边翻译,做到这儿至少也用了30多个小时了。所以我很希望我付出的努力,不仅能让我有所获,也能
(此处不知作者又在骗人,还是原来老版本是这么做的,在第11版中,直接在曲面上右键鼠标之后选择是指所做截面的法线!!!!!,另外别忘了这里只需要一个截面,所以把Section的数量定为1个) 6. Apply 。创建了一个穿过扫掠面的截面,如下图。
5. 指定在X=0的点处做平行截面(又一处明显的说法错误,对于面来说使用法线来定义的,X=0不是指一个点,而
修整曲面(To modify the surface):
一旦曲面被创建完毕,曲面两端圆弧在Z坐标方向上需要修整。因为扫掠面和原始扫掠线是有关联性的,我们可以通过修改初始扫掠线并且观察实时更新的扫掠面和截面。
1. 在要修整的曲线上右键鼠标,选择Edit Curve .
2. 指定在XYZ坐标系中修改,并且在锁定控制点移动方向为Z方向。
3. 在每一条端部曲线(就是最外层的那两条圆弧)上可以选择每一个控制点来进行曲线修改。
4. 移动控制点,直到截面显得整齐为止。(在此处,文档说的很含糊。我是把扫掠面上的截面线调整,让它与原点云
的截面线吻合。因为是实时更新,所以很方便。) 5. 对另一条曲线以此种方式操作。最后如下图所示。
6. 把当前工作层改为\"Wireframe\"层,然后把“Surface”层设为不可见。在wireframe层中,删掉不再需要的数据,比如
截面什么的,一定要保持你的文件的数据结构合理(因为到此为止,已经把上表面做出来了,在自己觉得满意的情况下,前面所做的创建上表面相关的图形都可以删除了) 7. 以文件名 \"Section5-1.imw\"存盘。
8. 下一步,我们要创建这个零件模型的侧面了。
(创建零件模型的侧面线框)Creating the wireframe for the sides of the part
.注意:确认文件\"Section5-1.imw\"被打开,然后再把文件section4.imw导入视窗中来。(这次有点奇怪,居然打开两个文件,为什么?往下看看吧。至此为止,好像前面的一些处理过程中做了几个基本上没有用处的处理,比如前面曲率分析时提取的特征,和后来的提取上表面的点云,然后又对这块点云做截面!也许是有用,只是还没用上。这里所说的文件section4.imw就是前面做完点云脱壳之后,做截面的那步所存的文件)
我们将要创建一些定义零件模型侧表面的曲线。一定要让“Scan”层可见,并可操作,还要把Wireframe设为当前工作层。我们想创建的第一个截面要在倒圆面(fillet)的偏下部位,为了更好地观察,我们还要使用前面使用过的曲率分析工具,采用默认参数。摁F3键显示YZ视图,然后你应该清晰地看到倒圆面结束线和模型侧面的起始线。(fillet在前面我曾翻译为边界,看来那种说法不对,应该译做倒圆面) To construct a cross section:
只显示原始多边形网格化的点云(.颜色层可能没有了,再使用一次曲率分析,如下所示评估点云曲率(To evaluate the cloud curvature))
从菜单路径中选择Evaluate|Curvature|Cloud Curvature,或在工具栏中找到Evaluate,然后选取
设定邻域尺寸( neighborhood distance)为 0.5mm.
确认[“'Curvature Based'”coloring]着色功能被打开。[我的第11版无此选项,老版本是不是有这个选项???] Apply 之后,如下图所示:
,选择
1. 当颜色区域出现之后,则菜单路径选择 Construct|Cross Section|Cloud Interactive. 2. 指定要在多边形网格化的点云上创建截面,然后设置截面略低于倒圆区域(Z值大约是10.7) 3. Apply. 如下图所示。
5. 把点云颜色层移除,然后隐藏Scan层。
6. 热键 Ctrl + Y 激活并显示当前的活动层。(这个俺没试,估计也中看不中用,还不如直接操作层管理器) 确定过渡点(To establish the transition point):
我们要在侧面和倒圆面见创建过渡点。在本例中,它是一个很严格的点,要定义一条水平的无限标线来限定这个点的位置。为了真切的看清过渡位置,推荐使用Non-Proportional Zoom视图模式,这样通过视觉上的数据压缩就创建了一个比例较小的视图,它有助于看清小的过渡区,也就是长跨距的过渡区的具体而微。
1. F1 使用TOP视图模式。你应该只让截面和四条剪断线显示在屏幕上。(GOD!,我差点就把那四条圆弧删了,但
是想了想还是建了一个回收层,现在恰好用上了,把四条线恢复到原来的层中去) 2. 在菜单路径上选择Create|Construction Line|Infinite Line.
注意:当你正在构建辅助曲线时,你应该保证它的位置尽量的中正,要以零件模型比较规整的面为基准,这样在将来有助于建立连续性。(做到此处,我有点失去耐心了,总感觉文档制作者的叙述有些不成章法,在每一步过程前的综述部分有点儿散乱,并不能让读者明白这一步操作的目的,这种综述就不再有意义了。当然,也可能是因为我英文不好,不能把握他的意思。)
3. 设定 坐标 X = 0 ,然后 Apply. 底下的那条也如此操作。
4. 菜单路径选择View|Zoom|Non- Proportional.
5. 想看哪儿,就用鼠标在那儿拖出一个观察框,然后就放大了。
6. F1回到顶视图模式(做倒这儿,我有点乱了,感觉文档的制作者有点不成章法,完全丧失了一开始那样严谨的作风。
没有办法,我只能凭借他的图示,再加上一些直觉继续做下去,刚才在做无限长的那两条辅助线时,我只是大体的做了上去,他说的设定坐标X=0,老觉得那是废话,你设定了X=0有什么作用呢?毕竟Y,Z的值还是要自己确定的,我有点讨厌作者的说法了,要么就说清楚,要么干脆不说。我可以肯定直到这儿,我的翻译不会出大的错误,但再往下就不敢说了。做到此处,好象能明白作者想要干什么了,也好象知道他说的过渡点是在哪儿了,我明白只要再继续读下去并做下去总是可以明白这步操作要做什么。但我担心读我的文档的人欠缺耐心,我还是把现在我理解的东西贴一张图出来,这张图仅仅是我的一个猜测,至于下面究竟是不是这样,再往下看一看,先悬着。下图::)
7.
形成曲线(To shape the curves):
1. 工具条路径Create > Curve Features 3D B-Spline
线之间B样条曲线
,或菜单路径 Create|3D Curve|3D B-Spline 创建在两条辅助
2. 设定次数为3, 形成一条带有一个内部控制点的曲线,这样做的好处是不再引入其他变形因素(我们只需要使用这一
个内部点来控制曲线的形状???我的曲线曲面理论还没有开始正式进入学习,所以不是很明白。请多多指教。) 3. 使用'Slide on Point'交互功能是创建操作更容易。仅仅拾取两个点,确定这两个点要穿过两条辅助线(在第11版中,
我只能找到“点在点云中”的捕捉工具。所谓的要穿过辅助线,是指选的这两个点必须在两条辅助线所夹区域的外部,这样下一步就可以使用辅助线作为修剪工具对创建的B样条曲线进行修剪了!!!) 4. 对另一边重复以上操作。
5. 工具条路径Modify > Modify Curves -Snip Curve w/Curve
选择
。
或 热键Ctrl + Shift + MMB,在弹出的浮动图标中
6. 此处修剪操作略,因为前面有讲。
7. Apply 。两条B样条曲线被辅助线修剪完毕。(我还是不放心,建议你回头翻翻,修剪是怎样操作的!!!否则你
就打开修剪对话框多试试,要熟悉它,要熟悉这个例子中所讲的每一个功能!欲善其事,先利其器!!我之所以选择这个示例文档,就是因为它比较概括的讲了imageware中常用工具的用法和做逆向工程的一般步骤。如果你是新手,就别责怪我罗嗦,因为从一开始到现在,我犯的许多错误都是由于没注意一些细节上的提示造成的,所以我做的不是一遍,而是好多遍,你想不到这几天我犯了多少错误,修改了多少遍。另外最好要把英语这门工具掌握好,可能单词你都认识了,但是一个完整的句子你要理解好长时间。我现在才发现大二时我的英语四级是瞎蒙了67分。我总以为英语没用处,可现在需要查询好多英文资料,在某些领域中,中文资料少的可怜!我才知道不是什么东西没有用处,而是没到使用它的时候!!!废话多多,因为我累了,想休息一下,,,嘿嘿。。。。。。。。。。。。。。。。。。。。。。。。。) 8. 菜单路径选择View|Zoom|Non-Proportional 来比较以下点云上的曲线,You will notice that the cloud is slightly
curved. (这句话很好翻译,可译为“你会注意到点云有些弯曲”)[可事实上这句话狗屁不通!!!通过实际操作之后,你就会明白它要说的意思是 上一步所形成的B样条曲线与截面点云是有偏差的,我把图象放大之后,就这样了,如下图:
9. 我们做逆向最讲究的一件事情就是要把现实原型在计算机中把它精确地表达出来,完成一个模型,所以从上图中看
到我们做的曲线与截面点云有偏差,虽然这偏差很小,但是我们也要本着精确的原则把它们吻合起来,或者是尽力的吻合!!!所以要右键刚才所建B样条曲线,选择Edit Curve
.。
10. 你爱怎么编辑都随便,只要让它和点云吻合,我完成之后做到下图的样子,可能不是很精确,应该是有一个工具来
分析精确度的,但我不打算在这儿纠缠,我仅仅是在学习imageware的使用。(如知道该分析工具的,愿意告诉我,我就很感谢!!!!!!)
11.以文件名 \"Section5-2.imw\"存盘。(直到这儿,我也不明白为什么此处的操作一开始的时候要把两个文件都打开!!!!只把Section5-1.imw打开不也可以么??呵呵,我能想到的原因就是文档作者在做这个例子的时候很可能把section4.imw文件中的数据误删了一部分!!!不得不再把它们重新导入吧!!个人猜测,仅供参考。555555555555555~~~~~~~~~~~)
创建模型两端的过渡曲线(Creating the transition curves to define each end)
[唉,我也不知道怎样译才能更明白,说白了,就是创建零件模型两头类似圆弧的曲线!!!写文章的人一旦绞尽脑汁遣词作句,那么就是读者最大的不幸!!!]
.现在我们已经完成侧面部分的曲线。下一步该创建就围绕零件模型端部的过渡曲线了。我们要先构建下面的线(原文:We are going to build the lower wireframe so that we are working with symmetry about the X centerline,这里的lower wireframe我不知道该怎么翻!!翻为下面的线肯定是不妥当!!)然后再使用以X轴为中心线对称过去。这样可以节省许多额外的工作,也能保证模型的均衡性。(这里俺就不多说了,反正做任何事情都是尽量简单化,尽量要采用效率高,质量好的方式来做就是了。)
确认Section5-2.imw被打开
创建每一端上部的过渡线(To create upper transition curves for each end):(!生气,作者的方向感怎么那么强啊,上部是在哪啊?我真想把他揪过来问一问!!!只有一端能称得上是上部!!!)
1. 把有关上表面的曲线都隐藏。
2. 把辅助线移到Construction 层,然后把Wireframe 激活。
3. 菜单路径中选择 Measure|Location|Point. 拾取一个顶部点云的中心点记下它的Y和Z坐标。 (这么做,不准确,
如果要追求准确的话,应当依然使用辅助线来修剪!!!) 4. 菜单路径选择Create|Curve Primitive |Line.
5. 设定起始点start point t为X = 0 然后输入第三步中记下的Y和 Z值。 6. 设定终点end point 为X = -5 ,然后输入第三步中记下的Y和 Z值。
7. Apply. 对第二条线也这么干。这两条线将被用来确定与中心线相接触(相切)。.
在弯角部位创建过渡曲线To create curves that transition around corners:
1. 工具条路径 Create > Curve Features 3D B-Spline ,,或菜单Create|3D Curve|3D B-Spline..
2. 设定次数为4,创建一条4次的曲线,会有一个内部节点。如果你使用的是5次B样条曲线,那么将会是single span
(不知道这个是什么,另外4次B样条内部应该有两个节点吧。。。。。。。。。。。。) 3. 关于创建带有约束的B样条曲线的做法:在设置好样条曲线的次数之后,按下图所示操作
Apply之后,再对下面那条过渡曲线重复以上操作。然后就如下图所示的样子。
修正过渡曲线(To modify the transition curves)
为了拥有一个自由的控制点来定义形状,曲线的次数必须再提高。如果你使用4次B样条曲线,你的过渡曲线将会拥有一个内部节点(怎么还是一个啊,明明是两个的嘛)。如果提高该曲线的次数,那么我们就可以拥有更多的节点了。
1. 在曲线上右键鼠标选择 Edit Curve .
2. .编辑曲线的控制点,让它与截面点云的形状吻合。可能你不能够让曲线和截面点云很精确地吻合,这是因为我们创
建的样条的次数不是很高,控制点数少,只要保证连续性,并且自己觉得满意就可以了(天地不全,万物皆然,非人力所能为也。)
3. 我们要把两段圆弧的次数提到6次,让内部的节点再多些。 菜单路径找倒Modify | Parameterization | Redistribute
Curve Knots. 这样能够逼近曲线,并且还能保证曲线原有的连续性和形状。
4. .控制这些节点来编辑曲线,再次让它们与截面点云吻合到最佳状态,当移动这些节点时,别忘记了要在XY面内操
作。
5. 保存文件为 \"Section5-3.imw\"。最后结果如下图所示。(在这里我觉得用不着提取曲线的阶次,每段曲线内部有两个
节点足够用的了,作者好象对曲线曲面的理论也不太熟悉,他连曲线有几个内部节点都不清楚吧。。。呵呵。。。。说着玩!!!严肃点,但是否要进行提阶次全看你对一开始线与点云的吻合结果满不满意了。。。。)
创建中线截面和曲线(Creating the centerline section and curves)
我们要做一个中线截面!!!把你的Scan层设为可视和可操作。(我想起来前面的有一个悬着的疑问,现在清楚了,作者要做出一半的图形,然后再镜像操作,只是他在前面的说法有问题,至少对我们中国人来说那种说法不可理喻,特别象我这样英语不好的中国人!!!!!)
注意:确认文件 \"Section5-3.imw\" 被打开。 创建中心线To create the centerline:
1. Construct > Create Cross Section- Parallel Cross Section
2. 设定截面穿过多边形网格化的点云,然后选择点云\"OriginalScan2\"(我的已经叫 Original Scan5了)。指定截
面垂直X轴,就是X=0;(别让我呐喊,别让我哭,别让我的眼睛为你留住。乱套了,,,看来写这份文档的人不是一个人,前面已经做好了这里所说的截面了,他又重新做了一遍,精神可嘉,可我却累坏了。我才不按他说的做呢。我用前面做好的老数据。) 3. Apply.
4. 然后再把\"Scan\" 层设为不可见和不可操作。(那么现在哪个是活动层???文档中也没有说,应该是wireFrame 层)
5. 工具条Create > Curve Features -3D B-Spline 6. 设定次数(order)为3
,或者菜单 Create|3D Curve|3D B-Spline
7. 指定要创建一条(与截面点云)重合的曲线,这样可以确定曲线总是和截面接触的。。。(俺不知道这样翻译好懂
不好懂,,反正俺透明白了)
8. 以 “点在点云中”(Point in Cloud)的捕捉工具来拾取 截面点云上的点。 9. Apply. 对另一端曲线也如此做。
11. 右键曲线Edit Curve .,编辑曲线
12. .尽量让曲线和截面点云吻合。记住仅仅是在当前平面方位中移动点(就是让你别乱转视图) .提示:在修改每条曲线时,要放大一下,这样更容易看!
13. 菜单路径 Modify|Extend.
14. 选择前面所建的一条B样条曲线的端点 15. 设置连续性为Natural.
16. 指定把曲线拓宽10mm, 然后Apply 。另一条曲线也如是操作。 17. .工具条路径Create > Lines- Infinite Line 17. 设为水平线,在XY面上,Z=0;然后Apply。 18. 工具条路径Modify > Modify---> Snip Curve w/Curve 19. 使用刚才所建的水平无限长的辅助线作为修剪工具。
20. 设定修剪类型为视图交互(View Intersection),并且保留所选部分。 21. Apply. [这步操作是为了把两条曲线的下部修齐]
,或热键 Ctrl + Shift + MMB.选择
。
创建无限长直线,或菜单路径Create|Construction Line|Infinite Line
22. 以文件名Section5-4.imw.存盘。结果如下图所示。
我终于发现,我的坐标系和他的有出入了。我的那条水平无限长的辅助线是大体上描出来的!!!!!!!!!!! 我没有办法,,,下面的步骤只能是自己走一下看看,是不是能走得通!!!!!不然没法接着往下做了…………(我一时想不通,他的坐标系是怎么弄的?之前一直没怎么在意!!!!!)
我决定,重新选择一种方式,来矫正我的做法。。。。。。。。。。前面的(创建中线截面和曲线)
仅供参考。
另外,这几天,眼睛一看电脑屏幕,就疼起来。。。。,我得调节一下,这两天可能就不再有新的东西翻译出来,,,请原谅。。快过年了,祝大家新年快乐!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我要哭了,,的确是做错了,在这儿错了。。。摁下CTRL键,点这个连接,回头看一看吧。(Modifying the alignment修改对齐。)
幸好,不是没有补救的办法,只需要再次调整一下世界坐标系。使用信息工具得到点云的Z轴最小值,然后在那个位置就再创建一个坐标系就可以了。。。 这样肯定能行,,眼睛疼,先不做了。。。。。。。。。。。。
来吧,我们来学习调整坐标系,这种方式是我自己摸索的,也不知道规不规范!! 全部过程如下面一系列图片所示:
到这里,坐标系重建的工作就完成了,下面的处理就可以正常了。
从昨天开始正式学习曲线曲面的原理,所以不能用太多的时间来把这个例子做详细的翻译,请大家原谅。我相信如果前面的工作都做好了,那么下面的过程就很简单了。所以我一边把最后的过程做完,文档可能就不再象前面那么罗嗦了。。。。。我感觉最复杂的就是点云的处理和构线。。。基本上线构好了,面就呼之欲出了吧。。。。。。。。。。。。。。。。。
创建侧面线和面(Creating the wireframe and surface for the sides)
我们现在要创建侧面的底部曲线。我们知道这条曲线应该建立在Z=0的平面上,然后就有了一个草图了。我们将在Wireframe层来做,但也要确认Scan层被设为可视的和可操作的。 确认Section5-4.imw被打开。
创建定义曲线(To create the defining curve): [所谓定义曲线,也就是辅助线]
1. 工具条Construct > Create Cross Section -Parallel Cross Section
Parallel. 2. 选择点云。
3. 指定Y为截面法线。
4. 指定在侧面比较平直的曲线的两端点和中点做三个截面。 5. Apply. 如下图所示。
,或菜单路径 Construct|Cross Section|Cloud
6. 工具条路径Modify > Orient --Translate Object
动该曲线
7. 移到截面底端附近。 8. Apply.
,,或菜单 Modify|Orient|Translate ,在Z的负方向上拷贝移
创建曲面(To establish the surface form):
我们现在需要确定将要创建哪一种曲面:是圆弧面,还是样条面?第一种方式要使用Arc w/3 Points 命令创建一段圆弧来检验。点云侧面有些像墙一样的面上的半径可以给你一些信息。如果创建的圆弧比较精确的吻合点云,我们就应该把侧面定义为圆弧面。需要检验的点云部位如下图所示。检验完毕后,表明三个点基本上是在半径为150mm的圆弧上。因此我们就使用曲线间圆角半径过渡(Fillet Radius Between Curves)功能在两条曲线之间以圆弧半径定义,从而创建一个曲面
1. 切换活动层中 \"Surfaces\".
2. 菜单路径 Construct|Fillet|Radius Between Curves.
3. .选择顶部曲线作为第一条范围曲线,选择底部曲线为第二条范围曲线 4. 以150mm为半径,创建一个 Constant 型的面 。
5. 指定平行性Parallel (X,Y,Z) as the section type ,设定方向为Y.。 提示:如果的面的法向是错误的,那么就选用对话框左下的Flip。 6. 设定边缘线次数为7,圆弧次数为3。 7. Apply ,侧面墙状面创建完毕。
8. 让 \"Surfaces\"层可视,看看结果是怎样的。。。应该如下图所示。
面的修整To modify the surface:
看看刚才建好的面,很明显,底下的线位置不正。。(到这儿,你怎么也该有点经验了,每建好一条线或一个面时,都要进行修整!!!!!只要能完成工作任务,各种手段都可以,反正最终是一个比较好的模型出现就可以了吧。。。——但是我的11版老是死。。。我先不做,我先把下面的内容都翻译出来。新手同志,假如你一步一步做到这儿,下面的内容就很容易了。。。。。。。。。。。。。。。)
1. 菜单Modify|Shape Control|Curve Planarize. 2. 把底部曲线固定在Z=0的面内。 3. 右击底面的线,选择 Edit Curve
.
4. 在X方向上移动底端曲线的控制点。直到曲面边界和截面线吻合。(因为曲线和刚才建立的曲面已经具有关联性了,
所以可以通过曲线来控制所建的曲面)
6. 菜单路径 Construct|Cross Section|Surface. ,以Y为法向,创建一个曲面截面来检查侧面的偏差。 这样可以让你
很清楚地看到侧面形状在中心的改变,但是半径保持不变。
7. 如果底部曲线不能很容易被修改为合适的形状,可以从工具条Modify > Restructure找到 Redistribute Curve Knots
,或菜单Modify|Parameterization|Redistribute Curve Knots.
8. 把曲线的次数设为7,样条数量为1 9. Apply. 10. 右键Edit curve
.
11. 在X方向上移动中心点,直到曲面截面和点云截面对齐了。
12. 以文件名Section5-5.imw.\"存盘
13. 移走显示区域(Ctrl + K) ,还要把工作层设为 \"Wireframe.\" 14. 删除你不再需要的几何体,比如刚才所建截面什么的!!!!!!
完成线框(Completing the wireframe)
.\"我们将要在下一步操作中创建剩余的线,完成整个线框的构件。我们将要重复前面所讲的创建两端的过渡曲线(Creating the transition curves to define each end)操作。完成之后,以文件名Section5-6.imw存盘。(同志们,胜利在望了!!!!我们好辛苦,我们好不容易一点一点走到了这儿,几天了?有6天了吧!!!!我记得我是从腊月24那天开始翻译的。努力,再努力!!!)
注意:确认section5-5.imw是打开的。
创建过渡曲线(To create the lower transition curves):
1. 创建于中心截线相接切的直线。(别忘了是在TOP视图中来做!,建议翻翻前面,看看是怎么做的,就算复习了)
2.
3. 创建过渡曲线.(阶次为4) 4. 使用控制点编辑修整曲线形状 5. 提高曲线阶次,增加控制节点。
6. 最后修正曲线(.注意:此处的修正曲线不再有截面点云作为参考了,只能根据上部曲线的外形进行调整!!!!,
最后如下图所示。)
7. 以文件名Section5-6.imw存盘。 靠,我多此一举,原来下面有提示了
注意: 修正底部曲线理想结果是把它之上的控制点于顶部曲线的控制点相似对齐,如下图所示。(请各位好好比较一下上线和底线的控制点的位置,当然此处我们是为了做这个例子。在实际工作中,我们就需要参考实体的外形来进行操作的吧。)
Lower transition curves Three surface sections
Top
创建和修整过渡曲面片体(Create and modify the surface patches)
这一步,我们将很简单的在过渡区域中创建两个曲面,从Y轴的负方向一侧开始。我们已经花费了许多时间来校准上部和底部的曲线了,但是我们还是不能够看到它们之间的形状关系。一旦过渡曲面创建完毕,我们就可以看到它们之间的联系,还要对他们进行修整。(精益求精,我想它这里所说的再修整工作还可以把点云作为参照物吧) 注意:确定Section5-6.imw 文件被打开。
完成剩余表面(To complete the surface)(:倒,,我怎么感觉文档作者和咱们一样兴奋,他下面的文本颜色都是加重的!!!!!)
1. 设定Surfaces 层可视,可操作。(我承认,我的层管理很乱,我对我所建的每一条曲线和每一个面都熟而又熟了,
因为几乎每一条曲线都是做了好几次才正确做出来。但即使是这样,也要进行层管理,因为这是做工程必须具备的素质,而不是形式问题,因为一个大工程不可能是你一个人在做,你应该别人理解你所做的事情。)
2. 显示所有的面和曲线,把前面所创建的圆弧曲面上的两条边界线隐藏。(这么做的原因应该是让画面清晰,不至于
把线选错了).
3. 工具条路径 Construct > Create Surface -Surface by Boundary
Boundary.
4. 选择曲面的四条边界,要顺时针方向选取。(至于逆时针可不可以,自己试试)。
5. 设定边界连续性为Tangent ,曲线见的连续性为位置连续(Position )(曲线曲面理论上的连续性有三种,最低级
的是位置连续,然后就是一阶可导,相切连续。然后就是二阶可导,为曲率联系。。。还是很久以前读过一点图形学的书,忘的差不多了。可能说的不正确,包涵!!!!)
6. 设定边界交接公差为.05(我尽量忠实原文,但这一处应该是0.05吧),这样就可以创建基于边界线并与其他曲面具
有连续性的曲面了。
7. 注意:由于曲面的两侧边线是前面所建的圆弧面的边线,所以它是三次的样条线。。。。。。。。创建结果应如下
图所示。
,或菜单路径 Construct|Surface|Surface by
7. 如果曲面上的控制点拘束成一团或者相距太远,你可以通过编辑曲线控制点的方法来调整曲面。 8. 在Y正方向一侧重复以上操作,创建另一端的过渡面,然后再由控制点调整。 9. 把你的文件保存为Section5-7.imw.最终结果应如下图所示。
眼睛瞅屏幕太久,又疼了。。。,我的显示器要是液晶的多好!!!!!!!
延伸并修整侧面(Extending and modifying the side surfaces)
现在三个侧表面都创建完毕,我们要镜像操作。然后再删除三个曲面之间的关联,然后把它们向上延伸。我们不得不在将要创建的倒圆面中操作了。。。。 注意:确认 Section5-7.imw是打开的。 延伸曲面(To extend the surfaces):
1. 工具条路径Modify > Modify Curve Delete Constraint
清除三个面之间的关联。。。。
,或菜单路径 Modify|Continuity|Delete Constraints.先
2. 选择三个曲面,然后摁Delete。(注意,不要把曲面包含的线删掉了!!!) 3. 工具条路径Modify > Manipulate Extend 4. 选择三个曲面的顶边,然后向上延伸。
5. 设定连续类型为natural。然后摁下Model按钮。
6. 移动滑动条,或输入数字来延伸曲面,直到你满意为止。(你可能用不着把它延伸3mm).
7. Apply。 结果如下图浅兰色线条所示。(保佑大家都不是色盲或色弱,高考时体检,当时不大明白医生拿的那个五
颜六色的本子是干什么的,胡里糊涂地查点被以色盲处理,我一急,就问医生需要我在这个本子上看出什么来?他们说随便看,看什么就是什么,我认真地看了一会,才知道,奥,,,原来是这个!!!!!)
.
修整连续性(To modify continuity):
曲面延伸之后,曲面之间的连续性会有些变化。如果你发现了这些变化,我们就可以使用匹配(Match)命令来重新在两个扩展曲面间建立连续性。这是很复杂的一个功能,我们推荐你去看看帮助文件中,它是怎样使用的!!!!
1. 工具条路径Evaluate > Continuity Multi-Surface Continuity 2. 选择三个曲面BndryBlendSrf, BndryBlendSrf2, Radius Surface. 3. 在误差范围在0.05mm内,指定连续性为相切(2阶连续) 4. Apply.
,或者菜单 Evaluate|Continuity|Multi-Surface.
.注意:如果你的连续性没有改变,,则跳过下面的处理。如果连续性不是在0.05范围内,那么还要使用Mache操作来修整
5. 工具条Modify > Modify Surface --Match 2 Surfaces , 或菜单 Modify|Continuity|Match Surfaces.
6. 选取过读渡区与圆弧面相邻的边作为匹配实体“match entity”
7. 选择圆弧面与过渡区域相邻的边,作为引用实体(reference entity),引用实体不会被修改。
8. 指定 Position, Tangent, 和 Curvature. (这些究竟代表什么含义,没办法,,该看曲线曲面原理的书了!!!!是让
imageware自动判断该使用哪类型。)
9. 开启Advanced选项中的投影“Project”,这样可以保证你的数据变化很小。(我个人认为,这个匹配操作基于在XY
面上投影的,三维图象的处理过程实际上就是2维图象的复杂化,都是在2维的环境中进行处理的!!!各种投影操作便是处理工具) 10. Apply ,匹配完毕。
11. (这步操作是目前为止,我们做的最复杂的操作,它可以判断两个曲面间的连续性,然后把它们在进行拼接。我想
起来UG中的曲面缝合,是不是也这样!!!)
11. 以文件名\"Section5-8.imw.\"存盘。
调整并检测上表面(Adjusting and evaluating the top surface)
我们把侧面创建完毕了,,现在要重新来审查上表面。因为它是NURBS面,是四边形的,每条边有两个内部节点,曲率栅条将会把操作过程揭示在你面前!!!!! 注意:确信文件 \"Section5-8.imw是打开的
分析顶部曲面的曲率(To evaluate the surface curvature):
1. 工具条Evaluate > Curvature ---Surface Curvature Needles
的扫掠方向)
3. 设定每段曲线使用55条栅线,并设定段数section为 2.
,或菜单 Evaluate|Curvature|Surface Needles.
2. 指定栅条方向为V向。(熟悉图形学的朋友自然会知道,所谓的U向,是曲线上的方位。V向是曲线在形成曲面时
4. 摁Model 按钮预览,然后Apply 。如下图所示(象什么?象翅膀啊!!!)
调整上表面的形状(To adjust the surface shape):
We want to smooth out the surface with a minimum change in shape我们很有必要对该面做微小的改变,让它平滑!(在逆向工程中,还有什么比平滑更重要的?). 曲面平滑化不仅能提高全面的视觉质量,也为以后的曲面求交,倒圆面的处理提供了便利!!!而基于bezier的曲面是没有内部节点的,所以它的弯曲不是那么尖锐。!!(所以我们要把NURBS面转化为bezier面)
工具条Modify > Manipulate ------>Convert to Bezier to Bezier.
1. 指定转换方式是手动(Manual ). 2. 设定转换方向V向.
from the toolbar or select Modify|Parameterization|Convert Surface
3. 设定次数(order)为6 (为什么是6,而不是别的?因为这样的Bezier 面和4次的带有两个节点的NURBS面相近,
事实上Bezier是NURBS的特殊情况,但结果图形要比NURBS面光滑一些。是不是越来越感觉曲线曲面的原理的重要性了?做任何事情都是这样,把实质抓住了,其他的一切都是个形式!!!!!!!!!!!!!!!.) 4. Apply,曲面转换完毕 。如下图所示。
你将会注意到转换完成后的曲面与曲面的偏差仅仅0.26mm。你还能注意到曲率栅条比较符合自己所期待的那样。这就是使用bezier (单NURBS样条)的好处
6. 把曲率栅条删掉(它没有用处了,而且妨碍我们的视线。) 7. 来吧,让我们把所做的侧面进行镜像。下一步做修剪时就好看一些。 To snip the surface:
1. 工具条Modify > Modify Surface Snip Surface 2. 选择顶面为待修剪面.
3. 指定U向0.5作为修剪位置(下图紫色线条即是)
,或菜单路径 Modify|Snip|Snip Surface.
4. 注意:这儿为什么要选择0.5?(我对精度的控制,还是把握不好,这是个经验问题,需要从实践中学习的!!)
4. Apply ,修剪曲面。
5. 以文件名 \"Section 5-9.imw.\"保存(以上操作就是把一个整面从中心线分为两半。为什么要这么干?因为我们创建的
侧面也是一半。反正到最后可以进行镜像复制的嘛。)
Top
创建过渡面(Creating the transition surface)[即侧面和顶面间的过渡面]
现在我们已经有了镜像显示的零件模型的完整的侧面和顶面了,它们将要进行圆角(倒圆)拟合,在开始之前,我们首先要确定采用哪种圆角(倒圆)类型。通过审查点云和点云横截面的形状,你可以感觉到这个过渡区是从很远的地方后退过来,进入顶面和侧面交接区域,然后又加速收缩为一个中心点。它也可以看作是一个横贯这个零件模型的固定跨距。我们把这个具有固定长度的圆角称为弦圆角(\"Chord\" fillet)[唉,这个词是难翻啊,我心里有些明白,但不能很准确把它表示出来。] 我们把那个加速运动的圆角称为加速相切或弯曲(Accelerated Tangency or Curvature)。圆角命令有许多的操作方式,我们推荐你去看看指令帮助。(没有谁比EDS公司更明白Imageware了,所以一定要学会看帮助文档!!!!!!) 注意:确定文件Section5-9.imw被打开。 To create the fillet:
1. 工具条路径Construct > Blend Surface- Fillet Surface ,或菜单路径 Construct|Fillet|Surface.
2. 选择侧面的三个曲面作为曲面1(Surface(s) 1)[此处注意各面的法线是否一致,如不一致,那么需要修改法线方向,
可以在菜单路径Modify|direction|reverse surfacer| normal 找到。然后在此处的曲面选择时,让顶部曲面的法线指向下,让侧面的法线指向里,这样才能够做出来如下图所示的样子!!!祝你好运气,别象我一样背,又做了4遍才出来!!!]
3. 选择顶部曲面作为曲面2(Surface(s) 2).
4. 指定创建一个值为4mm的弦圆角(Chord fillet) 5. 选择 Acc. Curvature ,半径为3.5mm. 6. 指定这个圆弧的次数为7,边缘次数为6。.
7. 如果这个圆角在以后需要修改,选择贝塞尔(Bezier)选项 8. Apply.
9. 以文件名 \"Section5-10.imw.\"存盘。
Top
创建底面部分(Creating the bottom part edge)
不是还有底部的面没有做么?这个很简单,创建一个平面作为修剪工具,直接把模型砍掉一部分就行了。 注意:确定 文件ection5-10.imw\" 被打开。 To create the bottom edge:
1. 把wireframe层设为工作层。 2. 显示初始点云
3. 创建一条二维曲线,在front视图中,即YZ面。(你摁一下F5就可以了),然后让它们延伸相交。。然后在相交曲
线间创建圆角,把延伸出来的地方剪去。 如下图所示的样子。(呵呵,快收尾了,文档作者似乎没耐心了,叙述的步骤简得厉害!!!
呵呵,上面我多做了一步。上图的修剪有点多余,因为下面还要接着剪。我决定,不再饶舌讲创建过渡圆弧的详细步骤,因为这一步是前面所有知识的一个积累,我相信我能够想到的,你也能够想得到。这几步操作文档中是一笔带过了。。。其实做到这儿,你想不会做这几条线都很困难!!!!!!!!!!!一切做起来都是那样自然了!这就是入门的快乐!! 4. 设surface.为工作层。
5. 用前面做好的底线在X方向上拉出一个面来。如下图。
由于我的线是在点云中截面上做的,所以在拉面之前要把它在X方向上移到点云外部,怎么移动呢???好好想想!我能做到的,你肯定也能做到!!!!!!。
6. 工具条路径Construct > Intersection- Surface Intersection
Surfaces,进行底面与侧面求交。 7. 把底面隐藏。
修剪表面(To trim the surfaces):
,或菜单路径 Construct|Intersection|With
1. 工具条路径Modify > Trim -Trim Surface Regions 2. 选择这个零件模型的全部表面。. 3. 选取顶面和侧面你想保留的点。 4. Apply
5. 以文件名 \"Section 5-11.imw.\"存盘。
,或菜单路径Modify|Trim|Trim Surfaces.
嘿嘿。。俺又做坏了,,做出来的面居然有个大缝!!!,今天不改了。。太累了!!!!!!
Top
完成这个模型(Finishing the model)
我们将要完成这个模型了,现在只有最后一步,就是创建曲面上的三角镂空区。 注意:确定你的文件Section5-11.imw是打开的。 创建镂空块(To create the cutouts):
1. F1键返回 \"Top\" 视图, 2. 创建如下图所示的辅助线。
3. 把上一步建好的辅助线投影倒顶部曲面上,然后使用trim工具修剪。4. 把曲面在YZ面上镜像,要复制过去。
5. 以文件名\"complete.imw.\"存盘。结果如下图所示。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务