1个不稳定版本
0.1.0 | 2024年2月22日 |
---|
#6 in #pro
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