一、功能介绍
常见问题:
- 在最原始的手工制图场景下,如上图标红的区域中,需要填写一些该定制柜订单的信息,包含订单信息、产品信息等,这部分内容都是由出图人员手工填写的,是一个繁琐、易出错的事情
功能优势:
- 在具备模型、方案、订单完整信息后,酷家乐可以通过获取相应的方案信息、模型属性之后自动填写右侧订单信息栏
自定义宏的概念:
- 通过获取相应的方案信息、模型属性之后自动填写右侧订单信息栏,这种基于对象属性的自动填充字段叫做宏
二、面向用户
商家用户且有“施工图管理”权限,有需要可以联系商家运营咨询
三、操作步骤
第一步:进入【施工图管理】,选择【图框库】,点击右上方【上传素材】可自行上传图框
第二步:对上传图框素材进行命名、设置打印规格、上传支持的图框文件,点击确定即上传成功
第三步:图框上传成功后,点击编辑,进入图框编辑界面
第四步:进入图框编辑界面后,在左侧图框配置中,提供了很多现成的宏可供使用
- 当现成的宏不满足时,可在【施工图设置-定制图纸设置】自行创建自定义宏;创建后,同样可在【素材库-图框库】的图框配置中使用
第五步:可以在一个图框中从可支持的宏的列表中拖入宏,形成一个宏文本标签,可放置到图框中合适的位置
四、计算逻辑
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") 表示不去重输出并换行