生成圆柱体STEP文件
#include <BRepPrimAPI_MakeCylinder.hxx>
#include <STEPControl_Writer.hxx>
#include <STEPControl_StepModelType.hxx>
#include <IFSelect_ReturnStatus.hxx>
#include <gp_Trsf.hxx>
#include <gp_Vec.hxx>
#include <BRepBuilderAPI_Transform.hxx>
#include <TopoDS_Shape.hxx>
#include <iostream>
int main() {
// 圆柱体尺寸参数
Standard_Real radius = 25.0;
Standard_Real height = 100.0;
// 目标位置(将底面中心设置在这个位置)
Standard_Real posX = 100.0;
Standard_Real posY = 50.0;
Standard_Real posZ = 200.0;
// 创建圆柱体(默认底面在原点 Z=0,沿Z轴方向)
TopoDS_Shape cylinder = BRepPrimAPI_MakeCylinder(radius, height).Shape();
// 创建平移变换
gp_Trsf translation;
translation.SetTranslation(gp_Vec(posX, posY, posZ));
// 应用变换到圆柱体上
BRepBuilderAPI_Transform transformer(cylinder, translation);
TopoDS_Shape movedCylinder = transformer.Shape();
// 写入 STEP 文件
STEPControl_Writer writer;
IFSelect_ReturnStatus status;
status = writer.Transfer(movedCylinder, STEPControl_AsIs);
if (status != IFSelect_RetDone) {
std::cerr << "传输到 STEP 失败!" << std::endl;
return 1;
}
status = writer.Write("cylinder_translated.step");
if (status != IFSelect_RetDone) {
std::cerr << "写入 STEP 文件失败!" << std::endl;
return 1;
}
std::cout << "成功生成带位移的圆柱体文件:cylinder_translated.step" << std::endl;
return 0;
}
作者:admin 创建时间:2025-06-03 14:34
最后编辑:admin 更新时间:2025-06-03 14:35
最后编辑:admin 更新时间:2025-06-03 14:35