明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1967|回复: 8

求教:多段线点的个数不定,怎么用VBA输入多段线?

[复制链接]
发表于 2007-10-1 19:17:00 | 显示全部楼层 |阅读模式

用VBA输入多段线一般是先定义输入一个点向量

dim  pts(0 to 11) as double

pts(0)=...

pts(1)=...

...  ...  ...

然后再用ADDPOLYLINE方法绘多段线,这种方法点的个数要事先在"dim  pts(0 to 11) as double"中定好(此例为四个点)

现在我的问题是,点的个数不能事先定好,而是要根据前面的输入情况确定,但"dim  pts(0 to 11) as double"要求范围为常量

这样我就不能根据实际情况调节点向量的大小了,也就无法绘多断线线(如果强行定义一个很大的范围,如dim  pts(0 to 1000) as double,那么ADDPOLYLINE会认为有很多(0,0,0)的点)

请问大侠:如何解决当点的个数不定时,用VBA绘多段线的方法

发表于 2007-10-1 21:04:00 | 显示全部楼层
ReDim
 楼主| 发表于 2007-10-1 22:54:00 | 显示全部楼层

还不是很清楚ReDim,

是不是先DIM PTS(0 TO11) AS DOUBLE (先要画4点的多段线)

然后需要的时候再REDIM PTS(0 TO 14) AS DOUBLE(又画5点的多段线)

但问题是多段线的点数在提示输入前是未知的,可能是4个5个,也可能是100个200个

 楼主| 发表于 2007-10-1 23:01:00 | 显示全部楼层

加一句问

redim  preserve pts(0 to i)

i可以是变量吗?

发表于 2007-10-2 07:06:00 | 显示全部楼层

定义数组时应定义动态数组:

dim pts()

在第一次用到该数组的时候按用到的维数重新定义(比如用到一个点坐标)

redim pts(2)

以后每增加一个点就重新定义一次

redim preserve pts(ubound(pts)+3)

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

可我并不是每次增加一个点,而是未知个数

如果redim  pts(i)  中i可以是变量就好了

发表于 2007-10-2 12:48:00 | 显示全部楼层
当然可以
发表于 2007-10-11 20:04:00 | 显示全部楼层
一定要用多段线吗?用直线不行吗?直线就方便多了
 楼主| 发表于 2007-10-12 19:12:00 | 显示全部楼层

它主要处理的对象是多段线,我们工程绘河道横断面线一般用多段线,如果用直线的话,编辑操作起来很麻烦

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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