明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1887|回复: 1

如何对自动绘制的mline加点(在弯曲很大的地方)

[复制链接]
发表于 2005-4-3 11:16:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-4-3 15:49:20 编辑

Sub tt() Do While 1
If (flgPickNested = True) Then
Debug.Print "错误"
Exit Sub
Else
Dim pt As Variant
ThisDrawing.Utility.GetEntity ent, pt
End If

var = ent.Coordinates
retCoord = ent.Coordinates
k = (UBound(retCoord) + 1) / 3
ReDim px(k - 1) As Double
ReDim py(k - 1) As Double For i = 0 To UBound(retCoord) Step 3
px(i / 3) = retCoord(i)
py(i / 3) = retCoord(i + 1) Next i
Dim m As Integer
Dim n As Integer
m = 0
n = 0
ReDim Center(3 * (k - 1) + 2) As Double
For i = 0 To k - 1 Center(i * 3) = px(i)
Center(i * 3 + 1) = py(i)
Center(i * 3 + 2) = 0

Next i


Dim lwp As AcadMLine
ThisDrawing.SendCommand "_mline" & vbCr & "j" & vbCr & "z" & vbCr & "s" & vbCr & "20" & vbCr
Set lwp = ThisDrawing.ModelSpace.AddMLine(Center)

picked = True

Loop

ErrHandle:

End Sub 以上是提取pline坐标后,用mline重新绘制的源代码 请大家帮忙怎么处理pline弯曲处,我考虑让程序自动增加一些点,来贴合原来比较大的弧线。(因为原来pline是用很粗的线绘制的,这个pline线本生不包括arc段,由于线很粗,所以绘制出来的线,弧度很好,如果用mline描下来,自然就在曲度大的地方一下子就看出来pline和mline就不贴合在一起了) 或者是用一个工具,只要在 mline线上点击一下就在点击的位置增加一个点。多加几个点再编辑一个,但是如何再mline线上增加点,翻扁了怎个网络就只有lisp做的一个,我对lisp一无所知。所以盼望能有vba版本的。谢谢 或者有什么其他好办法, 一直思路顿塞,痛苦中 盼指教。谢谢
发表于 2005-4-4 21:38:00 | 显示全部楼层
在弧段上增加点,你可以按照凸度的大小来控制加点的多少。
按照前后点与弧段的凸度,则可以计算也弧段上某处的点的坐标。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 18:52 , Processed in 0.163640 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表