ShuFeng 发表于 2005-7-30 11:21:00

怎样把spline线变成圆弧?

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">怎样把<FONT face="Times New Roman">spline</FONT>线变成圆弧<FONT face="Times New Roman">?</FONT></P>
<P class=signature style="MARGIN: auto 0cm"><FONT face=宋体 size=3>AcDbSpline的成员函数</FONT></P>Acad::ErrorStatus getNurbsData(int&amp; degree,Adesk::Boolean&amp; rational,Adesk::Boolean&amp; closed,Adesk::Boolean&amp; periodic,AcGePoint3dArray&amp; controlPoints,AcGeDoubleArray&amp; knots,AcGeDoubleArray&amp; weights,double&amp; controlPtTol,double&amp; knotTol) const;可获得数据,但如何用这些数据把spline变成Arc?

ishou 发表于 2005-7-31 11:52:00

<P>1)基本上这属于数学问题。不是几句话可以说清楚。</P>
<P>2)这是很有实用价值的问题,好象绝大多数CNC机床上的控制码,仅仅支持圆弧、直线、和点操作。市面上相应的CAM软件也基本上仅仅支持这些图元或这些图元的组合(如LWPOLYLINE),对于SPline 和椭圆曲线则无能为力。</P>
<P>&nbsp;</P>

ShuFeng 发表于 2005-8-1 09:55:00

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">1.我也知道这基本上是一个数学问题<FONT face="Times New Roman">,</FONT>有没有这方面的书籍可查<FONT face="Times New Roman">?</FONT>能知首它的曲线方程就更好了<FONT face="Times New Roman">.</FONT></P>2.对于没有封闭的spline,很容易知道其长度,然后用一段段很短的线段(或弧)去拟合.对于封闭的spline,怎样知道其长度?

zfbj 发表于 2005-8-8 22:34:00

<P>ARX中所有派生于AcDbCurve类的实体都可以使用getEndPoint函数来获得其终点,然后使用getDistAtPoint函数获得曲线的长度。</P>
<P>样条曲线转化成圆弧可能比较麻烦。</P>

ShuFeng 发表于 2005-8-10 09:20:00

<P>getDistAtPoint函数并不是对所有的spline都可以.有些spline线炸碎后仍为spline的就不行.不过我已找到一种方法可以将其变成arc.</P>
页: [1]
查看完整版本: 怎样把spline线变成圆弧?