FreeCAD|读取STEP、创建平面、相交、瓶子

FreeCAD是一个基于OpenCASCADE的开源CAD/CAE工具。OpenCASCADE是一套开源的CAD/CAM/CAE几何模型核心,来自法国Matra Datavision公司,是著名的CAD软件EUCLID的开发平台。FreeCAD可运行于Windows以及Linux系统环境下,是一种通用的3D CAD建模工具,其发展是完全开源的(遵循GPL的LGPL许可证)。

FreeCAD的直接应用目标是机械工程和产品设计,但其用途十分广泛,也适用于建筑或其他工程专业,工程制图等领域。FreeCAD具有类似CATIA,SolidWorks或Solid Edge的工具,因此也将提供CAX(CAD,CAM,CAE),PLM等功能。这是一个基于参数化建模功能与模块化的软件架构,使得它易于无需修改核心系统即可提供额外的功能。

在FreeCAD中使用Python脚本编写可以极大地扩展其功能,并允许用户自动化设计流程、创建自定义工具和宏,以及进行高级的参数化设计。以下是一些FreeCAD中Python脚本编写的示例:

导入STEP

复制代码
import Parts = Part.Shape()s.read(u"d:/Documents/drill.step")Part.show(s)​

创建平面

复制代码
plan1=Part.makePlane(2,2,App.Vector(-1,-1,0.8),App.Vector(0,0,1))Part.show(plan1)

布尔相交

复制代码
k=s.common(plan1)Part.show(k1)

瓶子建模

复制代码
import FreeCAD as Appimport Part, math​def makeBottleTut(myWidth = 50.0, myHeight = 70.0, myThickness = 30.0):    aPnt1=App.Vector(-myWidth / 2., 0, 0)    aPnt2=App.Vector(-myWidth / 2., -myThickness / 4., 0)    aPnt3=App.Vector(0, -myThickness / 2., 0)    aPnt4=App.Vector(myWidth / 2., -myThickness / 4., 0)    aPnt5=App.Vector(myWidth / 2., 0, 0)​    aArcOfCircle = Part.Arc(aPnt2, aPnt3, aPnt4)    aSegment1=Part.LineSegment(aPnt1, aPnt2)    aSegment2=Part.LineSegment(aPnt4, aPnt5)​    aEdge1=aSegment1.toShape()    aEdge2=aArcOfCircle.toShape()    aEdge3=aSegment2.toShape()    aWire=Part.Wire([aEdge1, aEdge2, aEdge3])​    aTrsf=App.Matrix()    aTrsf.rotateZ(math.pi) # rotate around the z-axis​    aMirroredWire=aWire.copy()    aMirroredWire.transformShape(aTrsf)    myWireProfile=Part.Wire([aWire, aMirroredWire])​    myFaceProfile=Part.Face(myWireProfile)    aPrismVec=App.Vector(0, 0, myHeight)    myBody=myFaceProfile.extrude(aPrismVec)​    myBody=myBody.makeFillet(myThickness / 12.0, myBody.Edges)​    neckLocation=App.Vector(0, 0, myHeight)    neckNormal=App.Vector(0, 0, 1)​    myNeckRadius = myThickness / 4.    myNeckHeight = myHeight / 10.    myNeck = Part.makeCylinder(myNeckRadius, myNeckHeight, neckLocation, neckNormal)    myBody = myBody.fuse(myNeck)​    return myBody​el = makeBottleTut()Part.show(el)​
相关推荐
qq_4069810313 小时前
大白话rust系列09 函数调用两次有什么错?
开发语言·python·rust
benchmark_cc13 小时前
QuantDash 安装成功后,如何验证 Python 环境可以正常导入 SDK?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
zh路西法14 小时前
【模型式强化学习】(二)PETS——从概率动力学模型到模型预测控制(MPC)
pytorch·python·强化学习·pe·mpc·ces·pets
Python自动化直播15 小时前
智能脚本批量管理拆开看:导入、导出、重写、试听
前端·python·ai·秒播
伤心的梧桐叶18 小时前
Picset与创客贴比等待时间,没做完的任务不能从表里消失
python
没有气的汽水18 小时前
一次 SQS 消费者静默退出的排查:问题最后竟然出在日志里
python
用户4500301402318 小时前
物业催缴系统为什么总在"冷却"这一步翻车:账期建模与规则命中的几个取舍
python
Web极客码18 小时前
决策模型 + LLM:用 Python 拆解浏览器自动化工作流
java·python·自动化
fanruitian18 小时前
python 装饰器 闭包
python
泡茶喝茶写代码19 小时前
A股量化策略回测实战:从行情数据到绩效评估(第 13 篇):放量突破策略
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口