Skip to content

自由扩展指引

找到文件夹

插件文件夹一般位于以下地址(以 SU 2022 为例):

C:\Users\Administrator\AppData\Roaming\SketchUp\SketchUp 2022\SketchUp\Plugins\Zhouxi_Magiz

WARNING

其中 Administrator 和 SketchUp 2022 根据 windows 账户名称及安装的 SU 版本会有不同

TIP

一种直达的方式,是点击 SU 菜单 > 扩展程序 > Magiz > 切换样式库,右键点击 default 文件夹,从新窗口中打开。

文件夹由三类文件构成。styles.rb 是保存样式参数的 ruby 文件,shape.skp 是保存预设的组件模型文件,剩余的 jpg、png、gif 文件是贴图材质文件。

环境配置

1. 安装 VSC

2. 安装 VSC 插件

  • Live Server 运行本地服务器,修改文件后实时更新网页
  • JavaScript and TypeScript Nightly 对 ts 和 js 语言的基础功能支持
  • Color Highlight 在编辑器中显示颜色值表示的颜色
  • indent-rainbow 用颜色区分缩进条

操作说明

  1. git clone 仓库到本地,以下的 “文件夹” 都指代这个 clone 文件夹
  2. 打开件夹中的 compile.bat 该文件须保持开启,以启动 ts 的自动编译功能,在修改文件后同步更新编译的文件。
  3. 将文件夹添加到 vsc 的工作区,将 Live Server 的当前工作区设为文件夹 vsc 中打开资源管理器(左侧竖栏第一个图标),将文件夹拖放进去。再按 F1,输入 live,选择 Live Server: Change Live Server workspace,再选择 clone 文件夹。
  4. vsc 中打开 demo.html,点击右下角的 Go Live 按钮 浏览器中新打开的页面即为 demo.html,可以实时看到修改后的效果。
  5. 修改 style.building.ts 文件 鼠标移动到键名上可以阅读相关提示信息。修改后按 Ctrl+S 保存可以看到当前的效果。

ps:操作 1 和 3 为初始配置操作,后续可以省略

简单扩展

插件对预设的调用均通过名称实现,即从所有名称包含了参数关键词的元素中进行随机选择。所有参数的单位为米。

1. 材质扩展

如在 styles.rb 文件中定义的材质参数为“A”,文件夹中的图片材质名有“A1”、"A2"、"B1"、"B2",最终会在“A1”、"A2"中随机选择一个用于贴图。若用户添加了一个“A3”的材质文件,则最终会在“A1”、"A2"、“A3”中随机选择一个用于贴图。 用户可以通过文件名自定义材质的尺寸。加入类似 2x、x3、2x4 等由小写 x 和数字组成的参数定义了材质的“长 x 高”,每一位都可以省略不写,长的缺省值为 3 米,高的缺省值为生成建筑时定义的层高。该参数也可以在 SU 中直接加入到材质名中。

2. 组件扩展

用户可以打开 shape.skp(SU 菜单 > 扩展程序 > Magiz > 添加组件),内部有两个组件,一个包含了全部被调用的线角的剖面模型,一个包含了所有被调用组件。前者暂时不需要修改,双击后者,如在内部添加一个新的空调组件模型,修改组件的名称为“AC03”,则最终生成模型的屋顶上有 1/3 的概率出现新增的空调模型。

深度扩展

修改 styles.rb 的参数很不直观,调试功能也不完善,请谨慎修改。 用户可以用 windows 文本编辑器,更推荐使用 VSC、Hbuilderx 等进行编辑。 用户只需要修改=号后方的内容。如 @update = 样式更新的日期,显示在插件生成建筑的对话框上部。 在@update 下方加入 @debug= 1 可以打开输出调试信息的功能。 @styles 是哈希表类型的样式参数,包含两层。第一层是样式分类的名称,第二层保存具体的参数。 参数为三位数组的形式,含义为: [ 边线偏移量、生成元素的形式、元素的排列方式 ]。

1. 修改边线偏移量

第一位针对单个面的所有边线,根据与 X、Y 轴的角度进行不同的偏移计算。 边线偏移量为两位数组,含义为: [ X 轴偏移、 Y 轴偏移]。负值为向外偏移,正值为向内偏移。 可以使用如“2~4*2”的表达式进行加减乘除计算,其中 2~4 代表 2 到 4 的随机整数,也可以写成~3 代表 0 到 3 的随机整数,仅有~则代表上一次计算的随机数。缺省为 0。

2. 修改生成元素,及材质关键词

元素的形式为六位数组,基本形式为: [ 类型、名称、尺寸、移动、旋转]。因为根据类型不同,后续参数的形式也不同,有些复杂,估计没人想看就略过了。 重点是其中定义了“2.1 材质扩展”中提到的对文件夹内材质的调用。 材质参数基本上为数组的形式,表示按顺序在组件内部的面上贴图。如["ZBQM:red", "ZBQM:green"],表示用两种材质为偏向 X、Y 轴的面分别贴图。 材质参数也可以写成字符串的形式,表示在组件外部赋材质。后者用于简单上色,因为无法对每个面精确贴图。目前支持"white", "silver", "gray", "dark", "alpha", "glass"的预设材质名,用于灰色系上色。 材质参数的“:”后可以定义附加参数,定义贴图的不同方式。 尺寸参数如 2x、x3、2x4 等由小写 x 和数字组成的参数定义了材质的“长 x 高”,每一位都可以省略不写,长的缺省值为 3 米,高的缺省值为生产建筑时定义的层高。 red、green 代表只在沿模型红轴或绿轴的面上进行贴图,缺省是所有面。 double 代表面的两侧均进行贴图,缺省只在外侧。 stretch 是按材质的计算尺寸与面的尺寸进行拉伸贴图,实现垂直和水平等分的贴图效果。inside、horizon,是实现严格按照材质的计算尺寸进行贴图的效果。其中 inside 会在面的内部画一个标准尺寸的矩形再进行贴图,而 horizon 是水平方向贴图按等分进行拉伸,只生成两段水平线条。缺省是 vertical,即垂直方向贴图按等分进行拉伸,只生成两段垂直线条。 crown 用于屋顶贴图,从水平顶部开始,周边的垂直面都会无缝延续贴图

3. 修改元素的排列方式

元素的排列方式为三位数组,有两种类型。 [ "FLOOR"、层高、总高度 ],用于竖向楼层排列,根据后两位参数计算近似的层高,实现等分的排列效果。 [ "EDGE"、间距、两端缩进距离 ],用于生成沿边线排列的组件,根据每一段直线段长度,减去两端缩进距离,计算近似间距,实现等分的排列效果。

问题咨询

联系作者

电话: 13077353068 (微信)

邮箱: 453154007@qq.com

微信公众号: Ketchup

二维码