获取线中的三维点(离散)list列表

当我们想对某根线进行离散时,我们可以使用对弧线离散或使用对多段线离散函数。
对弧线离散函数形式:

get_discrete_points_from_arc (arc:Arc,disNum=0,withEnd=False,isEqual = False)

对弧线离散时,需要将弧线装入上述函数,同时,需要确认三个标签(tag)的输入值是否符合要求。
Tag标签含义:
disNum离散点数量:表示离散点的个数;默认disNum为0,表示按照20毫米基准为间距进行离散,会自动计算离散点个数。
注意:由于离散后会取整,因此间距可能会略大于输入的数值;
withEnd是否包含尾点:表示是否需要每一段的尾点,默认为False。False表示不包含尾点,即去掉每段最后一个点,避免重复。True表示包含每一段尾点
isEqual是否等距:表示是否为等距离散。默认为False。False表示按照角度进行离散,True表示按照弧长进行等距离散。
对多段线离散:

get_discrete_points_from_line (line:Line, disNum=0, onlyCurve=True)

其中,line可以是直线段、多段线、含有弧线的多段线等,需要将line装入该函数,同事需要确认两个标签的输入值是否符合要求
Tag标签含义:
disNum离散点数量:表示离散点的个数;默认disNum为0,表示按照20毫米基准为间距进行离散,会自动计算离散点个数。
注意:由于离散后会取整,因此间距可能会略大于输入的数值;
onlyCurve是否只对圆弧离散:表示是否仅离散圆弧,默认值为True,表示只离散圆弧,直线部分不离散,False表示对直线和圆弧全部进行离散。

获取section中的三维点(离散)list列表

函数形式:

get_discrete_points_from_section(sec:Section,num:int=0,onlyCurve=True)

该函数有三个参数,分别为截面、离散点数量,是否只离散弧线
示例:

bottom_sec = Section(scale(3000, 4000)*Arc())
bottom_sec_points = get_discrete_points_from_section(bottom_sec, N, False)

如此一来,就得到了一个截面的一组离散点。

放样体——异面融合

放样体可以实现异面融合,比如圆面和矩形面生成一个“天圆地方”的几何体。放样体在进行异面融合放样时,有以下几个原则。

(1) 当其中一个Seciton为单闭合线型时(比如一个Arc) ,两个Section起点终点分别对应,轮廓线等比例对应融合。

(2) 当两个Section都不是单闭合线型时, 两个Section轮廓线从各自起点开始,按照轮廓线数目一一对应,当其中一个Section有轮廓线段剩余时,将对应到另一个Section的终点上。