有时候构建一个规则的三维形状却有部分带着复杂的曲线,通过直接生成三维图形再进行修改是件很难又很麻烦的事情,OCC库中可以通过对一个平面进行不同操作来生成三维图形,常用的方法有下面两种
- 平面向量拉伸
- 中心旋转
先来介绍平面向量拉伸,复杂的曲线可以自己去研究怎么生成,这里只演示一个正方行二维线段如何拉伸成长方体
首先需要四个点生成一个正方形封闭线段,这是生成函数
#二维直线生成
def create_segment(pnt_list,close=True):
if len(pnt_list)==1:
return None
#下面基本就是如果close为True,那么图形就会封闭
#通过点集生成Edge,再将Edge添加到wire中
wire = BRepBuilderAPI_MakeWire()
for i in range(0,len(pnt_list)):
if i==len(pnt_list)-1 and close:
segment=BRepBuilderAPI_MakeEdge(pnt_list[0], pnt_list[len(pnt_list)-1])
elif i!=len(pnt_list)-1:
segment=BRepBuilderAPI_MakeEdge(pnt_list[i],pnt_list[i+1])
else:
continue
wire.Add(segment.Edge())
return wire
下面调用这个函数生成一个正方型二维线
my_shape = create_segment([gp_Pnt(0,0,0),gp_Pnt(0,1,0),gp_Pnt