目的
制作一个可以使用参数调整柜体大小、门板数量的柜体。
一、结构分析
1.1柜体主要组成模块
柜体主要由“侧板、底板、背板、顶板、门板”五种模块组成,其中侧板又分为左侧板、右侧板,门板根据设计要求有不同数量。
除此之外,还会有上横梁、搁板、立板等模块,本次制作中暂时不考虑。实际使用中可在创建柜体之后,再逐步添加。
1.2柜体模块位置关系
柜体中各模块位置关系如下:
①门板浮出;
②左右侧板夹底板、背板、顶板;
③底板托背板,顶板贴背板。
二、制图过程
2.1确定柜体制作原点
为方便制作及使用,规定以面向柜体时后侧左下角为坐标原点(0,0,0)。主要是考虑柜体存在有无门板及门板厚度变化等影响因素,减少柜门的影响,便于后期操作。
2.2创建柜体组成模块
按照柜体各组成模块位置关系,分别画出各组成模块群组,并对各模块命名以方便后续使用。
注意:各模块统一以靠近原点的顶点作为模块原点进行绘制,可以降低在后期动态组件函数编写时的困难。
绘制时位置不需要特别准确,只需要放到相对位置,以供动态组件函数编写参考。
侧板左
侧板右
底板
背板
顶板
门板
2.3组合创建动态组件
将上述模块建立群组,命名为“多门柜”
以多门柜群组创建组件
2.4动态组件添加属性
为多门柜动态组件添加属性如下图
参照下图设置各属性
2.5编写动态组件函数
对于多门柜动态组件中门板之外的模块,只需要为各模块分别设置模块的原点位置及各个方向上的尺寸,即可实现动态组件效果。以下以底板为例,其它请自行参考。
2.5.1底顶背侧模块属性设置函数
为底板添加全部位置属性和尺寸属性,并按图中进行函数设置。
函数解释:
①底板的原点X位置与多门柜原点位置重合,公式为“=多门柜!X”;
②底板的原点Y位置相对于多门柜原点位置,偏移了一个侧板厚,公式为“=多门柜!Y+多门柜!BanHouGui”;
③底板的原点Z位置与多门柜原点位置重合,公式为“=多门柜!Z”;
④底板X轴长度需要在多门柜X轴长度上减去门板的厚度,公式为“=多门柜!LenX-(多门柜!BanHouMen)”;
⑤底板Y轴长度需要在多门柜Y轴长度上减去左侧板和右侧板的厚度,公式为“=多门柜!LenY-(多门柜!BanHouGui)-(多门柜!BanHouGui)”;
⑥底板Z轴长度即板的厚度,公式为“=多门柜!BanHouGui”。
说明:参与运算的自定义属性,开始的时候一直报错,在都用括号括起来使用后,就不报错了。至于为什么会出错,搞不清楚。
参照底板的原点及各轴长度定义,依次编写函数。
2.5.2门板根据数量调整宽度函数
为门板额外添加行为属性“Copies”,设置该属性函数为“=多门柜!MenBanShu-1”
函数解释:
这个函数的意思是门板按门板数量的设置进行复制,因为最初就有一个门板了,所以复制份数比门板数量要减1。
搞定了门板复制数量后,再确定每份复制的位置就可以了。
因为门板复制是在Y轴上进行,所以只需要调整Y轴的函数为“=多门柜!Y+(多门柜!MenBanFengBian)+copy*((多门柜!LenY-(多门柜!MenBanFengBian)-(多门柜!MenBanFengBian)-(多门柜!MenBanFengJian)*((多门柜!MenBanShu)-1))/(多门柜!MenBanShu)+(多门柜!MenBanFengJian))”
函数解释:
①多门柜!Y+(多门柜!MenBanFengBian):表示由多门柜Y轴起点计算,首先偏移一个门板边缝的距离;
②copy()函数中那一长段表示每份复制品需要偏移的距离为门板宽度+门板间缝,其中“(多门柜!LenY-(多门柜!MenBanFengBian)-(多门柜!MenBanFengBian)-(多门柜!MenBanFengJian)*((多门柜!MenBanShu)-1))/(多门柜!MenBanShu)”这一段是计算不同门板数量下,每扇门板的宽度。
三、效果展示