SketchUp7动态组件制作教程.pdf

上传人:zh****71 文档编号:138268330 上传时间:2020-07-14 格式:PDF 页数:10 大小:57.03KB
返回 下载 相关 举报
SketchUp7动态组件制作教程.pdf_第1页
第1页 / 共10页
SketchUp7动态组件制作教程.pdf_第2页
第2页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SketchUp7动态组件制作教程.pdf》由会员分享,可在线阅读,更多相关《SketchUp7动态组件制作教程.pdf(10页珍藏版)》请在金锄头文库上搜索。

1、SketchUp7动态组件制作教程 动态组件 (Dynamic Components) 是 SketchUp7一项重要的新功能,我们已经了解到,动态组件用起来有趣,可是如果让自己去动手制 作的话,似乎就有点难度了。 本人结合官方英文帮助文档学习了一下,发现其实并不是很难掌握,看以下的教程,我想不需要 复杂的知识背景,任何人都能够轻松入门: 一,首先说说什么叫做动态组件 在前一篇文章: 世界变化快 -SketchUp7 试用 中,我已经大致阐述了这种动态组件的特性,总结这些 组件的属性并加以分析简化,我们发现,动态组件无非具有下列几项基本特点:固定某个构件的参数( 尺 寸、位置 ) ,重复某个构

2、件,某个构件的参数调整,某个构件的活动性。因此,具备以上几种或其中一 种属性的组件 ( 注意,不是群组) ,即可被称为动态组件。 二,动态组件的基本属性 1. 固定参数: 比如当你缩放一扇带边框的门窗时,你并不希望边框也随之变化,这项功能可以实现门( 窗) 框尺寸不 变,而门 ( 窗) 整体尺寸变化。 在缩放过程中,门的总体尺寸变化了,但是门框尺寸却没有变 2. 重复 比如楼梯踏步,当你想加高楼梯时,踏步数也会随之增加。 缩放楼梯后,楼梯的踏步数增加了,而栏杆及踏步间距没有变化。 3. 可配置 比如一个篱笆组件,会出现一个对话框。让你自己输入( 选择 ) 篱笆的高度、栏杆间距等。 这个组件的特

3、点是,有一个面向用户的对话框,在这个对话框中,你可以自己决定篱笆的高度,杆件 及桩的尺寸,杆件之间的间距等。 4. 动态 比如一个门扇的组件,点击后,可以实现门扇开启关闭的效果。 用特定的工具按钮点击门的时候,门就可以转动。 三、实例一 ( 篱笆组件 Fence) 分解完动态组件的基本属性后,问题就变的简单一些了,下面我们通过一个篱笆组件的实例,一步步 实现制作一个动态组件的愿望,在本实例中,我们将能学习到固定参数和重复这两项基本属性。 1,目标 通过缩放后,组件能够自动生成下图所示的效果。 2,制作准备 首先制作出一个篱笆所需要的几个基本构件,分别制作出了桩、竖向杆件、纵向杆件共四个构件。制

4、 作完成后,把每个构建制作成组件,注意,不是群组,只有组件才能具有相应的属性,而群组没有。 要给每个组件起不同的名字,如上图所示,我们给这四个组件分别命名为 Psot,Picket,TopRail,BottomRail。 最后全选所有的组件,再整个定义为一个组件,并命名为Fence。 3,为组件配置属性 调出如图所示的按钮,在选中Fence 组件的情况下点击红圈内的按钮,查看组件属性。 这就是组件属性的对话框,可以看到,该表已经列出了我们刚才所做组件的名称,但是展开组件名称, 并没有相关的参数。因此,我们要根据实际需要来添加这些组件的参数。在本例中,主要是位置、大 小( 尺寸 )两项。 点击

