2个版本
新 0.1.1 | 2024年8月18日 |
---|---|
0.1.0 | 2024年8月18日 |
#125 在 数据格式
每月 60次下载
67KB
1.5K SLoC
dotbim_rust
描述
dotbim文件格式的开源Rust库。
关于dotbim的更多信息请参阅此处: https://github.com/paireks/dotbim
dotbim的网站: https://dotbim.net/
在此您可以找到有关开发将处理.bim文件格式的工具的简明手册: https://github.com/paireks/dotbim/blob/master/DeveloperTips.md
安装
https://crates.io/crates/dotbim_rust
运行以下命令
cargo add dotbim_rust
示例
通常您可以检查单元测试来查看多个示例。但是以下是一个示例
金字塔示例
let mesh = Mesh::new(
0,
vec![
// Base
0.0,0.0,0.0,
10.0,0.0,0.0,
10.0,10.0,0.0,
0.0,10.0,0.0,
// Top
5.0,5.0,4.0
],
vec![
// Base faces
0,1,2,
0,2,3,
// Side faces
0,1,4,
1,2,4,
2,3,4,
3,0,4
]
);
let mut info: HashMap<String, String> = HashMap::new();
info.insert(String::from("Name"), String::from("Pyramid"));
let mut file_info: HashMap<String, String> = HashMap::new();
file_info.insert(String::from("Author"), String::from("John Doe"));
file_info.insert(String::from("Date"), String::from("28.09.1999"));
let element = Element::new(
0,
Vector::new(0.,0.,0.),
Rotation::new(0., 0., 0., 1.),
String::from("76e051c1-1bd7-44fc-8e2e-db2b64055068"),
String::from("Structure"),
Color::new(255,255,0,255),
None,
info,
);
let file: File = File::new(String::from("1.0.0"),
vec![mesh],
vec![element],
file_info);
let file_serialized = to_string(&file);
let file_serialized_string = file_serialized.ok().unwrap();
let path = "created_files/Pyramid.bim";
fs::write(path, file_serialized_string).expect("Unable to write the file");
然后您可以在现有的查看器之一中检查文件是否保存正确,或者通过连接器。
它应该是这样的
使用的库
- 对于json序列化,它使用serde,serde_json: https://serde.rs/
依赖项
~1.2–2.1MB
~44K SLoC