Open CASCADE学习|管道建模

​这是用Open CASCADE Technology (OCCT)库来创建一个管道模型的示例。OCCT是一个开源的几何建模库,广泛应用于CAD/CAM/CAE和其他几何建模应用中。

在下面的代码中,首先创建了一些点,并用这些点来构建B样条曲线,进而创建边(Edges)。然后,你将这些边缘添加到线(Wire)中。接着,创建了一个圆形作为管道的剖面,并将这个剖面用于生成管道。最后,使用Viewer类来显示生成的管道模型。

#include <TColgp_Array1OfPnt.hxx>
#include <BRepBuilderAPI_MakeWire.hxx>
#include <gp_Pnt.hxx>
#include"Viewer.h"
#include <GeomAPI_PointsToBSpline.hxx>
#include <Geom_BsplineCurve.hxx>
#include <BRepBuilderAPI_MakeEdge.hxx>
#include <TopoDS_Wire.hxx>
#include <gp_Ax2.hxx>
#include <gp_Circ.hxx>
#include <BRepBuilderAPI_MakeFace.hxx>
#include <TopoDS_Face.hxx>
#include <BRepOffsetAPI_MakePipe.hxx>
​
int main(int argc, char* argv[])
{TColgp_Array1OfPnt array = TColgp_Array1OfPnt(1, 2);BRepBuilderAPI_MakeWire makeWire = BRepBuilderAPI_MakeWire();
​gp_Pnt point1 = gp_Pnt(0, 0, 0);gp_Pnt point2 = gp_Pnt(0, 0, 1);array.SetValue(1, point1);array.SetValue(2, point2);GeomAPI_PointsToBSpline spline = GeomAPI_PointsToBSpline(array);TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(spline.Curve()).Edge();
​makeWire.Add(edge);
​point1 = gp_Pnt(0, 0, 1);point2 = gp_Pnt(0, 1, 2);array.SetValue(1, point1);array.SetValue(2, point2);spline = GeomAPI_PointsToBSpline(array);edge = BRepBuilderAPI_MakeEdge(spline.Curve()).Edge();
​makeWire.Add(edge);
​point1 = gp_Pnt(0, 1, 2);point2 = gp_Pnt(0, 2, 2);array.SetValue(1, point1);array.SetValue(2, point2);spline = GeomAPI_PointsToBSpline(array);edge = BRepBuilderAPI_MakeEdge(spline.Curve()).Edge();
​makeWire.Add(edge);
​makeWire.Build();TopoDS_Wire wire = makeWire.Wire();
​//the bspline profile.Profile mist be a wire / facegp_Pnt point = gp_Pnt(0, 0, 0);gp_Dir dir = gp_Dir(0, 0, 1);gp_Circ circle = gp_Circ(gp_Ax2(point, dir), 0.2);TopoDS_Edge profile_edge = BRepBuilderAPI_MakeEdge(circle).Edge();TopoDS_Wire profile_wire = BRepBuilderAPI_MakeWire(profile_edge).Wire();TopoDS_Face profile_face = BRepBuilderAPI_MakeFace(profile_wire).Face();
​//pipeTopoDS_Shape pipe = BRepOffsetAPI_MakePipe(wire, profile_face).Shape();Viewer vout(50, 50, 500, 500);vout << pipe;vout.StartMessageLoop();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/474148.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

typeScript 类型推论

什么是类型推论&#xff1f; 类型推论是 TypeScript 中的一个特性&#xff0c;它允许开发人员不必显式地指定变量的类型。相反&#xff0c;开发人员可以根据变量的使用情况让 TypeScript 编译器自动推断出类型。例如&#xff0c;如果开发人员将一个字符串赋值给一个变量&#…

测试物理网络的ping命令

通过发送Internet控制消息协议&#xff08;ICMP&#xff09;并接收其应答&#xff0c;测试验证与另一台TCP/IP计算机的IP级联通性、可达到性和名称解析的疑难问题主要TCP/IP命令。如果不带参数&#xff0c;ping将显示帮助。通过在命令提示符下输入“ping /&#xff1f;”命令&a…

[ 2024春节 Flink打卡 ] -- Paimon

Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合&#xff0c;推出新一代的 Streaming Lakehouse 技术&#xff0c;促进数据在数据湖上真正实时流动起来&#xff0c;并为用户提供实时离线一体化的开发体验。原名 Flink Table Store &am…

WebFlux简单测试

一、介绍 响应式的web框架&#xff0c;不同于传统的WebMVC&#xff0c;WebFlux其内部使用Netty&#xff0c;基于异步和事件驱动&#xff0c;用少量Loop线程处理request、response io操作&#xff0c;而业务中阻塞的操作交由Work线程处理。总的来说客户端感知&#xff08;响应时…

探索【注解】、【反射】、【动态代理】,深入掌握高级 Java 开发技术

文章目录 Java注解1.注解基础2.注解原理 反射1.Class对象的获取1.基础公共类1.1.Object > getClass()1.2.类名.class 的方式1.3.Class.forName() 2.获取类的成员变量3.获取成员方法并调用4.反射优缺点 代理1.结构2.静态代理2.1.案例1-计算前后校验2.1.1.创建接口2.1.2.创建实…

使用Thonny搭建MicroPython 开发环境,简单易用,保姆级教程

MicroPython Thonny开发环境搭建&#xff0c;简单易用&#xff0c;保姆级教程 MicroPython为广大Python编程开发人员打开了通往单片机、物联网开发的大门&#xff0c;但是在开发工具方面却不是很给力&#xff0c;虽然VSCode的插件很多&#xff0c;但是针对MicroPython却不是很…

【leetcode】深搜、暴搜、回溯、剪枝(C++)3

深搜、暴搜、回溯、剪枝&#xff08;C&#xff09;3 一、解数独1、题目描述2、代码3、解析 二、单词搜索1、题目描述2、代码3、解析 三、黄金矿工1、题目描述2、代码3、解析 四、不同路径III1、题目描述2、代码3、解析 一、解数独 1、题目描述 leetcode链接 2、代码 class…

MCU电源控制(PWR)与低功耗

目录 一、STM32 的内核和外设电源系统管理&#xff1a; 二、MCU电源监控&#xff1a; 三、三种低功耗模式&#xff1a; 1、睡眠模式&#xff1a; 2、停止模式&#xff1a; 3、待机模式&#xff1a; 一、STM32 的内核和外设电源系统管理&#xff1a; ① 电池备份区域&#…

力扣OJ题——旋转数组

题目&#xff1a;189.旋转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数 思路一&#xff1a; 1.每次挪动旋转1位&#xff08;用tmp将最后一位存起来&#xff0c;其余所有数据向后移&#xff0c;然后将tmp放在第一个位…

语音唤醒——

文章目录 配置主代码 参考文档&#xff1a;https://picovoice.ai/docs/quick-start/porcupine-python/ 配置 pip install pvporcupine主代码 ACCESS_KEY&#xff1a;需要将该参数填入即可 # # Copyright 2018-2023 Picovoice Inc. # # You may not use this file except in …

数据库设计、JDBC、数据库连接池

数据库设计 数据库设计概念 数据库设计就是根据业务 系统的具体需求&#xff0c;结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。建立数据库中的表结构以及表与表之间的关联关系的过程。有哪些表?表里有哪些字段?表和表之间有什么关系? 数据库设计的步骤…

WordPress站点成功升级后的介绍页地址是什么?

我们一般在WordPress站点后台 >> 仪表盘 >> 更新中成功升级WordPress的话&#xff0c;最后打开的就是升级之后的版本介绍页。比如boke112百科前两天升级到WordPress 6.4.2后显示的介绍页如下图所示&#xff1a; 该介绍除了介绍当前版本修复了多少个问题及修补了多少…