5、+号后,软件会自动提示对话框,直接点选即可。 点选添加位置属性后,再添加大小( 尺寸 ) 属性。 以此类推,重复此步骤,为每个组件都添加这两项属性。 请注意, 每个属性后面的数字代表着你建立组件的现状情况,即每个组件的坐标,x,y,z方向的具体尺 寸。 目前这些数字的颜色是灰色的,表示这些参数是可调整的,当你缩放组件时,这些灰色的数字会随之 变化。 4,通过函数控制属性 这一步开始就比较重要了,仔细看好。 可能有相当一部分人看到函数两个字就头疼,但是这里需要我们掌握的函数是相当的简单,类似于加 减乘除的道理,很好理解,继续: 因为我们通常会希望篱笆变长( 沿 X轴方向 ) 、变高 ( 沿 Z轴

6、方向 ) ,而不是变厚 ( 沿 Y轴方向 ) 。所以我 们对 Y轴上的参数进行限制。 在本例中, LenY 项的原参数是10cm , 这代表篱笆的厚度是10cm 。 现在要做的是: 把10cm删掉,填写=10, 然后 按 TAB键确认改动 。 请注意,这时 10cm 就显示为纯黑色了。这就代表,篱笆的整体厚度,Y轴方向的尺寸被限定住了,有 兴趣的话这时就可以自己沿Y轴缩放一下试试。 接下来要分别定义每个构件的参数属性了,比如篱笆桩,在任何情况下,我们都希望它的尺寸是固定 的,因此要在每个参数前加上 =。注意这时数字后不要带单位。 同样的要定义TopRail 和 BottomRail的参数属性,

7、 但这里有些不一样,要想实现我们一开始提到的效 果,这两个构件的X轴的尺寸应该是可变的。 到这一步,就可以再测试一下了,拉伸组件,我们发现只有横向的杆件被拉伸了,其他的构件尺寸都 没有任何变化 - 不过也先别急着高兴,下面还有更重要的:纵向杆件(Picket)的重复。 首先在 Fence 组件属性的后面添加一个自定义的参数。即重复间隔,我们命名为spacing 。 后面的值我们定义为2。 ( 图中所示为 20,间距过大,后根据实际情况调整为2合适 ) 在 Picket的属性栏里添加一项行为属性 Copies 。表示该组件允许被复制,Copies 后跟的数值是指被 复制的个数。 那么,应该怎样表

8、达出这个被复制的个数呢? 这里我们提供了一行公式来表达这个数字 =(TopRail!LenX)/(Picket!LenX+Fence!spacing)-1 = 意味着后面的数字是被( 公式 ) 控制的 后面的一段实际上就是一段普通的数学表达式 翻译为 TopRail 的 X长度除以 (Picket的 X长度 +刚才定义的间距) -1 这样应该就明白了,长度除以等分距离再减掉一根。就是Picket所应存在的根数了 除了限制 Picket存在的根数, Picket被复制后,它的位置也有了变化。这里只有在X轴上, Picket 的位置才有变化,所以我们要为X轴的位置参数写一段数学表达式: =12+C

9、OPY*(Fence!spacing+LenX) 如果明白了上面公式的含义,这段公式应该也很容易理解。 ( 值得一提的是:在整体组件Fence 的属性中,位置参数是相对与Su的世界坐标系,而Fence 中的分 组件 Picket等,坐标系都是相对值) 5,调试完成 至此,我们的动态组件( 篱笆 ) 就完成了,看看是否达到了预期效果? 大功告成了 - 实例二 (地板 Floor) 在这篇文章里,我们一起来学习如何制作一个动态的地板。这次我们将用到Floor和 Ceiling两个函 数,但是请注意,这里的函数FLOOR 及函数 CEILING与模型中的Floor( 地板 ) 没有任何关系。 Ske

10、tchUP7动态组件中所用到的函数是通用的,如果想了解更多函数的具体功能及讲解,可打开 Microsoft Office Excel的帮助文档进行查阅。 1,目标 通过缩放后,组件能够自动生成下图所示的效果。 2,制作准备 要实现这样的效果,所需要的组件材料其实非常简单,不像上面我们制作的篱笆。 这里其实只需要一个小方块Tile 。然后再通过函数控制,把小方块进行阵列组合成地板Floor 就可以 了。 创建一个名称为 Floor的组件。 双击进入组件Floor ,全选,继续再创建一个名称为Tile的组件。 查看已经建好的组件的属性,我们能够看到刚才创建的两层组件的属性。 3,为组件配置属性 首

