多语言展示
当前在线:1293今日阅读:84今日分享:32

SketchUp动态组件教程(一)精确拉伸实例教程

利用SU自带的[动态组件]工具,参数化建模,实现模型的精确拉伸缩放功能
工具/原料

SketchUp Pro 2019

方法/步骤
1

利用SU自带的[缩放]工具,选中物体可以对组件、群组等图形进行等比例或非等比例缩放,但在非等比例缩放的时候就会出现如图1-1所示情况,横向拉伸,两侧的竖板就会变宽,无法做到尺寸拉长而四周边框不变的效果。如图①用缩放工具,选中物体,②沿箭头方向拉伸,③可见左右两侧的竖板从50MM变为100MM,横向物件长度变长,其他尺寸未变。

2

在室内设计中空调的出风口,往往受到吊顶造型和空间的限制,设置不同长度的出风口,我们希望拉伸改变其长度尺寸的时候,边框、导风叶片、中间支架等部件不变形失真。如果打散模型后对每个块进行拉伸、排列、重组,这样的操作非常费时间、费功夫,每次遇到相同情况都要重复劳动,事倍功半很是苦恼。那么如何在SU建模中解决这个问题达到一劳永逸呢?这就是今天我要讲的课题,不是用外部插件,而是用SU自带的“动态组件”高级参数化建模功能。何为参数化?就是赋予组件一些动态函数属性,使其根据动作或者数值来调整形态,以满足个性化和精准化的模型变化需求。实现完美缩放其实就两步:一是科学建模,二是赋予模型可变函数属性。

3

接下来首先要做的是初步建模,由于手头没有出风口的实样和游标卡尺,无法得到精准的模型尺寸数据,当然我们也不是做产品级的建模渲染,所以我从网上下载了一个空调出风口的图片进行依葫芦画瓢建模,如图:1-2

4

首先根据图1-2分析出风口的组成零部件,大致分为①四周的边框②中心支架③弯叶导风板④固定边框的角码(角码有两种,一是L形角码装在边框盖板反面固定45度对角,二是长角码,固定边框的安装侧边对接处,因长角码对于移动定位模型有利,所以建模,另外的L形角码在背面,对模型捕捉定位和移动没有任何帮助,故不建模)。分解后如图1-3

5

现实中一般室内吊顶造型安装空调出风口的位置大致高度也就只有200~250MM,市面上常规的空调出风口木工开口高度是130~180MM,此处以开口高度140MM为例,而空调风口边框遮盖板的宽度一般是20MM,所以我们先建一个成品尺寸为1000MM长×180MM高×40MM厚的空调出风口,如图:1-4

6

具体组装细节①和④交接,②和③交接,边框①要做45°对接,呈现斜边的过度,如图1-5所示。

7

建模完成后需要把所有群组选中[创建组件],如图1-6,在①处输入组件名称“Air Outlet CC1.0”,要注意的是在SU文件中组件的名称默认是“组件#1~N”顺延定义名称的,名称可随意定义,但不能出现重复,所以在创建动态组件的时候先想好命名规则,方便后期建立自己的图库提高绘图效率。组件名称最好是英文名称及数字或者拼音字母及数字,对于后期动态组件的函数程序运行兼容性有很大帮助,可以避免后期程序出错。如图1-6,输入名称后②点击[创建]。此过程中值得注意的是组件的坐标轴③和文件的坐标轴④不在一起,后期需要调整统一坐标轴,方便设置各动态参数。

8

模型创建完成后,需要分析模型拉伸动作的元素确定活动图块。如图1-7在模型伸缩过程中我们希望①处的左右边框L&R Frame移动位置,但规格尺寸不变;②处的上下边框T&B Frame随着伸缩长度尺寸变化,其他规格尺寸不变;③处的中心支架Mid Frame规格尺寸不变,只是随着模型伸缩而增减数量;④处的弯叶导风板Air Deflector和②处的上下边框T&B Frame都能随着伸缩长度尺寸变化,其他规格尺寸不变。分析可得以下几个必要组成部分:一是左边框及角码,二是上下边框,三是中心支架,四是导风板,五是右边框及角码。

