为您找到 “工具教程” 相关结果共 494

【酷家乐棚拍】优化吸附能力、新增企业库

模型库”的模型商品 根据用户账户权限进行判断,是否可见 三、帮助更新 帮助更新,包含以下新功能工具教程快捷键、鼠标指南意见反馈有奖调研加入交流群,反馈你的需求

【酷空间】视频教程传送门(持续更新)

内容简介 酷空间教学课程视频集合汇总,包含基础教程、工具教程、案例还原教程。 一、基础教程 1、操作必学教程 必备工具、操作口诀、快捷键使用及设计工具界面介绍 视频链接:https,=39d7cd941ee4808a38169c83ee57ad03 二、工具教程 1、手动打光 封闭空间(大型会议室)、展厅、超大办公空间手动灯光设计 视频链接:https://www.bilibili.com/video/BV12v4y1F7qS

模版中心—吊顶模版怎么玩出新花样?

【吊顶模版介绍】 吊顶模版是我们针对用户对吊顶设计场景需求提供的预设方案,吊顶模板可以让你快速体验硬装吊顶设计的各种功能,套用模版的空间设计只针对吊顶自定义编辑的一种方案设计; 【吊顶模版的使用价值】 快速上手酷家乐工具设计,并一键渲染出图; 吊顶自定义编辑再创作,节省其他创作成本; 结合自家产品套用模版产出方案,提升品牌落地影响力; 【吊顶模版工具操作演示】 吊顶模版的多种玩法 演示一:材质替换操作演示 第一步:新用户注册账号后首页顶部栏选择模版页面,选择吊顶模版进入后,任意选择一个模版点击图片; 第二步:点击免费使用模版进入工具界面后,顶面的吊顶我们可以用替换材质的形式进行微调修改下,所有材质我们可以换成任意颜色; 最后重点,详情可观看工具演示视频 演示二:吊顶样式修改再创作 第一步,新用户注册账号后首页顶部栏选择模版页面,选择吊顶模版进入后,任意选择一个模版; 第二步:点击免费使用模版进入工具界面后,顶面的吊顶我们点击吊顶自定义进行编辑,进入吊顶选择参考线让尺寸更精准,可以自由绘制吊顶样式,设置下吊高度; 。 第三步:从左侧栏选用不同的材质对吊顶铺贴材质或直接选用白色乳胶漆都很方便;顶部栏上格式刷可以增加铺贴速度;选择任意立面线点击左侧栏立面编辑铺贴同材质;贴完后保存退出硬装吊顶工具; 第四步:退出后看一下修改后吊顶的效果,点击顶部栏照相机图标渲染出图,进入渲染界面后左侧栏选择构图比例、渲染清晰度以及模版灯光选择开始渲染,最终效果图实现自己的设计结果; 最后详情:可观看工具演示视频。 【吊顶模版最后的渲染效果】

酷家乐工具帮助入口移至「右上角搜索」

消失,找不到工具教程等功能入口? A1:原 ”帮助“入口撤下,其下拉栏所包含的功能整合到新增搜索框下显示: Q2:  没有在顶栏右上角找到搜索帮助入口? A2: 目前该功能仅向部分场景开放,请确认

【全屋定制】对接精品库&工具教程汇总页

