生成面可以使用BRepBuilderAPI_MakeFace,基本的生成顺序是:Edge–>Wire–>Face,除了个别形状(如矩形)
- 矩形
# 参数为长、宽、ax3(中心点与方向)
def createSquarePlane(w, h,ax3 = gp_Ax3(gp_Pnt(0,0,0),gp_Dir(0,0,1))):
pln = gp_Pln(ax3)
face = BRepBuilderAPI_MakeFace(pln, -w, w, -h, h)
return face
- 三角形(基本全多边形都适用)
生成直线线段的函数
# 二维直线生成
# 参数1为坐标集,参数2为是否封闭(即最后一个点是否和第一个点连接)
# 可以看到是从Edge转为Wire的
def create_segment(pnt_list, close=False):
if len(pnt_list) == 1:
return None
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 !&