9

根据分析对模型进行优化,优化是两个部分,一是模型的重组,二是坐标的重置和统一。模型的重组简单说就是把模型归类成组,比如45°对接的边框,对接后交接线可以去掉,模型可见的边线,渲染后是不显示的,如图1-8的①处所示。接着就是切割,左边框及上下两个角码单独成为一个群组,如图1-8的②处所示;用同样的办法把右边框及上下两个角码单独成为另外一个群组;分离出左右边框后将余下的上下边框群组在一起;分类重组完边框后依次完成中心支架的群组和弯叶导风板的群组。

10

模型分隔重组后就需要完成坐标轴的重置和统一。先把风口模型的40MM厚度顺着Y轴线,1000MM长度顺着X轴线,180MM高度顺着Z轴线放置好;接着就是统一坐标了,这步很关键,把整体模型的左下角起始坐标对准总坐标的原点,如图1-9所示。由于风口的边框四边是做了斜切角处理的,所以边框的左下角并不是模型的顶点起始坐标点,因此用移动工具捕捉不到,只会捕捉斜切角的顶点,这个关键点值得注意。如图1-9②处如果这样拖过去后就导致组件的定位点不是模型坐标的点(X=0,Y=0,Z=0)。组件坐标归零的方法很简单,就是选中组件剪切(Ctrl+C)一下,再黏贴(Ctrl+V)一次,放到坐标点位置会有“原点”捕捉提示,如图1-9①处。操作完成了组件的坐标定位后,接着就是统一组件内部各部分的次坐标的重置,双击进入组件,挨个选择每一个群组,[炸开模型]再[创建群组],如有需要可以鼠标坐标上右键,弹出对话框,选择坐标重置,依次完成各嵌套群组的坐标重置。

11

完成以上步骤就完成了第一阶段建立初步模型的工作,第二阶段就是进入动态组件工具栏的操作。首先调出[动态组件]工具栏,如果之前没有调出,可以在菜单栏中的①[视图]→[工具栏]→②[动态组件]勾选。③点击[组件属性]按钮,调出动态组件工具栏。如图2-1所示。

12

点击组件属性后会弹出组件属性的对话框,如图2-2所示,如果未选中组件(①处的组件没有被选中),②处显示“未选择一个组件”,组件属性框内就无属性信息显示。

13

然后我们选择这个组件①,则会显示其组件属性,如图2-3所示,②处显示组件名称“Air Outlet CC1.0”,③处显示组件内各群组(由于创建组件需要输入名称,创建群组无需输入名称,所以本组件信息显示的内嵌的群组名称均为“Group”,稍后需要分别重命名个群组块),④处是组件内各组的单位,动态组件单位默认是厘米和英寸,⑤处“+”点击可以添加组件块或群组块的更多属性。

14

在打开组件属性对话框的情况下,进入组件,点击其中一个群组,如这个上下边框,此时组件属性值单独显示一个群组块的信息,如图2-4所示。双击①处的“Group”就会弹出重命名的对话框②,此时将这个群组块重命名为“Frame”后点确定,重命名完成。

15

如图2-5所示,当选择左边框①时,组件属性对话框显示三个“Group”,②处是左边框群组的名称位置,③处的“Group”稍偏右,是嵌套在“左边框”群组内的两个角码名称。

16

然后对相应的名称重命名,左边框群组重命名为“Left Frame”,两个角码重命名为“Angle”即可。如图2-6所示。

17

根据同样的方法依次编辑完组件及其内嵌套的所有的群组的名称,①处是组件名称,②处为各群组名称,群组名称稍偏右,表示②嵌套在①内,③处是单位英寸,之前提到过单位仅为“inch”和“cm”两个,点击一下③处标尺即可转换,此处仅为切换演示,做此组件必须统一单位为“cm”。如图2-7所示。如图2-7所示,该空调出风口组件及内嵌群组命名如下:1.空调出风口组件命名为Air Outlet CC1.02.弯叶导风板的群组命名为Air Deflector3. 中心支架的群组命名为Middle Frame4.上下边框的群组命名为Frame5.右边框的群组命名为Right Frame6.左边框的群组命名为Left Frame