11、先分析,将如何来实现一个Tile成行成列的组成一片地板呢,他们各自需要什么样的属性呢? 地板 Floor :位置不用考虑了,这个地板组件应该是可以任意移动的,默认的就是可变数据,因此不用 列出 大小将会是可调整的并且会被地板砖Tile控制厚度, 可要可不要。 这里加上, 但不予调整。 (自定义 ) 行数地板砖由几行组成 columns (自定义 ) 列数地板砖由几列组成 rows (自定义 ) 地砖尺寸 TileSize 行数与列数我们暂且留空,后面需要用数学表达式来控制其数值 我们把地板砖的尺寸值定义为60,这个是不带单位的,只是一个普通的自然数值。 地板砖 Tile的属性配置 位置每个地板

12、砖的相对坐标 大小前面已经在Floor 中定义过了,这里直接把定义好的数值取过来就可以了。 LenX LenY 的值分别定义为 =Floor!TileSize 这样计算的结果就是,Tile的尺寸是 60cmX60cm的正方形。 在缩放过程中,我们希望地板砖的厚度是不变的。因此Z轴控制为 6cm Tile的大小属性配置完毕 现在再回头看Floor 里刚才定义的行数与列数,就可以通过数学表达式来控制了 =CEILING(LenX/TileSize) CEILING 的涵义是将后面的数值向上取整数,比如 CEILING(2.3)=3 LenX/TileSize 的意思是地板被拖拉的长度除以地板砖的尺

13、寸 (60) 同理定义列数 在这个组件中,地板砖Tile存在一个复制的动作,添加Copies 行为 =Floor!rows*Floor!columns-1 从地板的参数中取出行数乘以列数 由于之间已经存在一块原始地板砖,因此在这个数值的基础上要减掉1,就得到了需要复制的块数。 这时选取组件,得到右边所示的属性列表。 现在需要对地板砖Tile的位置进行控制。 要控制地板砖的位置坐标,我们需要再添加两个自定义函数 myColumn 某块地板砖位于第几行 myRow 某块地板砖位于第几列 先来定义 myRow =Floor(COPY/Floor!columns) 函数 FLOOR 的涵义是对其后面的

14、数值向下取整数。FlOOR(2.6)=2 利用已经定义的myRow 函数,来定义myColumn的表达式 =COPY-(myRow*Floor!columns) 利用上面定义完的myRow ,myColumn ,就可以定义某块Tile的位置坐标了。 X =myColumn*floor!tilesize Y =myRow*floor!tilesize 至此,所有的属性配置完毕。 拉伸测试,成功! 观察右边的属性列表,可以看到相关的参数变化。 实例三 帮美女换衣服 学会动态组件其实就在你手边。 比如打开 SU7 的界面, 我们立刻就能看到帅哥sang 站在你眼前, 这位 sang 其实就是一个动态

15、组件,用 工具点击sang,他的衣服就会变色了。 要实现这个效果非常简单,我们自己来做个类似的组件试试吧。 下面我们开始制作一个可以换衣服的女孩组件。感谢网友 action提供的女孩模 型,非常漂亮! 不错吧,呵呵,原创组件哦。 给女孩配置下属性。 material,控制材质的命令,输入后,在组件属性栏上会有提示这个命令的用法。 在下面这行命令中 set(material, Blue, Red, Yellow, Green,White) 意思是设置material的值,后面是不同的颜色。 这里需要说明的是,要想使这里的颜色控制人物模型中的局部或全部,那么就要保证被控制的区域的 材质是空的。不然颜色控制会失效,会一直保持被强制赋予的材质。这里,我们把女孩的T恤颜色留 空,其他部位强制赋予材质。 另外一个条件,就是这里的颜色名称要存在于下面这个模型中材质列表 里。 用工具点击下女孩,可以发现,女孩的上衣换颜色了。 那么,我想用这个手指工具多控制几个部位呢?比如裤子也可以换? 当然可以,不过稍微有点小麻烦,你需要多建一层组件。 把 T 恤拿出来,建立组件。 裤子拿出来,建立组件。 最后再整体建个组件。 右边是属性列表。 同理,配置相关属性。 大功告成,不过后面女孩的衣服颜色太丑了,希望action不要怪我,哈哈。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号