面向用户
商家管理账号
定义
弧形栅格,如左上图所示,实现半径、间距、栅格宽度可调。
一. 功能入口
1. 商品管理—企业商品库—全屋家具定制—创建素材—参数化模型库
2.选择“普通板件”真分类。
二. 建模过程
建模思路:弧形栅格无法直接通过阵列完成,需要采用参数化的方法进行制作。
10个栅格条作为一组,使用三角函数对栅格条的位置及旋转角度进行计算,实现弧形栅格的效果。
1.修改基础变量
2.添加自定义变量
名称 |
引用名 |
值类型 |
当前值 |
备注 |
间隔 |
JG |
固定值 |
30 |
|
栅格条宽 |
SG_W |
固定值 |
30 |
|
栅格条深 |
SG_D |
固定值 |
30 |
|
角度 |
XT |
公式 |
(#JG+#SG_W)/#W |
由于x近似于栅格宽(SG_W)+间距(JG),因此可以将JG+SG_W作为x的数值参与计算,此时tanθ=(JG+#SG_W)/W,而因为系统读取的是弧度,所以直接输入(#JG+#SG_W)/#W即可。 |
栅格数量 |
N |
区间 |
10 |
默认以10个栅格条作为一组 最小值:1,最大值:10 |
3. 进行第一根栅格建模
3.1 点击部件库
3.2 点击半成品库,调入一块板件
3.3 宽度关联#SG_D,深度关联SG_W,高度关联#H
4. 复制第一根栅格9次,并依次修改参数
- 旋转z:由图可知,单个栅格围绕z轴的旋转角度存在一定规律,即角度(XT)乘以第(N-1)个栅格,为使栅格的边更接近于圆弧切线,在此基础上再旋转XT/2。因此旋转Z的角度的通式为α= θ*(N-1)+θ/2。
- 位置x:如图所示,将图中的公式进行改写,得到栅格的位置x的通式为θx=W-W*cos(θ*(N-1))。
- 位置y:如图所示,将图中的公式进行改写,得到栅格的位置y的通式为θy=-W*sin(θ*(N-1))。
- 隐藏条件:栅格数量N可变,因此需要对单个栅格设置抑制条件。
- 具体每根栅格的参数如下表:
第N根栅格 |
位置x |
位置y |
位置z |
旋转x |
旋转y |
旋转z |
抑制条件 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
#N<1 |
2 |
#W-#W*#cos(#XT) |
-#W*#sin(#XT) |
0 |
0 |
0 |
#toDegrees(#XT+#XT/2) |
#N<2 |
3 |
#W-#W*#cos(#XT*2) |
-#W*#sin(#XT*2) |
0 |
0 |
0 |
#toDegrees(#XT*2+#XT/2) |
#N<3 |
4 |
#W-#W*#cos(#XT*3) |
-#W*#sin(#XT*3) |
0 |
0 |
0 |
#toDegrees(#XT*3+#XT/2) |
#N<4 |
5 |
#W-#W*#cos(#XT*4) |
-#W*#sin(#XT*4) |
0 |
0 |
0 |
#toDegrees(#XT*4+#XT/2) |
#N<5 |
6 |
#W-#W*#cos(#XT*5) |
-#W*#sin(#XT*5) |
0 |
0 |
0 |
#toDegrees(#XT*5+#XT/2) |
#N<6 |
7 |
#W-#W*#cos(#XT*6) |
-#W*#sin(#XT*6) |
0 |
0 |
0 |
#toDegrees(#XT*6+#XT/2) |
#N<7 |
8 |
#W-#W*#cos(#XT*7) |
-#W*#sin(#XT*7) |
0 |
0 |
0 |
#toDegrees(#XT*7+#XT/2) |
#N<8 |
9 |
#W-#W*#cos(#XT*8) |
-#W*#sin(#XT*8) |
0 |
0 |
0 |
#toDegrees(#XT*8+#XT/2) |
#N<9 |
10 |
#W-#W*#cos(#XT*9) |
-#W*#sin(#XT*9) |
0 |
0 |
0 |
#toDegrees(#XT*9+#XT/2) |
#N<10 |
5. 新建普通家具,调用栅格组
5.1 修改基础变量
宽度W的最大值计算如下:
因为该做法的栅格数量最大值为100根,即N的最大值为100,可以把N组间隔(JG)与栅格宽(SG_W)近似看为四分之一的圆弧长,即3.14*R/2=N*(SG_W+JG),R=W,对以上式子进行改写,得到最大W为:#round(200/3.14*(#SG_W+#JG))。
5.2 添加自定义变量
因为能放下多少栅格数量(N)是由当前的SG_W(栅格宽)、JG(间隔)、W(宽度)共同决定的,因此需要用公式计算出在当前情况下栅格数量N。计算思路如下,因为N组间隔(JG)与栅格宽(SG_W)可以近似看为四分之一的圆弧长,即3.1415*R/2=N*(SG_W+JG),R=W,通过改写可得N=#floor(3.1415*#W/(#JG+#SG_W)/2.0)。
5.3 在半成品库调用栅格组,并关联参数
- 位置X、位置Y、旋转Z:栅格组位置X、位置Y、旋转Z的计算思路类似于单根栅格的计算思路,可参考单根栅格的计算思路及图片。
- 栅格数量、隐藏条件:要实现随着W的变化栅格组的数量也会相应改变,就需要把最大值(N=100)都做出来再进行隐藏。例,第二组栅格组的栅格数量为#N>=20?10:#N%10,意为当栅格数量(N)大于或等于20的时候,第二组栅格出现10根,否则就出现栅格数量除以10的余数根(%是对该式子进行求余数的计算,例如当N=23时,N/10=2余3,N%10=3),第二组栅格组的隐藏条件即为#N<=10,意为当栅格数量(N)小于或等于10时,第二组栅格不显示。
- 具体每个栅格组的参数如下:
第N组栅格 |
位置x |
位置y |
位置z |
旋转x |
旋转y |
旋转z |
栅格数量 |
抑制条件 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
#N>=10?10:#N%10 |
|
2 |
#W-#W*#cos(#XT*10) |
-#W*#sin(#XT*10) |
0 |
0 |
0 |
#toDegrees(#XT*10) |
#N>=20?10:#N%10 |
#N<=10 |
3 |
#W-#W*#cos(#XT*20) |
-#W*#sin(#XT*20) |
0 |
0 |
0 |
#toDegrees(#XT*20) |
#N>=30?10:#N%10 |
#N<=20 |
4 |
#W-#W*#cos(#XT*30) |
-#W*#sin(#XT*30) |
0 |
0 |
0 |
#toDegrees(#XT*30) |
#N>=40?10:#N%10 |
#N<=30 |
5 |
#W-#W*#cos(#XT*40) |
-#W*#sin(#XT*40) |
0 |
0 |
0 |
#toDegrees(#XT*40) |
#N>=50?10:#N%10 |
#N<=40 |
6 |
#W-#W*#cos(#XT*50) |
-#W*#sin(#XT*50) |
0 |
0 |
0 |
#toDegrees(#XT*50) |
#N>=60?10:#N%10 |
#N<=50 |
7 |
#W-#W*#cos(#XT*60) |
-#W*#sin(#XT*60) |
0 |
0 |
0 |
#toDegrees(#XT*60) |
#N>=70?10:#N%10 |
#N<=60 |
8 |
#W-#W*#cos(#XT*70) |
-#W*#sin(#XT*70) |
0 |
0 |
0 |
#toDegrees(#XT*70) |
#N>=80?10:#N%10 |
#N<=70 |
9 |
#W-#W*#cos(#XT*80) |
-#W*#sin(#XT*80) |
0 |
0 |
0 |
#toDegrees(#XT*80) |
#N>=90?10:#N%10 |
#N<=80 |
10 |
#W-#W*#cos(#XT*90) |
-#W*#sin(#XT*90) |
0 |
0 |
0 |
#toDegrees(#XT*90) |
#N>=100?10:#N%10 |
#N<=90 |
5.4 最后在半成品库调入圆弧背板、顶板、底板,就可以做出圆弧阵列的隔断效果。
具体参数如下:
6. 测试模型
6.1 分别更改变量参数的数值,检验模型是否有问题。
6.2 检验完毕后,将这些值恢复默认值。
7. 保存入库
点击右上角文件选择保存并入库,选择保存的子目录,并输入商品名称,点击保存。
-----------------------------------end-----------------------------------