18

完成以上步骤后进入第三阶段的函数编程准备阶段。如图3-1所示,①处点击“+”,弹出选择对话框。此处我们要先分析一下我们需要哪些动作或者属性来实现此组件的变化需求,即横向拉伸,那么②处组件尺寸和③处实现缩放的比例控制工具都是必须的,④处也需要预留自定义备注项。此处需要一个简单的编程逻辑,学过EXCEL函数公式或者网页代码制作的同学就能很快理解这个逻辑,通俗认为:“定义项目→制定程序运行规则→引用定义项→执行程序测试”,如果不懂也没关系,跟我一步一步操作,非常简单。

19

添加属性可以单独一个一个加入,如LenX,点击一下即可加入一个,再添加下一个;或者如图3-2所示直接点击①处上部“尺寸”,即可一次性把“LenX、LenY、LenZ”三个属性同时添加进入属性列表,添加其他属性的方法都是一样的。

20

如图3-3所示。空调出风口的组件属性有以下三个:①不管如何拉伸,组件总有轮廓尺寸,所以需要一个“尺寸”属性;②控制伸缩方向,长度可伸缩,高度和厚度不变,故需比例工具“Scale Tool”控制伸缩方向 ;③中心支架需随风口长度的伸缩,按一定间距增减,故需自定义间距属性“Spacing”。另外内嵌的每一个群组都有④位置属性和⑤尺寸属性。

21

如图3-4所示,第一步添加这些尺寸、位置等属性,检查每一个组件或者群组的名称都重命名完成、单位统一。尺寸和位置属性栏内呈现的默认数据为“数字+单位”的形式。这是添加属性时软件自动识别的组件或者群组对于总坐标的数据。注意仅是绝对数值。识别数据后模型组件在参数调试完成前不可离开总坐标点,切记!后期要将部分参数的绝对数值定义为相对数值。

22

将绝对坐标定义为相对坐标是一个非常重要的步骤,依次固定组件和群组中的不变参数,即不管怎么拉伸,不变形的部分需要固定参数,即由绝对坐标变为相对坐标,我们称之为“固定参数”。固定参数前需要切换到公式视图模式,如图4-1所示点击①处的图标。

23

如图4-2所示,分析各参数值的意义如下:对于空调出风口组件Air Outlet CC1.0来说沿着X轴长度会变化,中心支架Middle Frame会在X轴方向需要增减变化,所以和①处类似的需要变化的部分暂时不做固定参数编辑,此处数据是灰色的,带单位,如LenX为“100CM”。②处是已经固定了参数的部分,对于Air Outlet CC1.0来说高度和宽度是不变的,中心支架Middle Frame的尺寸是不变的,其在Y轴、Z轴的位置也是不变的,不变的部分即可固定下来。固定参数的方法就是点进去,在数字前面加入“=”并删除数字后的单位,然后回车即固定此栏的参数,如Y轴的参数框内显示“=4.2”, 此处的位置数值的表示该组件或群组的起始点对于坐标原点的位置。依次分析Frame、Right Frame、Air Deflector、Left Frame等的变化参数和不变值,对于不变化的③④⑤⑥处依次进行:加“=”去“cm”回车,完成固定参数的步骤。

24

固定不变参数后就是调整可变参数,如图4-3所示,首先调整[行为]的Scale Tool 工具,点击①处的[详细信息]按钮,出现设置面板,②处勾选“沿红色轴线调整比例”,剩下的框框都去除勾线,再看示例小模型的控制点仅显示X轴方向的伸缩控制点;③处默认“用户看不到此属性”;然后点④处“应用”完成比例工具的设置。

25

