乐筑天下

帖子
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 22|回复: 1

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

[复制链接]

3

主题

17

帖子

1

银币

初来乍到

Rank: 1

铜币
29
发表于 2005-4-3 11:16:00 | 显示全部楼层 |阅读模式
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版本的。谢谢
或者有什么其他好办法,
一直思路顿塞,痛苦中
盼指教。谢谢
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2005-4-4 21:38:00 | 显示全部楼层
在弧段上增加点,你可以按照凸度的大小来控制加点的多少。
按照前后点与弧段的凸度,则可以计算也弧段上某处的点的坐标。
回复

举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁體中文

GMT+8, 2025-3-17 10:46 , Processed in 0.651662 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表