Crate rust_zw3d

Crate rust_zw3d 

Source
Expand description

ZW3D SDK 的 Rust 绑定

rust-zw3d 为 ZW3D CAD 软件提供了安全、惯用的 Rust API 封装。

§架构

  • raw - 原始 FFI 绑定(来自 rust-zw3d-raw crate)
  • editor - 编辑器交互功能(消息显示、用户输入等)
  • commands - 命令和回调注册(通常由宏自动调用)

§快速开始

§创建一个简单的命令

use rust_zw3d::{*, editor};

#[cmd]
fn hello(_code: i32) -> i32 {
    editor::msg_disp("Hello from Rust!");
    0
}

// 生成模块进出点
zw3d_module!(my_plugin);

§编辑器交互

use rust_zw3d::editor;

#[cmd]
fn interactive_command(_code: i32) -> i32 {
    // 显示消息
    editor::msg_disp("请输入角度");
     
    // 获取用户输入
    match editor::get_angle("旋转角度:", 90.0) {
        Ok(angle) => {
            editor::msg_disp(&format!("旋转 {} 度", angle));
            // 执行旋转操作...
            0
        }
        Err(_) => {
            editor::msg_disp("操作已取消");
            1
        }
    }
}

§特性

  • ✅ 自动中文支持(GBK ↔ UTF-8 转换)
  • ✅ 类型安全的宏系统
  • ✅ Rust 风格的 API 封装
  • ✅ 完整的 FFI 绑定访问

§相关 Crate

Re-exports§

pub use error::ZwError;
pub use error::ZwResult;
pub use rust_zw3d_raw as raw;
pub use commands::*;

Modules§

commands
命令和回调注册(内部函数)
editor
编辑器交互功能
error
错误类型定义 ZW3D 错误类型定义

Macros§

register_callbacks
批量注册由 #[callback] 收集到的所有回调。
register_commands
批量注册由 #[cmd] 收集到的所有命令。
unregister_callbacks
批量卸载由 #[callback] 收集到的所有回调。
unregister_commands
批量卸载由 #[cmd] 收集到的所有命令。
zw3d_module
生成模块进/出点:<Name>Init<Name>Exit

Structs§

Callback
回调条目,用于 inventory 收集并在运行时统一注册。
Command
命令条目,用于 inventory 收集并在运行时统一注册。

Constants§

SDK_VERSION
当前编译所针对的 ZW3D SDK 主版本

Attribute Macros§

callback
当开启 macros feature 时,重导出属性宏 将函数注册为 ZW3D 回调(生成 extern "C" 包装函数,并收集注册)。
cmd
当开启 macros feature 时,重导出属性宏 将函数注册为 ZW3D 命令(收集到 inventory,由 register_commands! 统一注册)。