CAD工具之家's Archivers

From autopost on 2015-06-12 14:15:23

Autocad VBA初级教程 (第六课 数据类型的转换)

上一节课我们用一个简单的公式把角度转化为弧度,这样做便于大家理解。不过VBA中有现成的方法可以转换数据类型。

我们举例说明: jd = ThisDrawing.Utility.AngleToReal(30, 0) 这个表达式把角度30度转化为弧度,结果是.523598775598299。 AngleToReal需要两个参数,前面是表示要转换角度的数字,而后面一个参数可以取值为0-4之间的整数,有如下意义: 0:十进制角度;1:度分秒格式;2:梯度;3:弧度;4:测地单位 例:id= ThisDrawing.Utility.AngleToReal("62d30' 10""", 1) 这个表达式计算62度30分10秒的弧度

再看将字符串转换为实数的方法:DistanceToReal 需要两个参数,前一个参数是表示数值的字符串,后面可以取值1-5,表示数据格式,有如下意义: 1:科学计数;2:十进制;3:工程计数——英尺加英寸;4:建筑计数——英尺加分数英寸;5:分数格式。 例:以下表达式得到一个12.5的实数 temp1 = ThisDrawing.Utility.DistanceToReal("1.25E+01", 1) temp2 = ThisDrawing.Utility.DistanceToReal("12.5", 2) temp3 = ThisDrawing.Utility.DistanceToReal("12 1/2", 5) 而realtostring方法正好相反,它把一个实数转换为字符串。它需要3个参数 第一个参数是一个实数,第二个参数表示数据格式,含义同上,最后一个参数表示精确到几位小数。 temp1= ThisDrawing.Utility.RealToString(12.5, 1, 3) 得到这个字符串:“1.250E+01”,

下面介绍一些数型转换函数: Cint,获得一个整数,例:Cint(3.14159) ,得到3 Cvar,获得一个Variant类型的数值,例:Cvar("123" & "00"),得到”12300” Cdate,转换为date数据类型,例:MyShortTime = CDate("11:13:14 AM")

下面的代码可以写出一串数字,从000-099。

Sub test()

Dim add0 As String Dim text As String Dim p(0 To 2) As Double p(1) = 0 'Y坐标为0 p(2) = 0 'Z坐标为0 For i = 0 To 99 '开始循环   If i < 10 Then '如果小于10     add0 = "00" '需要加00   Else '否则     add0 = "0" '需要加0   End If   text = add0 & CStr(i) '加零,并转换数据   p(0) = i * 100 'X坐标   Call ThisDrawing.ModelSpace.AddText(text, p, 4) '写字   Next i   End Sub

重点解释条件判断语句: If 条件表达式 Then …… Else …… End if

如果满足条件那么程序往下执行,到else时不再往下执行,直接跳到End if后面 如果不满足条件,程序跳到else后往下运行。

  Call ThisDrawing.ModelSpace.AddText(text, p, 4) '写字 这是写单行文本,需要三个参数,分别是:写的内容、位置、字高  

 

转载至:http://www.cadzj.com/n/4208.html

查看完整版本: Autocad VBA初级教程 (第六课 数据类型的转换)

Tags:


©CAD工具之家
创办于:2013年5月24日