明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2186|回复: 3

[求助]CAD画地面线时出现的奇怪问题,急寻答案

[复制链接]
发表于 2006-5-13 00:54:00 | 显示全部楼层 |阅读模式

我在用vb调用CAD画道路路线地面线时,编写了下面这段程序,程序未提示出错,可在CAD中就是没有出图效果,请高人给个解法:
我不会直接从数据库中取单个数据,于是我将数据引用到了listbox,在取其list属性值作为地面线各点值,可是我定义的basepnt()和pnt()却出现了下标越界的错误提示,实在想不通,而且在下面这个子过程中没有出现终止程序运行的错误
Public Sub drawdmx()
Dim db As Database
Dim rs As Recordset
Dim i As Integer
Dim basepnt() As Double, pnt() As Double
Dim plineobj As AcadLWPolyline
Dim points() As Double
Dim lineobj As AcadLine
Set db = opendatabase("L:\设计!重要!!\我的设计\zdm1.mdb")
Set rs = db.OpenRecordset("地面线数据")
Do While Not rs.EOF
   List1.AddItem rs.fields(1).Value
   List2.AddItem rs.fields(2).Value
   rs.MoveNext
Loop
 ReDim points(List1.ListCount)
Do Until i = List1.ListCount
basepnt(0) = 0
basepnt(1) = 10 * Me.List2.List(0)
basepnt(2) = 0
pnt(0) = Me.List1.List(i + 1)
pnt(1) = 10 * Me.List2.List(i + 1)
pnt(2) = 0
Set lineobj = cadapp.ActiveDocument.ModelSpace.AddLine(basepnt, pnt)
i = i + 1
loop

还有个问题是:写好的添加文本程序为何只能使用前期绑定方式才能添加到CAD中?

发表于 2006-5-13 05:59:00 | 显示全部楼层

那是因为你的basepnt()和pnt()都没有具体定义是多少个元素。

如果你的程序只需要3个元素,就定义成basepnt(2)和pnt(2)。

 楼主| 发表于 2006-5-13 12:54:00 | 显示全部楼层

斑竹果然是高手,我打心里佩服, 这问题困扰我好几天了,早点求教您就好了,设计当前,还要多多劳烦象您一样的高手

 楼主| 发表于 2006-5-14 10:14:00 | 显示全部楼层
还是想麻烦您,昨天经您提示,这个程序已经运行,我准备把它做为一个主程序的一部分,就是在vb中的菜单下添加出图项,然后把这个程序的代码拷贝到出图项的click事件下,结果就没有地面线出现,连listbox也读不到数据,而同样的代码只要放在form-load下的单独程序中就运行好好的,这个问题有点怪,您看可以解决么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 04:27 , Processed in 0.174245 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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