明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1645|回复: 4

算法讨论

[复制链接]
发表于 2005-8-16 19:47:00 | 显示全部楼层 |阅读模式

如题,对于一段任意曲线,如何能得到从起点开始,每隔一定距离的点的坐标?

或者其中一个特例,全部是直线的曲线,每隔一定距离的点的坐标。

大家有什么思路,请提示一下,谢谢。

发表于 2005-8-16 21:46:00 | 显示全部楼层

在VisualLISP中有专门的函数,在VBA中实现很困难

 楼主| 发表于 2005-8-16 23:29:00 | 显示全部楼层
可惜我不会lisp,只能用vba。
发表于 2005-8-17 07:03:00 | 显示全部楼层
  1. Sub Measure()
  2.     Dim Ent As AcadEntity
  3.     Dim Pnt As Variant
  4.     ThisDrawing.Utility.GetEntity Ent, Pnt, vbCr & "请选择要按距离取点的曲线:"
  5.     Ent.Highlight True
  6.     Dim Dis As Double
  7.     Dis = ThisDrawing.Utility.GetDistance(, vbCr & "选择长度:")
  8.     Dim Cnt As Long
  9.     Cnt = ThisDrawing.ModelSpace.Count
  10.     ThisDrawing.SendCommand "measure" & vbCr & _
  11.                GetDoubleEntTable(Ent, Pnt) & vbCr & Dis & vbCr
  12.     Dim i As Long
  13.     Dim Point As AcadPoint
  14.     Dim PntPos As Variant
  15.     For i = ThisDrawing.ModelSpace.Count - 1 To Cnt Step -1
  16.         If ThisDrawing.ModelSpace(i).ObjectName = "AcDbPoint" Then
  17.             Debug.Print ThisDrawing.ModelSpace(i).ObjectName
  18.             Set Point = ThisDrawing.ModelSpace(i)
  19.             PntPos = Point.Coordinates
  20.             Debug.Print PntPos(0) & "  " & PntPos(1)
  21.             Point.Delete
  22.         End If
  23.     Next
  24. End Sub
  25. '转换双元表的函数
  26. Public Function GetDoubleEntTable(entObj As AcadEntity, Pnt As Variant) As String
  27.     Dim entHandle As String
  28.     entHandle = entObj.Handle
  29.     GetDoubleEntTable = "(list(handent " & Chr(34) & entHandle & Chr(34) & _
  30.                      ")(list " & Str(Pnt(0)) & Str(Pnt(1)) & Str(Pnt(2)) & "))"
  31. End Function

发表于 2005-8-17 14:20:00 | 显示全部楼层

请教Mccad

请教Mccad,如何取得样条曲线上各节点的坐标?用vla-get-ControlPoints Object函数只能取得样条曲线上的控制点坐标.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 12:52 , Processed in 0.146321 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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