明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1596|回复: 4

如何获得线段的端点?

[复制链接]
发表于 2004-2-11 19:13:00 | 显示全部楼层 |阅读模式
我需要获得选择线段的端点,首先在屏幕中选取线段(可能是line,也可能是polyline),简要代码如下:


dim returnobj as acadentity , basepnt as variant, pnt as variant , line1 as variant


ActiveDocument.Utility.GetEntity returnobj, basepnt, "选择第一根线段:"


select case returnobj.objectname


                                                                                 case "line"


                                                                                                                                                 set line1=returnobj


                                                                                                                                                 pnt=line1.startpoint


                                                                                 case "polyline"


                                                                                                                                                 set line1=returnobj


                                                                                                                                         pnt=line1.coordinates()


end select


这样运行时,如果选取的是line,那么一切正常;如果是polyline,则不能读取line1.coordinates(),虽然在监视窗口可以看到line1.coordinates.如果将line1定义为polyline,则选择polyline可以读取line1.coordinates,但选择line时不能读取startpoint. 总之,二者不可得兼,各位有什么办法吗?不要各自分别定义一个line和polyline.
发表于 2004-2-11 21:03:00 | 显示全部楼层
你的问题在我这里没有出现:
  1. Sub GetLinePnt()
  2.        Dim returnobj As AcadEntity, basepnt As Variant, pnt As Variant, line1 As Variant
  3.        ActiveDocument.Utility.GetEntity returnobj, basepnt, "选择第一根线段:"
  4.        Select Case returnobj.ObjectName
  5.                      Case "AcDbLine"
  6.                                      Set line1 = returnobj
  7.                                      pnt = line1.StartPoint
  8.                      Case "AcDbLWPolyline", "AcDbPolyline"
  9.                                      Set line1 = returnobj
  10.                                      pnt = line1.Coordinates()
  11.        End Select
  12.        Debug.Print pnt(0) & "   " & pnt(1) & "   " & pnt(2)
  13. End Sub
 楼主| 发表于 2004-2-11 21:09:00 | 显示全部楼层
不会吧,我是acad2000,难道是版本的问题??
发表于 2004-2-11 21:29:00 | 显示全部楼层
注意objectname前面有"AcDb"前缀,且大小写不要错。
 楼主| 发表于 2004-2-11 21:36:00 | 显示全部楼层
莫名发表于2004-2-11 21:29:00注意objectname前面有\"AcDb\"前缀,且大小写不要错。

这些方面没问题,我只是将代码的主要意思写了些,并不是真正的代码.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 09:47 , Processed in 0.174054 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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