找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 815|回复: 13

[求助]:vba如何和acad交互啊?

[复制链接]
发表于 2004-10-8 21:52:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我想在acad的命令行中输入数据,然后在vba中处理,可是使用getpoint函数总是得到var的变量,如果用ctsr强迫转换为字符串,总是提示类型不符合,这是怎么回事啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-9 08:40:32 | 显示全部楼层
getpoint获取的是Double型的数组,当然无法转换为字符串
如果要获取字符串用GetString
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-11 16:38:04 | 显示全部楼层
谢谢斑竹!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-11 19:29:38 | 显示全部楼层
再次请教,其实我想做一个程序,功能是由命令行输入点的三维坐标,然后在该坐标上画一个小圆,并在旁边标注上该点的高程,程序无限循环,如果直接输入回车,那么程序退出。我用的是acad2002,我想这中间必然涉及到,数组到字符的转换,另外,我发现定义的数组类型好像不能和getpoint函数符合,请高手指教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-11 19:43:41 | 显示全部楼层
不必转换,getpoint可以接受“X,Y,Z”格式的输入,它会自动转换为数组的
VB不能对数组直接赋值,你只能这样
dim pnt
pnt=ThisDrawing.Utility.GetPoint
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-11 20:37:01 | 显示全部楼层
我的程序我试过了,可以运行,不过在最后总会弹出窗口说类型不匹配,请教这是为什么?
Sub Exampl()
    ' This example adds a line in model space
    Dim circleObj As AcadCircle
    Dim textObj As AcadText
    Dim height As Double
    Dim textString As String
    Dim px(0 To 2) As Double
    Dim radius As Double
    Dim x As String
    radius = 0.2
    height = 0.5
    Dim returnPnt
    returnPnt = 1
    Do While returnPnt <> 0
  ' Return a point using a prompt
    returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
     Set circleObj = ThisDrawing.ModelSpace.AddCircle(returnPnt, radius)
       x = CDbl(returnPnt(2))
      textString = x
    Set textObj = ThisDrawing.ModelSpace.AddText(textString, returnPnt, height)
Loop
   
End Sub
程序的功能我和上面说的一样,请高手修改一下,谢谢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-11 21:01:05 | 显示全部楼层
我的土方法,呵呵,高手见笑。
On Error Resume Next
Me.Hide
radius = 0.2
height = 0.5
Dim returnPnt
returnPnt = 1
Dim k As Integer
k = 0
Do While k = 0
' Return a point using a prompt
    returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
    If Err.Number = -2145320928 Then Exit Do
    Set circleObj = ThisDrawing.ModelSpace.AddCircle(returnPnt, radius)
    x = CDbl(returnPnt(2))
    textString = x
    Set textObj = ThisDrawing.ModelSpace.AddText(textString, returnPnt, height)
Loop
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-11 21:09:48 | 显示全部楼层
Sub tt()
On Error GoTo ErrHandle
Dim circleObj As AcadCircle
Dim textObj As AcadText
Dim height As Double
Dim radius As Double
radius = 0.2
height = 0.5
Dim returnPnt
Do While 1
returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
Set circleObj = ThisDrawing.ModelSpace.AddCircle(returnPnt, radius)
Set textObj = ThisDrawing.ModelSpace.AddText(returnPnt(2), returnPnt, height)
Loop
ErrHandle:
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-11 21:32:52 | 显示全部楼层
感谢感谢,在麻烦两位告诉我一下,程序中控制转向的原理是什么,好吗?
我直接在程序运行时敲回车,那么会产生什么样的变量变化呢?
另外,两位的程序中都有对错误的描述,这是不是说,程序把错误发生的原因告诉解释文件,由它在调用已编号的错误描述呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-22 08:22:25 | 显示全部楼层
谢谢,非常感谢,支持
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-29 08:26:38 | 显示全部楼层
如果想改变画的图的点的属性来改变图,是不是的用LISP啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2004-11-15 15:50:07 | 显示全部楼层
看到一个好东东,对我的用处很大,谢谢楼上各位。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-18 21:48:35 | 显示全部楼层
解决了小弟的燃眉之急,先谢谢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-5 20:27:09 | 显示全部楼层
以上各楼主讨论真好!!!使人收益不少
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-29 07:17 , Processed in 0.199683 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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