如何对自动绘制的mline加点(在弯曲很大的地方)
本帖最后由 作者 于 2005-4-3 15:49:20 编辑 <br /><br /> Sub tt()Do While 1<BR> If (flgPickNested = True) Then<BR> Debug.Print "错误"<BR> Exit Sub<BR> Else<BR> Dim pt As Variant<BR> ThisDrawing.Utility.GetEntity ent, pt<BR> End If<BR> <BR> var = ent.Coordinates<BR> retCoord = ent.Coordinates<BR> k = (UBound(retCoord) + 1) / 3 <BR> ReDim px(k - 1) As Double<BR> ReDim py(k - 1) As Double
For i = 0 To UBound(retCoord) Step 3<BR> px(i / 3) = retCoord(i)<BR> py(i / 3) = retCoord(i + 1)
Next i<BR> Dim m As Integer<BR> Dim n As Integer<BR> m = 0<BR> n = 0<BR> ReDim Center(3 * (k - 1) + 2) As Double<BR> For i = 0 To k - 1
Center(i * 3) = px(i)<BR> Center(i * 3 + 1) = py(i)<BR> Center(i * 3 + 2) = 0<BR> <BR> Next i<BR> <BR> <BR> Dim lwp As AcadMLine<BR> ThisDrawing.SendCommand "_mline" & vbCr & "j" & vbCr & "z" & vbCr & "s" & vbCr & "20" & vbCr<BR> Set lwp = ThisDrawing.ModelSpace.AddMLine(Center)<BR><BR> picked = True<BR> <BR>Loop<BR> <BR>ErrHandle:<BR> <BR>End Sub
以上是提取pline坐标后,用mline重新绘制的源代码
请大家帮忙怎么处理pline弯曲处,我考虑让程序自动增加一些点,来贴合原来比较大的弧线。(因为原来pline是用很粗的线绘制的,这个pline线本生不包括arc段,由于线很粗,所以绘制出来的线,弧度很好,如果用mline描下来,自然就在曲度大的地方一下子就看出来pline和mline就不贴合在一起了)
或者是用一个工具,只要在 mline线上点击一下就在点击的位置增加一个点。多加几个点再编辑一个,但是如何再mline线上增加点,翻扁了怎个网络就只有lisp做的一个,我对lisp一无所知。所以盼望能有vba版本的。谢谢
或者有什么其他好办法,
一直思路顿塞,痛苦中
盼指教。谢谢 在弧段上增加点,你可以按照凸度的大小来控制加点的多少。<BR>按照前后点与弧段的凸度,则可以计算也弧段上某处的点的坐标。
页:
[1]