分类 小类 对应图文教程 一、新手入门 1.1、定制工具简介     如何进入定制设计? 【定制工具】全屋定制工具界面功能介绍 1.2、定制模型操作快速入门   【定制工具】如何快速拖入并摆放柜体? 【定制工具】用「快捷移动/摆放」调整柜体位置 【定制工具】如何调整柜体的吸附方式? 【定制工具】如何使用参数面板调整模型的参数尺寸? 【定制工具】如何将模型组合和解组? 【定制工具】组件使用说明 1.3、定制辅助设计能力入门 【定制工具】如何将模型进行多方向的模糊拉伸? 【定制工具】全局替换 【定制工具】用「内空设计」快速完成柜体内部空间布局 【定制工具】用「材质刷」快速更换模型材质 【定制工具】如何快速隐藏柜门? 1.4、设计技巧 【定制工具】设置你的个人设计偏好 【定制工具】用「定制快捷键」快速调用设计工具 1.5、定制出图报价 【定制图纸】「全屋家具/厨卫/门窗定制」空间图纸生成 【定制图纸】「全屋家具/厨卫/门窗定制」产品图纸生成 【定制图纸】「全屋家具/厨卫定制」标注图纸生成 【定制工具】JSON/XML数据导出 二、对接精品库模型相关 2.1、全屋定制目录介绍 【精品库全屋定制】类目说明 2.2、定制界面详解 【定制工具】全屋定制工具界面功能介绍 2.3、全屋定制柜类设计指导 常见操作说明(门板类): 【对接精品库】如何替换门板样式与材质? 【对接精品库】如何添加并精准切分门板? 【对接精品库】门板拉手如何删除及生成? 【对接精品库】门板铰链与层板冲突时应如何调整? 常见操作说明(组件类): 【对接精品库】如何在柜体内添加灯带层板? 【对接精品库】如何处理背板超出限制尺寸的报错问题? 【对接精品库】如何将单抽屉和组合抽屉拖放到柜体内? 【对接精品库】如何添加并调整背板厚度? 【对接精品库】如何调整背板拉条参数及内缩值? 常见操作说明(立柜类): 【对接精品库】如何调整不同柜体内的侧板结构? 【对接精品库】板件及柜体切角功能的操作说明 常见操作说明(墙板类): 【对接精品库】不同格栅墙板工艺如何在BOM拆单里配置? 三、常见操作汇总 3.1、材质相关 【对接精品库】材质如何正确替换?【对接精品库】材质纹理如何正确旋转? 3.2、门板相关 【对接精品库】如何替换门板样式与材质? 【对接精品库】如何添加并精准切分门板? 【对接精品库】门板拉手如何删除及生成? 【对接精品库】门板铰链与层板冲突时应如何调整? 【对接精品库】门板想要挖洞如何实现? 【对接精品库】门板做异形的手动加工应如何规范备注? 【对接精品库】门板类型及注意事项介绍 【对接精品库】门板均分时如何实现缝隙一致? 【对接精品库】门铰如何调整? 【对接精品库】门板如何调整掩盖关系? 【对接精品库】门板切分大于2扇时,如何自动带出门铰安装板? 3.3、抽屉相关 【对接精品库】格子抽如何设置格子数? 【对接精品库】45°斜边免拉抽面的拉手位置如何调整? 【对接精品库】竖向/横向均分抽屉如何快速绘制? 【对接精品库】抽屉如何添加抽封? 【对接精品库】抽屉如何加锁洞? 【对接精品库】免拉抽屉如何绘制? 3.4、模型结构相关 【对接精品库】如何修改柜体结构? 【对接精品库】如何调整不同柜体内的侧板结构? 3.5、组件相关 【对接精品库】双拼背板实现方式 【对接精品库】异形组件选择&放置方式 【对接精品库】板件如何延伸? 【对接精品库】如何在柜体内添加灯带层板? 【对接精品库】如何处理背板超出限制尺寸的报错问题? 【对接精品库】如何将单抽屉和组合抽屉拖放到柜体内? 【对接精品库】如何添加并调整背板厚度? 【对接精品库】如何调整背板拉条参数及内缩值? 3.6、五金相关 【对接精品库】透气孔添加方式 【对接精品库】鞋架添加方式 【对接精品库】裤架添加方式 【对接精品库】衣物篮添加方式 【对接精品库】灯带添加方式 【对接精品库】衣通添加方式 3.7、异形相关 【对接精品库】板件编辑及柜体切角功能的操作说明

照明仿真工具新手教程1—建空间

方式1:同步酷家乐/酷空间/别墅设计方案 针对人群:自己会制作(酷家乐/酷空间/别墅设计)方案的设计师 操作步骤: 登录自己的照明仿真工具账号(同酷家乐账号)。 照明仿真工具主页面网址https://www.koolux.com,推荐使用谷歌浏览器。 点击新建设计 点击更多,选择需要同步的方案,也可以在右上角搜索方案名称 方式2:通过方案链接查找 针对人群:上下游合作伙伴使用(酷家乐/酷空间/别墅设计)制作了空间场景的设计师 操作步骤: 登录自己的照明仿真工具账号(同酷家乐账号)。 照明仿真工具主页面网址www.koolux.com,推荐使用谷歌浏览器。 点击新增同步方案 3. 点击链接查找,在对话框输入酷家乐/酷空间/别墅设计方案链接。 方式3:上传3DsMAX、SketchUp模型文件 针对人群:拥有上下游合作伙伴提供的3DsMAX、SketchUp模型文件的设计师 1、通过CooVerse同步场景 操作步骤: 点此查看 2、上传到酷家乐: 3DsMAX:3DsMAX模型上传要求 SketchUp:SketchUp模型上传要求 操作步骤: 将3DsMAX、SketchUp模型上传到酷家乐账号。点此查看教程 点击右上角开始设计,点击自由绘制。 在我的—上传/建模里找到刚刚上传好的模型。 将模型放入中间画布,点击保存方案。 打开照明仿真工具——增同步方案——从酷家乐/酷空间/别墅设计选择,找到刚刚保存的方案点击导入。 操作视频演示: 方式4:使用酷家乐/酷空间/别墅设计自由绘制场景 针对人群:没有上下游伙伴提供的模型,需要自己搭建场景的设计师 如果你是第一次接触酷家乐,可先阅读 了解酷家乐 操作步骤: 点击新建设计 点击画户型(可以绘制简单矩形空间) 如果需要复杂室内空间可以点击去家装设计/去工装设计/去别墅设计 酷家乐创建户型教程——点此查看教程 酷家乐摆放模型教程——点此查看教程 酷空间教程——酷空间基础教程链接 别墅设计教程——别墅设计基础教程 打开KooLux导入刚刚绘制的酷家乐/酷空间/别墅设计场景——查看方式一 KooLux独立官网:www.koolux.com

