【全屋定制】组件适配传参配置教程

更新时间:2022-08-30 10:43:32

59674636
我的收藏

一、功能介绍

1.1.什么是组件适配传参

以前:模型上原生板件之间或者和柜体产生参数关联可以通过编辑器实现,但在设计场景中,通过组件拖入的非原生板件则无法和柜体或柜体板件产生参数关联。如下图:

简单来说,一个组件拖入柜体,需要和柜体以及柜体上的其他板件产生参数关联。

举例:

  • 拖入的门板需要识别侧板厚度改变铰链型号;
  • 拖入的层板需要识别背板厚度改变层板打孔规则;
  • 拖入的灯带需要在顶板上开槽;
  • 拖入层板判断左侧是否有板件改变层板上左侧的封边打孔值等

组件适配传参即是通过补足上图中红线的参数传递路线,解决上述例子。

1.2.工作原理

作为配置人员,需要一定程度理解原理,才能更好地配置传参规则。

组件传参需要配置传参规则(脚本),这个规则是绑定在组件适配规则上的。因此传参规则的触发和生效都是基于某一条适配规则而来。当拖入组件触发了组件适配规则,则会执行相应的传参规则。

 

 


二、开放对象

有功能权限的商家用户,需联系商家运营开通。

三、功能路径及操作步骤

目前传参规则是通过写脚本的方式完成,并绑定在适配规则上。


3.1. 入口:在新建和编辑组件适配规则时,可以添加传参规则,进入脚本编辑页面。



3.2. 脚本规范:


{

"condition"//条件判断,满足某种条件执行此脚本

"paramUpdateList": [

        {

            "model""SOURCE_MODEL",//定义需赋值参数的板件(规范见下文)

            "paramName": W",//定义板件上需赋值的参数

            "value""100" //赋值,支持条件表达式判断

        }

    ]

}


注:脚本分为两大内容

  1. condition:规则执行的前置条件
  2. paramUpdateList:执行参数的赋值


3.3. 对象定义语法

因为规则的执行是基于内空适配的,因此可定义的对象包括适配组件本体、内空6个面的板件以及适配柜体共8个对象。具体定义规范如下:

  /** 待适配模型(即组件) = 'SOURCE_MODEL'

  /** 适配的模型(即柜体)= 'TARGET_MODEL'

  /** 内空上方模型= 'UP_MODEL'

  /** 内空下方模型= 'DOWN_MODEL'

  /** 内空左侧模型 = 'LEFT_MODEL'

  /** 内空右侧模型 = 'RIGHT_MODEL'

  /** 内空前面模型 = 'FRONT_MODEL'

  /** 内空后面模型 = 'BACK_MODEL'

3.4. 语法:

  • @预置变量.参数名(大小写敏感)
  • @预置变量 == @预置变量 / @预置变量 != @预置变量

示例: 

  • @SOURCE_MODEL.W >= 400
  • @FRONT_MODEL != @SOURCE_MODEL


四、配置效果示例:

配置内容:


{

  "condition""true",        //默认执行此规则

  "paramUpdateList": [

    {

      "model""SOURCE_MODEL",

      "paramName""DBB",          //定位层板上的断背板参数DBB

      "value""@BACK_MODEL == null?1:0"          //判断内空后方时候是否有板件,若没有背板则赋值断背板参数DBB结果值驱动为1

    }

  ]

}


配置方式及效果的完整演示GIF:



五、脚本示例

示例1:门上铰链型号变量跟随装铰链侧的板件厚度变化

{

  "condition""@SOURCE_MODEL.openDirection == 0",  //判断门板开门方向为左开时执行该规则

  "paramUpdateList": [

    {

      "model""SOURCE_MODEL",

      "paramName""JLXH",                     //定位门板上的铰链型号参数

      "value""@LEFT_MODEL.W == 18?1:2"       //判断内空左侧板件的厚度给'JLXH'赋不同的值

    }

  ]

}

备注:也可以不在condition里判断开门方向,统一在value的时候判断,合并多条规则。

示例2:层板判断后方是否有板件,改变自身是否断背板的参数

{

  "condition""true",        //默认执行此规则

  "paramUpdateList": [

    {

      "model""SOURCE_MODEL",

      "paramName""DBB",          //定位层板上的断背板参数

      "value""@BACK_MODEL == null?1:0"          //判断内空后方时候有板件,若为空则赋值断背板参数为1

    }

  ]

}

示例3:层板四边打孔参数识别是否和四周其他板件接触,若不接触则修改打孔参数

{

"condition""true",                 //默认执行此规则

"paramUpdateList": [

  {

    "model""SOURCE_MODEL",

    "paramName""ZCDK",             //定位层板上左侧打孔的参数

    "value""@LEFT_MODEL == null?0:1"     //判断左侧是否有板件,若无则修改打孔参数为不打-0

  }

]

}

示例4:灯带拖上侧板,侧板是否开灯槽参数修改为是

{

"condition""true",     //默认执行此规则

"paramUpdateList": [

  {

    "model""LEFT_MODEL",

    "paramName""DC",         //定位左侧板上的灯槽参数

    "value""1"            //将参数改为1(是)

  }

]

}

六、函数新增(滚动更新):

1.锁定方向

字段名为:lockDirection,可设值六个方向,具体为:LEFT、RIGHT、UP、DOWN、FRONT、BACK。

注:

(1)修改W只能锁LEFT、RIGHT,修改D只能锁FRONT、BACK,修改H只能锁UP、DOWN

(2)这里的方向是指参数化编辑器里建模的方向,不考虑模型被旋转的场景

{

    "condition""true",

    "paramUpdateList": [{

            "model""SOURCE_MODEL",

            "paramName""D",

            "value""120",

            "lockDirection""FRONT"

        },

        {

            "model""SOURCE_MODEL",

            "paramName""W",

            "value""120",

            "lockDirection""LEFT"

        },

        {

            "model""SOURCE_MODEL",

            "paramName""H",

            "value""35",

            "lockDirection""UP"

        }

    ]

}



2.获取商品信息字段语法:

#productInfo(TARGET_MODEL, 'name')    名称:name,型号:productNumber,产品编码:brandGoodCode


3.判断是否真实接触:

函数名为isAdjoin,目前只支持判断SOURECE_MODEL和周边板件是否相邻。有两个入参,第一个必须是SOURECE_MODEL,第二个为周边model

{

  "condition""true",    

  "paramUpdateList": [

    {

      "model""SOURCE_MODEL",

      "paramName""materialBrandGoodId",       

      "value"" #isAdjoin(SOURECE_MODEL, LEFT_MODEL) ? 111111: 5217970"

    }

  ]

}


4.判断组件参数是否被手动修改过

#isParamModified(TARGET_MODEL, 'CZ')

#isParamModified(SOURCE_MODEL, 'materialBrandGoodId')


可以随时点赞啦