上一步完成后,如图4-4所示在①处“Scale Tool”的数值框内就会显示“已隐藏部分调整比例手柄”的字样,接着在②处设置间距Spacing的值,根据教程开头那张出风口的照片示例,结合1000MM的模型长度,我估摸着间距在26~30CM左右比较合适,我先暂定27CM,如果你要设置其他间距值也是可以的。我们看到③处左起第一个中心支架Middle Frame在X轴方向离坐标原点的距离为“23+60=83MM”,所以④⑤步骤内函数式中的8.3是指中心支架与坐标原点的距离8.3CM。在④处输入“=8.3+copy*(点击Air Outlet CC1.0中的Spacing,即可自动生成代码Air Outlet CC1.0!pacing)”,当然此函数式可以全程手动输入;用相同输入方法在⑤处输入“=( Air Outlet CC1.0!LenX-8.3)/ Air Outlet CC1.0!Spacing”备注:1、代码的意思“=8.3+copy* Air Outlet CC1.0!Spacing” 其中“=”是赋予的意思;“8.3”表示第一个中心支架在X轴的起始点,且为正值,方向朝右; “copy* Air Outlet CC1.0!Spacing”表示顺着X轴方向复制方式以Air Outlet CC1.0组件的Spacing间距27CM重复复制。2、代码的意思“=( Air Outlet CC1.0!LenX-8.3)/ Air Outlet CC1.0!Spacing” 其中“=”是赋予的意思;“Air Outlet CC1.0!LenX-8.3”表示以Air Outlet CC1.0组件的X轴方向的尺寸大小(即长度尺寸)减去8.3CM后的剩余长度内作为复制中心支架的长度范围; “/”就是除法的意思;“Air Outlet CC1.0!Spacing”表示Air Outlet CC1.0组件中设置的间距值27CM。简单理解就是:长度/间距=个数,即L/D=N,这么理解是不是就很简单了。当④⑤步骤输入完成,中心支架Middle Frame就会在沿着X轴右侧方面复制生成阵列。中心支架Middle Frame设置完成后,就需要设置弯叶导风板Air Deflector的参数,使其向上复制生成阵列。

26

如图4-5所示,①处所指中心支架上卡槽口的中心间距是20MM,故在中心支架Middle Frame上增加自定义间距参数“Spacing=2”。

27

如图4-6所示,在中心支架上还需向上复制5个弯叶导风板Air Deflector,在①处Air Deflector中添加复制行为属性“Copies=5”,然后在②处用复制中心支架Middle Frame的方法写弯叶导风板Air Deflector的复制参数代码“=3.688263+copy*Middle Frame!Spacing”,另外弯叶导风板Air Deflector的长度是空调出风口Air Outlet CC1.0的总长度减去两侧的边框尺寸,故在③处输入代码为“=Air Outlet CC1.0!LenX-4.6”,最后观察得知上下边框Frame和弯叶导风板Air Deflector的伸缩变化是一致的,所以如③处所指上下边框Frame的X轴长度等于外弯叶导风板Air Deflector的X轴长度,代码为“=Air Deflector!LenX”。

28

最后设置右边框Right Frame在X轴的起点位置,如图4-7所示,①处右边框正面尺寸宽度为23MM,但是角码组件和右边框组合在一起的,角码突出2MM。所以右边框群组的实际外尺寸是25MM,在空调出风口Air Outlet CC1.0组件的伸缩变化中,右边框Right Frame在X轴的起点永远是空调出风口Air Outlet CC1.0在X轴的长度减去2.5CM,所以其代码为:“=Air Outlet CC1.0!LenX-2.5”。

29

最后关闭右上角的“切换公式视图”,此致所有组件及群组的参数代码设置完毕,一个空调出风口的动态组件制作完成。如图4-8所示,在选择该组件后点击①处的缩放根据,在组件上出现X轴的缩放控制点,当鼠标点击控制点进行拖动时,控制点由绿色变红色,如②处所示,LenX的数值也会跟随变化。如果想精确缩放,无须鼠标拖动,直接在Air Outlet CC1.0组件的尺寸LenX的数值框内输入想要的数值,单位默认cm无须另外输入(直接输入数值时,可关闭右上角的“切换公式视图”),该组件即可精确缩放。

注意事项
1

组件和群组的轴线设置是要确定无误

2

固定参数不可遗漏或者固定数值错误

3

设置函数公式和相关参数要准确仔细

推荐信息