#cad #parametric #toolkit #api #features #plugin #pro

creo

Creo Parametric Toolkit API for Rust

1个不稳定版本

0.1.0 2024年2月22日

#6 in #pro

MIT 许可证

110KB
1.5K SLoC

creo-rs

此项目旨在为Creo Parametric Toolkit提供一种安全且易用的Rust接口。

先决条件

  • Rust
  • 已安装 Toolkit 的Creo Parametric 10

示例

这是一个Creo插件的简单示例,它选择一个特征并将其打印到控制台。注意

use creo::pro_feature::*;
use creo::pro_selection::*;
use creo;

/// Initializes the plugin
#[no_mangle]
pub extern "C" fn user_initialize() -> ffi::ProError {
    let selection = pro_select("feature", 1, None, None, None, None)?;
    if selection.n_sel != 1 {
        return Err(ffi::ProErrors_PRO_TK_GENERAL_ERROR);
    }
    let feature: ffi::ProFeature = selection[0].modelitem_get()?;
    println!("Selected feature: {:?}", feature);
    ffi::ProErrors_PRO_TK_NO_ERROR
}

/// User exits
#[no_mangle]
pub extern "C" fn user_terminate() -> i32 {
    return 0;
}

要将此构建为DLL插件,请将以下内容添加到您的 Cargo.toml

[lib]
crate-type = ["cdylib"]

构建和测试

必须设置一些环境变量才能正确构建插件。

CREO_TOOLKIT=<dir-of-protktools> # Example: C:\Program Files\PTC\Creo 10.0.0.0\Common Files\protoolkit

构建项目后,可以通过 creotk.dat 文件将 DLL 加载到 Creo 中。请确保使用正确的 DLL 和 text 文件夹的路径进行调整。

cargo build
cargo test

同步和异步模式

Creo为插件提供不同的运行模式。同步模式是默认模式,也是最快的,通过Creo UI作为DLL加载。异步模式是单独启动的,并与Creo进程进行通信。

目前我们只支持同步模式。在下一个迭代中,我们可能希望将其分割为单独的项目,一个 sync 项目和一个 async 项目。每个项目链接到正确的库。

依赖关系

~0–2MB
~38K SLoC