4.1.3【参数化】弧形栅格阵列的实现方式-欧陆娱乐app下载

本文阅读时长:16分钟更新于2024-08-28

面向用户

商家管理账号

定义



弧形栅格,如左上图所示,实现半径、间距、栅格宽度可调。

一. 功能入口

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,意为当栅格数量(n)大于或等于20的时候,第二组栅格出现10根,否则就出现栅格数量除以10的余数根(%是对该式子进行求余数的计算,例如当n=23时,n/10=2余3,n=3),第二组栅格组的隐藏条件即为#n<=10,意为当栅格数量(n)小于或等于10时,第二组栅格不显示。
  • 具体每个栅格组的参数如下:

第n组栅格

位置x

位置y

位置z

旋转x

旋转y

旋转z

栅格数量

抑制条件

1

0

0

0

0

0

0

#n>=10?10:#n


2

#w-#w*#cos(#xt*10)

-#w*#sin(#xt*10)

0

0

0

#todegrees(#xt*10)

#n>=20?10:#n

#n<=10

3

#w-#w*#cos(#xt*20)

-#w*#sin(#xt*20)

0

0

0

#todegrees(#xt*20)

#n>=30?10:#n

#n<=20

4

#w-#w*#cos(#xt*30)

-#w*#sin(#xt*30)

0

0

0

#todegrees(#xt*30)

#n>=40?10:#n

#n<=30

5

#w-#w*#cos(#xt*40)

-#w*#sin(#xt*40)

0

0

0

#todegrees(#xt*40)

#n>=50?10:#n

#n<=40

6

#w-#w*#cos(#xt*50)

-#w*#sin(#xt*50)

0

0

0

#todegrees(#xt*50)

#n>=60?10:#n

#n<=50

7

#w-#w*#cos(#xt*60)

-#w*#sin(#xt*60)

0

0

0

#todegrees(#xt*60)

#n>=70?10:#n

#n<=60

8

#w-#w*#cos(#xt*70)

-#w*#sin(#xt*70)

0

0

0

#todegrees(#xt*70)

#n>=80?10:#n

#n<=70

9

#w-#w*#cos(#xt*80)

-#w*#sin(#xt*80)

0

0

0

#todegrees(#xt*80)

#n>=90?10:#n

#n<=80

10

#w-#w*#cos(#xt*90)

-#w*#sin(#xt*90)

0

0

0

#todegrees(#xt*90)

#n>=100?10:#n

#n<=90

5.4 最后在半成品库调入圆弧背板、顶板、底板,就可以做出圆弧阵列的隔断效果。

具体参数如下:

6. 测试模型

6.1 分别更改变量参数的数值,检验模型是否有问题。

6.2 检验完毕后,将这些值恢复默认值。

7. 保存入库

   点击右上角文件选择保存并入库,选择保存的子目录,并输入商品名称,点击保存。


可以随时点赞啦
网站地图