- UID
- 25232
- 积分
- 2113
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-1-12
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在efan2000斑竹和各位网友的帮助下,终于完成了这段函数代码,因为我是新手,所以自我感觉特别好!觉得比明经的还好(脸皮真厚)!也许您能用的上。
Public Function AddHelix(pa As Variant, n As Integer, _
R1 As Double, R2 As Double, H As Double) As Acad3DPolyline
'pa是起点,n是匝数,R1是起点半径,R2是终点半径
'H是总高度
Dim polyObj As Acad3DPolyline
Dim points() As Double
Dim a As Integer
Const PI = 3.1415926535
pa = ThisDrawing.Utility.GetPoint(, "请输入基点:")
ReDim points(0 To 3 * 360 * n + 2) As Double
For a = 0 To 3 * 360 * n Step 3
points(a) = pa(0) + (R1 + (a / 3) * (R2 - R1) / 360 / n) _
* Cos(2 * PI * (a / 3) / 360)
points(a + 1) = pa(1) + (R1 + (a / 3) * (R2 - R1) / 360 / n) _
* Sin(2 * PI * (a / 3) / 360)
points(a + 2) = pa(2) + H * (a / 3) / 360 / n
Next
Set polyObj = ThisDrawing.ModelSpace.Add3DPoly(points)
ZoomExtents
End Function
螺旋线各点到中心轴的距离是严格按照线性关系变化的。下面是一段主程序调用示范。
Sub Example_Add3DPoly()
Dim plineObj As Acad3DPolyline
Set plineObj = AddHelix(pa, 10, 200, 100, 300)
End Sub |
|