明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1739|回复: 10

请问,在AutoCAD VBA中,怎么选择一个数值并返回此数值到一个变量中?

[复制链接]
发表于 2011-2-19 09:08:33 | 显示全部楼层 |阅读模式
请问,在AutoCAD VBA中,怎么选择一个数值并返回此数值到一个变量中?同时,当用户选择的不是数值时提示用户重新选择?
发表于 2011-2-19 09:13:47 | 显示全部楼层
你所谓选择是不是叫用户输入数值?
看cad帮助里面的例子
Sub Example_GetInteger()
    ' This example returns the integer entered by the user.
   
    Dim returnInt As Integer
   
    ' Return the value entered by user. A prompt is provided.
    returnInt = ThisDrawing.Utility.GetInteger("Enter an integer: ")
    MsgBox "The integer entered was " & returnInt & vbCrLf & _
            "(Enter the next value without prompting.)", , "GetInteger Example"
   
    ' Return the value entered by user. No prompt is provided.
    returnInt = ThisDrawing.Utility.GetInteger()
    MsgBox "The integer entered was " & returnInt, , "GetInteger Example"
   
End Sub
 楼主| 发表于 2011-2-19 09:17:05 | 显示全部楼层
非常感谢yanyanjun999老师的解答!
我是希望在命令行中提示用户可以选择或者输入数值——从AutoCAD中选择一个数值对象(当用户选择的不是数值时提示用户重新选择),同时也允许用户在命令行中直接输入数值。
 楼主| 发表于 2011-2-19 09:19:49 | 显示全部楼层
允许用户输入任何数值(不限于整数)。
 楼主| 发表于 2011-2-19 09:27:18 | 显示全部楼层
如果用户选择一个数值对象,也需要把此数值返回到一个变量中,供后续使用。
发表于 2011-2-19 09:47:10 | 显示全部楼层
首先我也是个大菜鸟,不是老师,要选择double类型的数值可以用GetReal,让用户输入实数
cad帮助里的代码
Sub Example_GetReal()
    ' This example returns the Real entered by the user.
   
    Dim returnReal As Double
   
    ' Return the value entered by user. A prompt is provided.
    returnReal = ThisDrawing.Utility.GetReal("Enter an Real: ")
    MsgBox "The real entered was " & returnReal & vbCrLf & _
            "(Enter the next value without prompting.)", , "GetReal Example"
   
    ' Return the value entered by user. No prompt is provided.
    returnReal = ThisDrawing.Utility.GetReal()
    MsgBox "The real entered was " & returnReal, , "GetReal Example"
   
End Sub
发表于 2011-2-19 09:49:22 | 显示全部楼层
从命令行中选择一个数值,可以用getkeyword吗,不太清楚。
如果从cad中选择一个数值的话,最好在vba里面用窗体吧。
 楼主| 发表于 2011-2-19 10:19:40 | 显示全部楼层
如何允许用户从AutoCAD中选中数值呢?
发表于 2011-2-19 12:53:39 | 显示全部楼层
选择哪里的数据呢?是指单行或多行文字里面的数据吗,运用选择集啊,然后判断里面的text内容是不是数值
发表于 2011-2-26 11:20:32 | 显示全部楼层
楼主的意思,是不是这样?
Sub tt()
On Error Resume Next
Dim data As Double
Dim obj As AcadText
Dim pt As Variant
ThisDrawing.Utility.GetEntity obj, pt, "请选择!"
While Not IsNumeric(obj.TextString)
MsgBox "该文本不是数值,请重新选择!"
ThisDrawing.Utility.GetEntity obj, pt, "请重新选择!"
Wend
data = Val(obj.TextString)
MsgBox "已存入变量data中,值为:" & data
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 20:55 , Processed in 0.187443 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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