【全屋定制】组件适配传参配置教程-欧陆娱乐app下载

本文阅读时长:24分钟更新于2022-08-30

一、功能介绍

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')


可以随时点赞啦
网站地图