- 积分
- 393
- 明经币
- 个
- 注册时间
- 2004-5-24
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
我用VBA编制的粗糙度程序,数值不能随粗糙度符号方向改变而改变,请大家帮忙看看。谢谢了!!
Sub rough() Dim p1(0 To 2) As Double Dim p2(0 To 2) As Double Dim p3(0 To 2) As Double Dim p0 As Variant Dim a, a1, a2 As Double Dim h1 As Double Dim text As String On Error Resume Next p0 = ThisDrawing.Utility.GetPoint(, "请输入粗糙度符号插入点:") a = ThisDrawing.Utility.GetAngle(, "请输入粗糙度符号旋转角:") text = ThisDrawing.Utility.GetString(1, vbCrLf & "请输入粗糙度符号Ra值:") h = ThisDrawing.Utility.GetReal("请输入粗糙度符号文本字符高度:") h1 = 1.4 * h / Cos(30 * 3.14159 / 180) p1(0) = p0(0) + 2 * h1 * Cos(60 * 3.14159 / 180 + a) p1(1) = p0(1) + 2 * h1 * Sin(60 * 3.14159 / 180 + a) p1(2) = 0 p2(0) = p0(0) - h1 * Cos(60 * 3.14159 / 180 - a) p2(1) = p0(1) + h1 * Sin(60 * 3.14159 / 180 - a) p2(2) = 0 p3(0) = p0(0) + h1 * Cos(60 * 3.14159 / 180 + a) p3(1) = p0(1) + h1 * Sin(60 * 3.14159 / 180 + a) p3(2) = 0 Dim line1 As AcadLine Dim line2 As AcadLine Dim line3 As AcadLine Set line1 = ThisDrawing.ModelSpace.AddLine(p0, p2) Set line2 = ThisDrawing.ModelSpace.AddLine(p2, p3) Set line3 = ThisDrawing.ModelSpace.AddLine(p0, p1) ThisDrawing.Application.ZoomExtents Dim tobject As AcadText tobject = ThisDrawing.ModelSpace.AddText(text, p2, h) ThisDrawing.Application.ZoomExtents a2 = 180 * a / 3.14159 If a2 > 90 And a2 <= 270 Then a1 = a - 3.14159 ElseIf a2 > 270 Then a1 = a - 2 * 3.14159 ElseIf a2 = -90 Then a1 = 3.14159 / 2 ElseIf a2 < 90 Then a1 = a End If tobject.Alignment = acAlignmentLeft tobject.Rotation = a1 tobject.Update End Sub
|
|