vba - 就我的圆锥创建者的超出范围问题向我提供建议
问题描述
我已经运行此代码并单击绘制我发现了一个超出范围的问题并且调试器给了我这一行的突出显示Set coneobject = ThisDrawing.ModelSpace.AddCone(conecenter, coneradius, coneheight)
但这对我来说没有错,你能建议我吗?
Private Sub cmd_draw_Click()
UserForm1.Hide
Dim coneangle As Double
Select Case comboboxangle.Text
Case 0
coneangle = 15
Case 1
coneangle = 30
Case 2
coneangle = 45
Case 3
coneangle = 60
End Select
Drawcone coneangle
UserForm1.show
End Sub
Public Sub Drawcone(coneangle As Double)
Dim coneobject As Acad3DSolid
Dim conecenter As Variant
Dim coneheight As Double
'Dim coneangle As Double
Dim coneradius As Double
coneheight = UserForm1.TextBox1.Text
With ThisDrawing.Utility
conecenter = .GetPoint(, vbCr & "select position for Top of cone:")
End With
conecenter(2) = conecenter(2) - coneheight / 2#
coneradius = coneheight * Tan(coneangle)
'Set coneobject = ThisDrawing.ModelSpace.AddCone(conecenter, coneradius, coneheight)
Set coneobject = ThisDrawing.ModelSpace.AddCone(conecenter, coneradius, coneheight)
coneobject.Update
ThisDrawing.ChangeViewDirection
End Sub
Private Sub cmd_finish_Click()
Unload Me
End Sub
''Private Sub cmd_pickpoint_Click()
''UserForm1.Hide
''Dim conecenter As Variant
'With ThisDrawing.Utility
'conecenter = .GetPoint(, vbCr & "select position for Top of cone:")
'End With
'UserForm1.show
'End Sub
Private Sub UserForm_Initialize()
With comboboxangle
.AddItem "15"
.AddItem "30"
.AddItem "45"
.AddItem "60"
.Text = "Empty"
End With
End Sub
解决方案
一个可能的问题是您对该tan
函数的使用:三角函数使用以弧度而不是度数tan
表示的角度值进行操作。
因此,您将需要更改:
coneradius = coneheight * Tan(coneangle)
至:
coneradius = coneheight * Tan(pi * (coneangle / 180#))
使用度数不会导致函数出错(因为您仍在提供数值),但该值将以弧度解释,因此会产生意想不到的结果(例如,15 度将被解释为 15 弧度 = 139.4 度)。
推荐阅读
- amazon-web-services - 如何在亚马逊云端设置缓存控制标头?
- java - 如何从java中的文本文件中获取长度?
- mysql - 大约 4 周后,while 循环刚刚停止工作,没有问题
- node.js - 防止 NoSQL 注入:猫鼬不应该根据给定的模式转换输入吗?
- scala - 从 Kafka 获取错误的偏移量
- ios - 如何使用 Firebase 分析事件。以及我们如何从 Firebase 控制台进行管理
- ruby-on-rails - 在 Rspec 请求测试中使用 Session、Cookie 或 Current_something
- azure - 如何将 azure 文件共享挂载到 linux vm 上的现有目录
- viewbag - 将 ViewBag 值传递给 ParttailView MVC
- r - R:堆叠的 geom_area 图显示空白多边形