乐于分享
好东西不私藏

SketchUp软件二次开发:注册扩展程序

SketchUp软件二次开发:注册扩展程序

一个标准的 .rbz 插件压缩包,在根目录下必须且只能包含两个东西:

  1. 一个与插件同名的 .rb 文件(根文件/Loader)

  2. 一个与插件同名的文件夹(支持文件夹)

  3. 方便卸载的时候一起卸载了,如果两个文件名字不一致,只会卸载.rb文件,而文件夹会保留

官方文档给出了一个非常清晰的结构示例:

nn_cuber_maker.rbz          <- 这是你的 .rbz 安装包├── nn_cuber_maker.rb       <- 根目录下的 .rb 文件(加载器)└── nn_cuber_maker/         <- 与 .rb 文件同名的文件夹    ├── main.rb             <- 真正的插件代码    └── some_other_file.rb  <- 其他支持文件

1. 根目录下的 .rb 文件(加载器) 这个文件是插件的入口注册器。它的任务非常纯粹:只负责向 SketchUp 注册插件本身,而不能包含任何功能逻辑或加载其他文件

# nn_cuber_maker.rbrequire 'sketchup.rb'module MyPlugin  module CubeMaker    unless file_loaded?(__FILE__)      # 1. 创建扩展对象,并指向支持文件夹里的主文件 'nn_cuber_maker/main'      ex = SketchupExtension.new('NN Cube Maker''nn_cuber_maker/main') [reference:9]      # 2. 填写作者、描述、版本等信息[reference:10]      ex.creator = "Namey Namesson"      ex.description = "Make cubes in just a few clicks."      ex.version = "1.0.0"      ex.copyright = "2025 Name Namesson"      # 3. 注册扩展      Sketchup.register_extension(ex, true) [reference:11]      file_loaded(__FILE__)    end  endend

关键点:在 SketchupExtension.new 方法中,第二个参数 'nn_cuber_maker/main'没有写 .rb 后缀。这是一种最佳实践,能让代码在文件被加密为 .rbe 格式后依然正常工作。

2. 同名文件夹(支持文件夹) 这个文件夹必须与根目录下的 .rb 文件同名。所有的功能代码、图标、HTML文件等都放在这里。

💡 补充:关于开发调试

在开发过程中,每次都打包成 .rbz 再安装来测试非常低效。一个更便捷的方法是将加载器文件同名文件夹直接复制到 SketchUp 的 Plugins 文件夹中。这样修改代码后,只需重启 SketchUp 即可生效,可以极大提高调试效率。

  • 组织代码:你可以在这个文件夹里自由创建子文件夹和 .rb 文件来组织你的插件逻辑。

  • 加载文件:在支持文件夹内的代码中,应使用 Sketchup.require 方法来加载其他文件,这也是为了兼容加密格式。

    # nn_cuber_maker/main.rbmodule MyPlugin  module CubeMaker    # 使用 Sketchup.require 加载同目录下的其他文件    Sketchup.require 'nn_cuber_maker/some_other_file' [reference:18]    # ... 你的插件功能代码 ...  endend

    🚀 如何制作一个 .rbz 文件

  • 准备文件:按照上面的“两件套”结构,在电脑的某个文件夹里准备好你的 .rb 加载器和同名文件夹。

  • 打包:将加载器文件同名文件夹这两个同时选中,然后右键压缩为 .zip 格式。

    • 注意:压缩时,确保压缩包内直接就是这两个项目,而不是把它们放在一个上层文件夹里再压缩。

  • 重命名:将生成的 .zip 文件重命名,把后缀改为 .rbz

    • Windows用户注意:请确保你的系统显示文件扩展名,否则可能会重命名成 你的插件.rbz.zip,导致安装失败。