一、功能介绍
常见问题:
- 在最原始的手工制图场景下,如上图标红的区域中,需要填写一些该定制柜订单的信息,包含订单信息、产品信息等,这部分内容都是由出图人员手工填写的,是一个繁琐、易出错的事情
功能优势:
- 在具备模型、方案、订单完整信息后,酷家乐可以通过获取相应的方案信息、模型属性之后自动填写右侧订单信息栏
自定义宏的概念:
- 通过获取相应的方案信息、模型属性之后自动填写右侧订单信息栏,这种基于对象属性的自动填充字段叫做宏
二、面向用户
商家用户且有“施工图管理”权限,有需要可以联系商家运营咨询
三、操作步骤
第一步:进入【施工图管理】,选择【图框库】,点击右上方【上传素材】可自行上传图框
第二步:对上传图框素材进行命名、设置打印规格、上传支持的图框文件,点击确定即上传成功
第三步:图框上传成功后,点击编辑,进入图框编辑界面
第四步:进入图框编辑界面后,在左侧图框配置中,提供了很多现成的宏可供使用
- 当现成的宏不满足时,可在【施工图设置-定制图纸设置】自行创建自定义宏;创建后,同样可在【素材库-图框库】的图框配置中使用
第五步:可以在一个图框中从可支持的宏的列表中拖入宏,形成一个宏文本标签,可放置到图框中合适的位置
四、计算逻辑
1、脚本支持的模型参数/变量
参数/变量 | 参数/变量名 | 类型 | 说明 |
---|---|---|---|
模型的参数 | |||
建模时模型上的参数 |
自定义变量 & 系统变量 PS:注意不支持报告变量、中间变量 写法为#变量引用名,例如#W1 |
|
|
真分类id |
#prodCatId |
string |
|
建模时模型上的可选值参数 |
#X_displayName (X为参数引用名) |
string |
可选值参数,可以取其可选值的展示名 |
#ancestorCatIds |
该模型所有父级模型真分类的集合(不包含自身) |
||
#topModel |
boolean |
判断该模型是否为顶层模型 |
|
建模时模型参数指向的商品(材质商品、轮廓商品、样式商品) |
#X_bgName |
string |
该参数指向的商品的商品名 |
#X_bgProductCode | 该参数指向的商品的产品编码 | ||
#X_bgModel | 该参数指向的商品的型号 | ||
模型商品的属性 | |||
模型-商品id |
#brandGoodId |
double |
如果看不到解密的商品id,可以这样写: #brandGoodId==#decrypt("3FO4GR47A455") |
模型-商品名称 |
#modelBgName |
string |
|
模型-型号 |
#modelBgModel |
string |
|
模型-产品编码 |
#modelBgProductCode |
string |
|
模型-商品的自定义编码 |
#bgCustomCode |
string |
|
模型-商品的自定义字段 |
#bgCustomField_XXX (XXX代表自定义信息的系统id) |
string |
|
商品自定义属性 |
所有商品自定义属性在宏中使用时,均应写为:#param_biz_X X表示了自定义属性的“属性编码” 例如上图,应写为:#param_biz_HHH |
||
模型输出的参数 | |||
产品编号 |
#installationCode |
string |
指的是模型的产品编号 |
材质商品的属性 | |||
材质-商品名称 |
#materialBgName |
string |
指的是模型系统变量#CZ对应的商品参数 |
材质-型号 |
#materialBgModel |
string |
|
材质-产品编码 |
#materialBgProductCode |
string |
|
工具中产生的参数 | |||
模型-展示名称 |
#modelName |
string |
|
商品备注 |
#remark |
string |
|
类型 |
关键字 |
举例 |
---|---|---|
字符串 | "" |
#X1 == “ABC” |
关系运算符 |
==, !=,< , > , >=, <= |
#H > 1000 |
逻辑运算符 |
and表示且 ,or 表示或,! 表示非 |
#W == 18.5 or #W == 21.5 |
三目运算符 | ?: | #LD > 1000 ? "吊柜" :“地柜” |
2、筛选条件
- 自定义宏的意义在于输出模型的信息,那么计算一个宏,要用哪些模型进行计算?这一点需要用到筛选条件控制
- 当范围内(范围的含义见下文)的模型符合筛选条件时(模型参数用筛选条件脚本判断结果为true),才会输出该模型的信息
注意:此时模型的各个层级都会参与脚本计算,例如一个顶层模型为【通用地柜】,但同时其下又包含一个【通用地柜】子模型,那么他们都会参与脚本计算,都有可能被筛选!
1)以图纸为范围筛选
此时宏的筛选维度是“图纸”,一张图纸上有多个视图,每个视图对应多个模型;进而可得出图纸所包含的模型范围;通过筛选条件,在一张图纸包含的模型中,筛选出所需计算的部分
2)以方案为范围筛选
此时宏的筛选维度是“整个方案”;通过筛选条件,在这个方案的所有模型中,筛选出所需计算的部分;需勾选【全方案获取】
3)支持的计算函数
除了脚本支持的模型参数/变量之外【筛选条件】还支持以下函数
函数名 |
含义 |
示例 |
输出类型 |
---|---|---|---|
#contains(#具体模型字段, "包含内容") |
模型的什么字段 包含 “” | #contains(#modelBgName, “板") | boolean |
#containsAncestorCatIds({,}) |
模型的所有父模型中,包含列表中的真分类的模型(特殊实现,一般用不到) |
#containsAncestorCatIds({500, 498}) |
boolean |
#containsElement({条件1,条件2}, String) |
包含于列表中 |
#containsElement({123, 2345}, #prodCatId) |
boolean |
#left(#参数,num) #right(#参数,num) #mid(#参数,num) |
判断参数的第一位、中位、最后一位,等于\不等于\大于\小于数字 |
|
boolean |
#combinationSubModel | 是否是组合下的顶层模型 | boolean | |
#topModel | 是否是顶层模型 | boolean |
3、输出字段
筛选出所需模型后,通过输出字段确定希望输出模型的哪些信息,可使用脚本支持的模型参数/变量
4、输出方式
确定了要输出模型的哪些信息后,通过输出方式控制最终结果的样式;
仅支持输出字段所获取的模型参数/变量,以及以下函数:
- 例如模型同时有#W、#D、#H,输出字段只取了#W,那么输出方式就无法针对#D和#H做任何计算
函数名 |
含义 |
示例 |
---|---|---|
#style( 是否统计数量, 输出字段是否输出) |
对字符串结果进行样式表达,可选是否计数以及是否输出名称 |
|
#styleSeparator(是否统计数量, 输出字段是否输出,"\n") | 对字符串结果进行样式表达,可选是否计数以及是否输出名称,\n表示了对结果换行; |
|
#combine(规则1, 规则2,.......) |
多种规则结果,合并输出。 支持多个规则合并 |
|
#styleOrdinal( 整数) |
取出现次数第 n 多的内容 |
|
#round | 数值型参数四舍五入取整 | #round(#W) |
#deRoundToString(double, int) |
四舍五入取第二个参数作为保留小数位数的结果,如果保留的小数为 0 则会被删除(比如 500.0 保留一位小数结果为 500) 注意返回值为 String,结果无法用于数值计算,需要数值计算请用下面的 deRound 仅到比如要保留一位小数,对于500.0这种情况需要去除.0才考虑使用。 |
#deRoundToString(#W, 1) |
#deRound(double, int) | 四舍五入取第二个参数作为保留小数位数的结果,与编辑器函数同名 | #deRound(#W, 1) |
#styleCount(true, true,String, String) | #styleCount( 是否统计数量, 输出字段是否输出,连接输出字段和数量的字符, 每一项的单位) | #styleCount(true, true, "=", "个") |
5、排序依据
当输出了多个模型的多组数据时,如不控制排序,它们会按照模型id的顺序来排,基本就是乱序
如需控制顺序,应在排序依据处,输入希望以模型的哪个参数为参考,控制其先后顺序
函数名 | 含义 | 示例 |
---|---|---|
sort("#排序字段",排序方式) | 不带分隔符的排序,排序方式(0升序,1降序) |
排序字段的参数名为:#PX 参数实际内容为:1、2、3 #sort(“#PX”,0) 最终结果:1、2、3 |
sortSeparator("#排序字段",排序方式,'排序分隔符') |
带分隔符的排序,排序方式(0升序,1降序) ‘排序分隔符’:需手动告诉算法,数据中哪个是分隔符 |
排序字段的参数名为:#PX 参数实际内容为:4_1、4_2、4_3、5_1 #sort(“#PX”,0,'_') 最终结果:4_1、4_2、4_3、5_1 |
6、自定义宏支持不去重输出
施工图设置 - 定制图纸设置 - 宏设置,增加输出方式函数:#styleDuplicate("连接符")
例如:#styleDuplicate("\n") 表示不去重输出并换行