云设计5.0FAQ

的方案是否可以用4.0工具打开? 不可以,5.0方案只能用5.0工具打开。 Q:是否有5.0工具教程? 您好,您可以在帮助中心-云设计5.0专区了解最新的教程 5.0新增功能教程:https

【云设计工具】Tripo3D AI插件新手使用教程

一、功能介绍 酷家乐应用市场迎来首个图生模型AI插件——Tripo3D AI插件, 为了更好地服务报名用户,本文会为您详细讲解AI插件如何使用,阅读文章前建议先查看视频教程~ 二、面向用户 所有用户,逐步开放中 三、操作步骤 1、安装Tripo3D AI插件 Tripo: 点击链接安装Tripo3D AI插件 2、入口 打开任意方案或开始设计进入工具,选择应用市场,点击Tripo3D AI 3、用Tripo3D AI图生模型 有三种方式可以图生模型 方式一:文生模型 通过输入文案关键词进行模型生成 生成效果如下: 方式二:单图生模型 通过输入单张图进行模型生成 按照要求的图片格式,选择一张家具单图上传 生成效果如下: 方式三:多张图(多视角)生模型 支持上传多张图视角进行模型生成 选择一个酷家乐定制手办上传 生成效果如下: 4、酷家乐模型上传 选择已完成的模型→下载模型→点击找素材→上传模型→3D模型 5、AI模型投稿 有两种方式可以进行AI模型投稿 方式一:提供个人ID 方式二:模型投稿 选择我的素材,点击右上角模型交易 设置模型包的名称、价格和类别,设置完成点击投稿即可 最后,模型审核将会在7个工作日内审核完毕,请耐心等待官方审核吧~

NCQL 教程

