当前位置: 首页 > news >正文

Python_occ 学习记录 | 细观建模(1) - 教程

概念理解

拓扑 vs. 几何

  • 几何:点 gp_Pnt、圆 gp_Circ、平面 gp_Pln 等,描述“形状的数学定义”
  • 拓扑:边 Edge、线框 Wire、面 Face 等,描述“几何的连接关系与方向”

孔洞Face 有一个外环(outer wire)和若干内环(inner wires)。内环的方向与外环相反,就会被视为“孔”。

挖孔

from OCC.Core.gp import gp, gp_Pnt, gp_Circ
from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakeEdge, BRepBuilderAPI_MakeWire, BRepBuilderAPI_MakeFace
from OCC.Display.SimpleGui import init_display
# 外矩形 10x10
p00, p10, p11, p01 = gp_Pnt(0,0,0), gp_Pnt(10,0,0), gp_Pnt(10,10,0), gp_Pnt(0,10,0)
outer = BRepBuilderAPI_MakeWire(
BRepBuilderAPI_MakeEdge(p00, p10).Edge(),
BRepBuilderAPI_MakeEdge(p10, p11).Edge(),
BRepBuilderAPI_MakeEdge(p11, p01).Edge(),
BRepBuilderAPI_MakeEdge(p01, p00).Edge()
).Wire()
# 基于外环建面
face_mk = BRepBuilderAPI_MakeFace(outer)
# 加入三个圆孔( Reverse)
ax2 = gp.XOY()
for cx, cy in [(3,3), (7,3), (3,7)]:
circ = gp_Circ(ax2, 1.0) # 在 XOY 平面、半径 1 的圆
circ.SetLocation(gp_Pnt(cx, cy, 0.0)) # 移动圆心到 (cx, cy, 0.0)
w = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(circ).Edge()).Wire()
w.Reverse() # 反向 = 作为“孔”
face_mk.Add(w)
face = face_mk.Shape()
display, start_display, add_menu, add_function_to_menu = init_display()
display.DisplayShape(face, update=True)
start_display()

拉伸

from OCC.Core.gp import gp_Vec
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakePrism
solid = BRepPrimAPI_MakePrism(face, gp_Vec(0,0,1)).Shape() # 厚度 1
http://www.zskr.cn/news/8159.html

相关文章:

  • 【小白也能懂】PyTorch 里的 0.5 到底是干啥的?——一次把 Normalize 讲透! - 教程
  • 051-Web攻防-文件安全目录安全测试源码等
  • error: xxxxx does not have a commit checked out
  • linux 命令语句
  • UM2003A 一款 200 ~ 960MHz ASK/OOK +18dBm 发射功率的单发射
  • 达芬奇(DaVinci Reslove)字体文件 bugb标签
  • 深入解析:上门按摩平台 “0 抽成 + 无底薪” 双模式拆解:如何让技师主动创收?
  • SUB-1G 无线收发芯片 DP10RF001 低功耗 (G) FSK/OOK 智能门锁,资产追踪、无线监控
  • 中电金信 :MCP在智能体应用中的挑战与对策
  • CSP 2025 复赛复习总目标与计划
  • WPF 调用 Windows 桌面右键新增文件菜单的实现方案
  • 重看P4211 [LNOI2014] LCA 以及 P5305 [GXOI/GZOI2019] 旧词 题解
  • 25.9.19随笔联考总结
  • maxu
  • makefile 入门1
  • 详细介绍:【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)
  • 高质量票据识别数据集:1000张收据图像+2141个商品标注,支持OCR模型训练与文档理解研究
  • 1201_mysql查询语句select执行流程
  • 创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—开发环境搭建(二) - 创龙科技
  • ctfshow web58
  • ctfshow web57
  • 详细介绍:【SQLMap】POST请求注入
  • ctfshow web51
  • ctfshow web46
  • 线性调频信号(LFM)在雷达中的时域及频域MATLAB编程
  • 最大流判定+拆点
  • Spring Cloud Gateway WebFlux现cvss10分高危漏洞,可导致环境属性篡改 - 详解
  • Flash Attention算法动画
  • 【技术实现】7天极速搭建体育比分网站 - 世界杯期间流量红利抓取实战
  • C#开发ONVIF客户端与RTSP播放库指南