明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3339|回复: 8

请问在vba中如何获得多段线的各个点的坐标?

[复制链接]
发表于 2007-5-28 16:52:00 | 显示全部楼层 |阅读模式
请问在vba中如何获得多段线的各个点的坐标?
发表于 2007-5-29 10:02:00 | 显示全部楼层

假设你已经取得多段线的实体objL

objL.Coordinate 就可以取得各个顶点的坐标。

如果多段线是三维的,那么

第一个点 XYZ值分别是:Coordinate(0),Coordinate(1),Coordinate(2)

第二个点 XYZ值分别是:Coordinate(3),Coordinate(4),Coordinate(5)

其余点依此类推。

如果多段线是二维的(LWPolyline),那么

第一个点 XY值分别是:Coordinate(0),Coordinate(1)

第二个点 XY值分别是:Coordinate(2),Coordinate(3)

其余点依此类推。

 楼主| 发表于 2007-5-29 10:13:00 | 显示全部楼层
烟雨.江南发表于2007-5-29 10:02:00假设你已经取得多段线的实体objLobjL.Coordinate 就可以取得各个顶点的坐标。如果多段线是三维的,那么第一个点 XYZ值分别是:Coordinate(0),Coordinate(1),Coordinate(2)第二个点 XYZ值分别

哦,明白了~~~

原来要用Coordinate这个数组啊

谢谢了~~烟雨.江南兄~~~

 楼主| 发表于 2007-5-31 00:41:00 | 显示全部楼层

我要将Coordinate(0)的值赋给a

a必须是Variant型变量吗?

我把a设置成double型的话就会出现错误

发表于 2007-5-31 09:25:00 | 显示全部楼层

抱歉!我前面的回帖打漏了一个S,应该是Coordinates。

如果是Coordinate的话,Coordinate(0)是第一个点的三维坐标,要取得第一个点的XYZ值可以这样:

dim x#,y#,z#

x = Coordinate(0)(0)

y = Coordinate(0)(1)

z = Coordinate(0)(2)

或者

x = Coordinates(0)

y = Coordinates(1)

z = Coordinates(2)

 楼主| 发表于 2007-5-31 10:11:00 | 显示全部楼层

那下面这段是用Coordinate还是Coordinates呢?

如果多段线是二维的(LWPolyline),那么

第一个点 XY值分别是:Coordinate(0),Coordinate(1)

第二个点 XY值分别是:Coordinate(2),Coordinate(3)

发表于 2007-10-28 20:25:00 | 显示全部楼层
太好了,正找呢~~~
发表于 2007-10-29 00:33:00 | 显示全部楼层
我还想问一句,可以用这个办法来取,但结束符是什么呢?循环退出的条件是干什么呢?
  While coordinate(i) <> ""
   x(0) = coordinate(i): x(1) = coordinate(i + 1): x(2) = coordinate(i + 2)
  Set point = ThisDrawing.ModelSpace.AddPoint(x)
   i = i + 3
   Wend
以上循环取出各点坐标,但最后的结束符是什么呢,最终出现下标越界了,一直十分郁闷啊!
恳请各位老兄给予指点!!!!
发表于 2008-3-1 10:07:00 | 显示全部楼层

他获得这个坐标点是否由一个方向向另一个方向依次进行的.还是没有规律的.

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

本版积分规则

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

GMT+8, 2024-11-26 11:41 , Processed in 0.190534 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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