注意,您正在阅读的文档属于设计的早期阶段,不保证功能的稳定性,也不保证功能后续的发展方向! 一、功能介绍 1、功能简介 NCQL是一款用于分析模型数据,分析模型是否满足某种特征的查询语言。它采用和参数化编辑器相似的公式语法,任何熟悉参数化建模的用户,都可以轻松上手使用NCQL。NCQL不仅可以识别模型有哪些特征,还能将相关联的数据记录下来,以方便地定位模型及其有问题的部分。 一段 NCQL 脚本,在本质上,是一个布尔(Bool)表达式,它接收一个模型的数据,判断模型是否满足某类特征。如果模型满足某类特征,则将它记录下来。 NCQL 集成开发环境教程:点击查看 2、什么是NCQL? 1)简单的NCQL,如下图: 需求:找到真分类为背板(id 为 785),且参数D 不在 18~25之间的模型 prodCatId == 785 AND (#D < 18 OR #D > 25)  这条例子为我们展示了,NCQL可以使用与建模公式非常相似的表达式语法,来实现模型特征的分析。 2)复杂的NCQL,如下图: 需求:寻找子部件尺寸超限的模型 // 寻找部件尺寸默认状态下超限的模型 findAnyOf subModels { findAnyOf parameters {         allTrue { name == "W" || name == "D" || name == "H" // parameter 的方法,用于判断           overLimited()        } -> mark "尺寸超限" } } 二、面向用户 全体参数化编辑器建模的用户 三、操作步骤 1、数据类型 1)基本类型 对于参数的值,NCQL 提供和建模相同的数据类型。其中常用的有以下几种: 类型 名称 解释 float 浮点数  可以为小数的数字,符合 IEEE 754 浮点数标准,可以用于数学运算。 同建模的浮点数类型。 int 整数 整数,不允许有小数。可以用于数学运算。 同建模的整数类型 string 字符串 可以表示一组任意的字符,常用于型号、编码。 同建模的字符串类型 bool 布尔值 可以表示是(true) 或 否(false),可以进行布尔运算(与AND、或OR、非 NOT)。 同建模的布尔类型。 booleanlist 多布尔 可以表示多个布尔值的组合 。只能用内置函数来操作。 同建模的多布尔类型。 material 材质 表示对材质商品的引用。可以读取材质商品的属性 同建模的材质类型。 shape 轮廓 表示对轮廓商品的引用。可以读取材质商品的属性 同建模的轮廓类型。 style 样式 表示对模型商品的引用,可以读取模型商品的属性 同建模的样式类型。 List<?> 列表 List 用来表示一组相同类型的数据。在建模中虽然无法直接使用这种类型,但参数是一个列表,子模型也是一个列表。 null 空 null本身不属于任何类型,它表示不存在。如,模型上没有KK变量的话, #KK 的值就为 null 2)复杂类型 如果只有基本数据类型就好了,但可惜,真实的世界并不是只有像原子这样的微观粒子,而是由不同种类的微观粒子组合成新的个体,再不断向上组合的。比如我们人类是由不同种类的细胞组成的,而细胞又是由不同的分子组成的,分子又是由不同的原子组成的。 和真实的世界类似,模型的结构也是复杂的,由多个部分组成。一个父模型大致可以看作是由一组变量、一组子模型、一组属性组成的,而一个子模型,又是由一组变量、一组属性组成的。NCQL 聚焦于参数化模型编辑器中能看到的模型信息,因此子模型的子模型,不会在这里出现。 完整的数据结构文档,可以参考在线代码编辑器底部栏。 3)理解参数的表达式、当前值、计算值 在模型数据结构文档中,当你阅读到参数(Parameter)的数据结构时,可能会感到疑惑,总共有三个字段:value、parsedValue、expression用于描述参数的值。这是因为一个参数化模型,在不同的使用场景,有不同的数据表现。 后台建模时,建模师会编写表达式(expression),定义参数之间的计算逻辑和约束关系。 而到了设计工具中,模型会被“实例化”,模型上的表达式将会被计算为一个有类型信息的计算值(parsedValue)。 同时,这个计算值会被转化为字符串,作为参数的当前值(value)。 一个示例如下图所示:在建模中,参数W和D都是公式类型,建模师编写的表达式分别为"300 + 400.5" 和 "#W + 1",而模型实例化后,这两个表达式分别被计算为两个 float 类型的值: 700.5 和 701.5。这两个值被放置到 parsedValue 字段。这两个值被转化为 "700.5" 和 "701.5" ,放置到 value 字段中。 以 W 为例,将这些数据组合到一个 Parameter 中,组合后的数据如下(其他字段省略): { "name": "W", "type": "float", "expression": "300 + 400.5", "parsedValue": 700.5, "value": "700.5" } 4)编写安全的 NCQL 模型数据中,大部分可以直接访问到的字段,类型都在文档中有明确的声明。但唯独参数的 parsedValue 是什么类型,我们是无法提前分析得知的。 在 name.contains('万能柜') 这条表达式中,我们通过文档得知模型的 name 字段,类型是字符串,因此我们可以安全地调用 contains 方法,不用担心是否写错。 虽然参数的计算值是有可能是任意类型,但是有计算值的地方,一般都有一个 type 字段来表示这个 parsedValue 的类型,你可以通过读取 type字段来获取参数类型。 在以下的案例中,展示了先获取参数的类型,再判断参数的计算值是否大于1000。(此案例中表达式 "." 的语法,在下文 表达式 章节会讲解)。 // 假设有一个叫做 A 的变量,表示某个 FParentParameter #A.type == "float" && #A.parsedValue > 1000 2、变量 1)NCQL 的和模型的建模表达式非常像,在建模中,你可以通过 '#' 读取各种数据,如 "#W" 代表读取参数W的值。在NCQL中,我们同样支持这种写法,并把这些可以使用 '#' 读取的数据,称作变量。变量有变量名和变量值。为了方便使用,系统会预置一些变量: 变量名:model,变量值:当前查询的主体,即当前查询的模型。 当前模型的所有参数,都会作为一个变量,预置到查询环境中。 对于每个参数来说,变量名:参数名,变量值:参数的计算值(parsedValue)。 2)假设有以下模型,有 W、D、H、materialBrandGoodId 四个参数,则系统内置的变量有: model,变量值:当前查询的模型 FParentModel; W,变量值:当前查询的模型参数 W 的计算值 parsedValue; D,变量值:当前查询的模型参数 D 的计算值; H,变量值:当前查询的模型参数 H 的计算值; materialBrandGoodId,变量值:当前查询的模型参数 materialBrandGoodId 的计算值。 需要注意的是,由于parsedValue的类型不确定性,除非你非常确定某个参数的类型(如W、D、H 肯定是float类型),请谨慎直接使用这些变量。 3、注释 NCQL 支持注释,注释就是对 NCQL 的解释和说明,其目的是让你能够更加轻松地阅读、编写NCQL。注释不会被 NCQL执行器识别,不会影响到 NCQL 执行器的工作流程。 语法定义:以双斜杠 “//”开头,到一行的结尾,如下图: // 这一行是注释,不会被NCQL执行 #W > 6000 // 行末的这部分也是注释,同样不会被执行 4、基于建模公式扩展的表达式语法 1)NCQL 的表达式,扩展自参数化建模公式语法。如: #W + #D < 1000,是一个布尔类型的表达式,含义为判断模型参数 W 和 D 的和是否小于1000,计算结果为 true 或 false; #W + #D + 1.0 是一个浮点数类型的表达式,含义为计算模型参数 W 和 D 的和,并加上 1.0,计算结果为浮点数。 2)与参数化建模的公式相同的是,NCQL 使用#变量名 来引用当前上下文中可用的变量,用 #函数名(参数1, 参数2, ...其余参数) 来调用函数。 3)与参数化建模不同的是,NCQL 的表达式进行了一些扩展,允许使用以下更高级的特性: 可以使用 字段名 来获取某个变量的的字段值。如: #model.prodCatId == 735 来判断 model 变量的 prodCatId 是否为 735 #model.name == '万能柜'来判断 model 变量的 name 是否为 '万能柜' 在已知类型的变量上,可以调用变量支持的方法。如: #model.getParamValue('W') ,表示调用 model 变量的 getParamValue 方法,并传入参数 'W' #str.contains('a') 表示调用 str 变量的 contains 方法,并传入参数 'a'。 4)具体哪些类型,有哪些方法可用,见各个数据类型的文档。 需求一:找到真分类为999,并且参数W、D、H中有任意一个大于1000的模型 参考答案如下: #model.prodCatId == 999 AND (#W > 1000 OR #D > 1000 OR #H > 1000) 需求二:找到有WLH变量,并且WLH是整数类型的模型 参考答案如下: #model.paramType("WLH") == "int" 需求三:找到名称等于 "万能柜",或名称包含 "下柜" 的模型 参考答案如下: #model.name.contains("下柜") OR #model.name == "万能柜" 5、查询主体 1)上述的例子中,读取模型上的字段,或调用模型的方法,都需要指定前缀 “#model.xxx" 。有没有一种办法,能简化这些表达式呢? 答案是 查询主体。在NCQL中,每一行表达式都会作用一个查询主体,查询主体默认为 model。 2)你可以直接省略前缀,来读取当前查询主体上的字段。下图展示了一个示例的模型数据,以及三组含义相同的表达式: 3)虽然使用基于查询主体的省略表达式,可以让NCQL变得更加简洁易写,但需要注意的是,查询主体增加了理解成本,如表达式 “name” 是读取当前查询主体的name字段,而表达式 “#name” 是读取名为name的变量。并且查询主体可能会发生切换(见下文的”子查询块“),因此在使用时,需要更加小心。 6、查询块 1)一般而言,一条查询语句是完全不够分析模型的。我们需要将多条查询语句以灵活的方式进行组合。NCQL 中,查询块(queryBlock)就是用来实现查询语句的组合的。同时,过长的表达式难以阅读、编写与理解,使用查询块,可以优化查询语句的结构,使其更加清晰。 2)查询块本身返回一个bool值,它的语法如下,以匹配方式开头,以 { 和 } 包裹。 匹配方式 { 查询语句1 查询语句2 ... 查询块1 查询块2 ... 子查询块1 子查询块2 ... } 3)匹配模式包含以下三种: allTrue:当查询块中的所有查询,都为true时,查询块为true,否则为false anyTrue:当查询块中的任意一个查询为true时,查询块为true,否则为false noneTrue:当查询块中的所有查询都为false时,查询块为true,否则为false 4)查询块内部,可以由多种不同的查询自由组合而成: 查询语句:布尔类型的表达式,不能换行。 查询块:递归的查询方式,以匹配模式开头,以 { 和 } 包裹。即查询块内部,还可以继续嵌套查询块 子查询块:见 子查询块 章节。 5)假设有如下复杂的表达式: // 假设当前查询主体为某个参数 (paramTypeId == 1 && parsedValue < min && parsedValue > max)      // 注意,这里为阅读方便,在 OR 之前使用了换行      // 你在实际编写脚本的时候不能有这个换行    OR paramTypeId == 2 && !optionValues.contains(value); 可以使用查询块来优化,使其更加清晰:将表达式从 || 进行拆分,最后使用 anyTrue 来表示或的关系。 // 假设当前查询主体为某个参数 anyTrue { // 当参数的值类型为区间的时候,判断参数的值是否在区间内 paramTypeId == 1 && parsedValue < min && parsedValue > max // 当参数的值类型为可选的时候,判断参数的值是否在选项列表中 paramTypeId == 2 && !optionValues.contains(value) } 进一步优化,将内部的两条查询语句,可以从 && 进行拆分,使用 allTrue 来表示与的关系。 anyTrue {     allTrue { paramTypeId == 1 // 1为区间 parsedValue < min && parsedValue > max }   allTrue { paramTypeId == 2 // 2为可选 !optionValues.contains(value) } } 如果只是优化复杂的查询语句,那查询块的威力还不足以体现。真正需要它的地方,是下一节介绍的 子查询块 。 7、子查询块 子查询块同样返回一个布尔值,允许在查询块中深入模型结构,从而实现较为复杂的查询逻辑。子查询块大多数情况下,用于检查List字段,如模型的参数列表、子模型列表。 子查询块同样可以看成一条流水线,NCQL会尝试把List字段的每个元素,使用子查询块内部的判断条件进行检查。最终通过 查询方式,来确定最终返回的布尔值是什么。 1)子查询块 语法定义 子查询块的语法如下,以 查询方式 开头,以 { 和 } 包裹。包括可选的数据转换、可选的查询对象命名功能。 查询方式 要查询的字段 (as 查询对象命名)? { 查询块 } 2)子查询查询方式 其中最核心的部分,即为查询方式。查询方式包含以下四种: findAnyOf:用于查询对应多个值的字段,如参数列表。当列表中任意一个值满足查询条件时,查询块为true。 findAllOf:用于查询对应多个值的字段,如参数列表。当列表中所有值都满足查询条件时,查询块为Ttrue。 findNoneOf:用于查询对应多个值的字段,如参数列表。当列表中所有值都不满足查询条件时,查询块为true。 find:用于查询对应单个值的字段,如模型商品ID。当查询条件为true时,查询块为true。 这些查询方式的使用,如下图所示: 3)子查询切换查询主体 子查询的设计用意在于深入模型的结构,因此它能够自动切换当前查询的主体。如以下例子所示: 示例1:查询主体切换到某个参数 allTrue { prodCatId == 123 // 当前查询主体,还是model,因此 prodCatId 字段是模型的真分类 findAnyOf parameters { // 在 findAnyOf 触发的子查询块中,当前查询的主体是每一个参数         allTrue { // 此时,name字段表示参数的name字段,即参数名 name == "W" || name == "D" || name == "H" paramTypeId == 5 } } } 示例2:查询主体切换到某个子模型 如以下模型结构: 当查询语句如下时: allTrue { // 当前查询的主体是顶层柜体,name字段的值为 "柜体" name == "柜体" findAnyOf subModels { // 在 findAnyOf 触发的子查询块中,当前查询的主体是每一个子模型 // 因此,当判断到左门板时,当前查询的主体是左门板,name字段的值为 "左门板" // 当判断到右门板时,当前查询的主体是右门板,name字段的值为 "右门板" name == "左门板" } } 需求一:找到有子模型名称和父模型名称完全一样的模型 参考答案如下: findAnyOf subModels { name == #model.name } 需求二:找到子模型全部被抑制的模型 参考答案如下: findAllOf subModels { suppress == true } 需求三:找到有任意子模型,子模型叫做”背板“,并且该子模型有叫做 WLH的参数的模型 参考答案如下: findAnyOf subModels {    allTrue {        name == "背板" findAnyOf parameters { name == "WLH" } } } 需求四:找到有任意子模型被隐藏的模型 参考答案如下: findAnyOf subModes { ignore == true } 4)子查询查询对象命名 子查询在查询的过程中,还可以为当前正在查询的变量进行命名。在子查询块声明语句中,最后面加一个 as 变量名。如以下例子中,当前正在查询的参数,被命名为了p。因此 #p.paramTypeId == 5 和 paramTypeId == 5 是完全等价的两个表达式。 findAnyOf parameters as p { #p.paramTypeId == 5 OR paramTypeId == 5 } 它的意义在于,当你需要嵌套子查询时,由于查询主体发生了切换,在内层的子查询,是无法直接读取外层子查询主体的字段的。在这种情况下,我们可以为外层子查询的主体进行命名,这样我们可以实现更复杂的查询。 findAnyOf subModels as subModel {     allTrue {                // 此处,name表示subModel的name字段,和 #subModel.name 等价                    name == "下柜"                               findAnyOf parameters {                         // 这里name字段,是读取的当前查询主体(parameter)的name                         // 想读取外层子查询主体的name,需要使用 #subModel.name                         name == #subModel.name                     }         } } 需要注意的是,子查询块声明的变量,只在子查询块中有效。在此子查询块外的表达式,将无法使用这个变量。具体见章节变量作用域 需求:找到有子部件的位置,引用了子部件自身模型参数的模型 参考答案如下: findAnyOf subModels as m {     allTrue { refName.isNotBlank()   anyTrue { position.xExpression.contains("@self" + #m.refName) position.yExpression.contains("@self" + #m.refName) position.zExpression.contains("@self" + #m.refName) } } } 8、变量声明 1)变量声明属于高阶特性,大多数场景不需要使用变量声明。 2)NCQL 允许在查询脚本中的大部分位置定义变量,变量可以在表达式中使用。当变量声明语句出现在查询块中时,它只是简单地向环境中设置变量,不会影响当前查询块的判断。 3)定义变量的语法是: let 变量名 = 表达式 4)如: let a = #model.getParameter('W').min; let b = #model.getParameter('D').max; let c = #W + #D; let names = #listOf('W', 'D', 'H'); 9、变量作用域 1)NCQL 中声明的变量,作用域是当前查询块。如果在子查询块中声明的变量,则只在当前子查询块中生效。 2)在以下示例中,我们展示了 NCQL 中变量的作用域规则。变量 a 在外层查询块中被声明并赋值为 1,而变量 b 则在内层的 findAnyOf 查询块中被声明并赋值为 2。 allTrue { let a = 1; // 变量 a 在此作用域内可用 findAnyOf parameters { let b = 2; // 变量 b 仅在此子查询块内可用         allTrue { #a == 1 // 访问外层的变量 a,值为 1 #b == 2 // 访问内层的变量 b,值为 2 } } // 这里无法访问到 b 变量,因为 b 的作用域仅限于 findAnyOf 子查询块 #a == 1; // 仍然可以访问变量 a } 3)在这个示例中,#a 可以在外层查询块中被访问,而 b 只能在其声明的 findAnyOf 子查询块中使用。这说明了 NCQL 中变量的作用域是局部的,子查询块中的变量不会影响外层查询块的变量。 10、查询后操作 1)当你在NCQL中分析得到模型有某种特征时,你可能会希望记录一些信息。这时你可以使用mark语法来记录这些信息,这些信息将会出现在批量分析结果的 Excel 表中。 2)查询后操作的语法定义如下:它可以跟在布尔表达式、查询块、子查询后面。当这些查询块计算结果为 true 时,查询后操作中的指令将会被执行。 布尔表达式 -> mark 字符串或 Marker 函数 查询块 -> mark 字符串或 Marker 函数 子查询 -> mark 字符串或 Marker 函数 3)看下面的这段脚本。比如,当你发现某个部件的某个参数超出了限制,你希望记录下来这个参数的名称。这时,你可以使用 “查询后操作” 语法的 mark。如以下脚本所示,这里我们使用字符串拼接操作,记录了超限的部件名和参数名。 如果部件的尺寸确实超限了,那么 allTrue 后的 mark指令将会被执行。 分析结果的excel表中,会出现如“部件 【左侧板】的参数【宽度】超限”的文案。 // 寻找部件尺寸默认状态下超限的模型 findAnyOf subModels as s { findAnyOf parameters as p { allTrue { name == "W" || name == "D" || name == "H" overLimited() } -> mark "部件【"+#s.name+"】的参数【"+ #p.displayName+"】超限" } } 4)在 → mark 后,你可以简单地写字符串,也可以根据信息的严重程度,来使用不同的mark函数。我们提供了三种严重程度的mark: 信息(即 info):这代表简单地记录一些信息。你可以使用 mark -> 字符串 的语法来记录info。 警告(即 warn):这代表记录的信息是不太严重,但需要关注的问题,你可以使用 mark -> #warn(字符串) 的函数来记录警告。 错误(即 error):这代表记录的信息是严重的错误,必须尽快修复。你可以使用 mark -> #warn(字符串) 的函数来记录错误。 5)如下例子所示,如果部件商品被删除了,在设计工具中无法正常使用。所以这是一种严重的错误,使用 #error 函数来记录。 findAnyOf subModels { #relatedProduct(brandGoodId).deleted -> mark #error("部件被删除") }

【定制工具】新版风格约束前端工具使用教程

一、功能介绍 通过风格约束可以快速对设计方案中的模型进行风格相关参数的统一设置,如修改所有吊柜的门板花色,修改所有门板的把手样式等。同时,当他应用时,也会持续对后续新拖入场景中的模型产生上述效果。设计师只需要选择对应的风格模板,再针对模板内的风格项进行个性化编辑便可完成操作。因此,当需要统一对方案进行风格调整时,通过此功能可以快速实现全局整体的修改以及得到后续一致性的保证。 如果熟悉整体风格的用户可以认为这是整体风格的进阶版本,可以实现较整体风格更加个性化以及约束性更强的风格修改,更多后台配置相关信息可以参考后台配置教程。 二、面向用户 有对应功能权限的商家用户 三、使用说明 1.功能入口,通过定制顶部栏的风格约束设置打开风格模板的面板。可以通过搜索,快速查找需要的风格模板。 2.选择对应的风格模板可以直接应用,应用后会有应用成功的提示,作用范围取决于商家后台对于风格模板作用对象的配置 3.点开编辑可以对当前模板包含风格项的当前值进行调整,具体内容取决于商家后台的模板配置 4.应用前通过勾选是否应用到当前场景中的模型,会决定只对后续新拖入的模型生效还是包括方案中已有的模型 5.可以恢复默认按钮,重置对于模板和风格项的相关改动 6.在单房间模式下,只会应用当前房间的模型

公装案例还原教程汇总

一、中空售楼大厅设计 点我查看图文教程 二、酒店无边泳池设计 点我查看教程 三、中国之冠建筑造型 点我查看教程 四、别墅外景设计 点我查看教程 五、街道外景设计 点我查看教程 六、新中式茶餐厅设计 点我查看教程 七、会议室设计 点我查看教程 八、酒店客房设计 点我查看教程 九、奶茶店设计 点我查看教程 十、音乐教室设计 点我查看教程 十一、服装店设计 点我查看教程 十二、门头设计 点我查看教程 十三、便利店设计 点我查看教程 十四、微景观设计 点我查看教程 十五、水上小镇 点我查看教程 十六、理发店 点我查看教程 十七、庭院设计 点我查看教程 十八、婚庆店面门头 点我查看教程 十九、阳光房 点我查看教程 二十、茶室设计 点我查看教程 二十一、花园景观设计 点我查看教程 二十二、外景替换教程 点我查看教程 二十三、公装场景摆放亮点功能 点我查看教程

NCQL 集成开发环境教程

一、功能介绍 NCQL是一款用于分析模型数据,分析模型是否满足某种特征的查询语言,下文为描述“NCQL”的集成开发环境教程 二、面向用户 全体参数化编辑器建模的用户 三、操作步骤 1、入口 第一步:通过 模型检测功能入口 ,点击 “管理自定义特征”打开“ NCQL IDE” 第二步:点击弹窗中的“NCQL教程”,可以打开本页面 2、页面布局 1)IDE分为四个主要部分。分别是: 左侧的特征管理区:你可以查看系统特征,可以创建、修改自己的用户特征 中间上方的脚本编辑区:在左侧特征管理区中选中特征后,你可以在这个面板中修改这个特征的 NCQL 脚本,可以保存或另存为 右侧上方的错误信息区:当你编写的 NCQL 存在语法错误或漏洞时,这个面板会展示你脚本中的问题 下方的文档区:你可以在这里找到NCQL支持的所有数据类型、所有函数 2)IDE 的布局是可调节的,鼠标放到不同区块的交界时,你可以拖动边缘来调整各个部分的大小 3、特征管理区 1)特征分为系统特征和用户特征。其中,系统特征是不可编辑、不可删除的,对于系统脚本,你可以点开查看它的实现,或另存为一份到自己的用户特征里进行修改 2)对于用户特征,你可以随意添加、修改、删除 4、特征管理顶部栏 1)在特征管理顶部栏(下图中绿框的部分)中,你可以修改特征的名称(鼠标点击 ✅ 来保存名称,点击❎ 放弃修改名称) 2)修改脚本后,名称右边会出现橙色字样 “未保存的变更”,这代表着你修改了脚本但并没有保存它。此时可以点击右侧的“保存”按钮来保存当前的脚本,也可以点击“另存为”来创建一个新的 5、错误检测 1)你编写的脚本必须完全遵守NCQL的语法和数据结构的定义。如果你编写的脚本中存在语法错误或风险,IDE 会将有问题的地方标记下划线,鼠标放在下划线上,将会弹出气泡,告诉你错误在哪里 2)红色下划线代表严重错误,存在严重错误的时候,你将无法保存此脚本。橙色下划线代表警告,此时你可以保存脚本,但确实存在风险 3)错误信息同时也会出现在右侧的错误信息面板中 6、类型提示 第一步:在编写脚本的过程中,你会发现各种各样的“小灰框”,如下图所示: 第二步:这些小灰框是“类型提示”,它告诉你某个变量是什么类型。以图中的几个类型提示为例,它说明了: model 变量的类型是 FModelDefinition (模型) W 变量的类型是 float (浮点数) D 变量的类型是 float (浮点数) H 变量的类型是 float (浮点数) falseString 变量的类型是 String (字符串) s 变量的类型是 FModelInstance (子模型) 第三步:当鼠标放在类型提示上时,光标所在位置会显示气泡“查看类型文档”。此时键盘按下Ctrl(如果是 mac 系统则是 cmd)后,鼠标单击这个类型提示,页面下方的文档区域会自动打开此类型的文档 7、自动补全 当你在IDE中编写脚本时,IDE会猜测你想要输入什么内容,并以列表的形式展示出来。比如当你输入 # 时,系统会给你展示推荐列表,此时可以使用键盘上下键来挑选想要的推荐,使用enter键来接受推荐。如果推荐结果不是你想要的,直接忽略它,继续输入即可 8、字段、函数文档 鼠标放在字段、函数或变量上时,IDE 会弹出气泡,告诉你这个字段、函数或变量是什么,此时你可以使用 Ctrl(mac系统为cmd)+鼠标左键点击,来打开对应字段(或函数)的文档 9、文档区 1)文档区展示了你所有可用的数据类型和函数。它们按照逻辑关系来分组,你可以展开或收起它们 2)类型文档中会包含类型的含义、字段的类型及解释,以及类型支持调用的方法 3)函数文档中会包含函数的用途、参数列表以及返回值
可以随时点赞啦