|
推荐
楼主 |
发表于 2019-6-16 11:04:31
|
只看该作者
经典图书
附原文件 sw2012 及 swp
ball-point.rar
(147.96 KB, 下载次数: 228)
操作說明:1.在3D草圖執行 main宏.
2.另有興趣者幫忙測試,看是否有其他問題!
- ' ******************************************************************************
- '
- ' macro recorded on 06/13/19 by scliang
- ' 球面作佈滿凸點
- '
- ' ******************************************************************************
- Dim swApp As Object
- Dim Part As Object
- Dim boolstatus As Boolean
- Sub main()
- Set swApp = Application.SldWorks
- Set Part = swApp.ActiveDoc
- Dim skPoint As Object
- Dim d1 As Object
- Dim d2 As Object
- Part.SketchManager.AddToDB True
- Set d1 = Part.Parameter("D1@草圖1") '球體直徑
- Set d2 = Part.Parameter("D1@3D草圖1") '凸點直徑
- d1.SystemValue = InputBox("鍵入球體直徑 [單位:米]", "鍵入參數", 0.06)
- d2.SystemValue = InputBox("鍵入凸點直徑 [單位:米]", "鍵入參數", 0.006)
- '~~~ 點作圖 ~~~
- pi = Atn(1) * 4
- S = d1.SystemValue * pi / 2 '球體半圓弧長
- N1 = IIf(Int(S / d2.SystemValue) / 2 = Int(S / d2.SystemValue / 2), Int(S / d2.SystemValue) - 1, Int(S / d2.SystemValue)) '球體半圓等分個數,需是奇數
- A1 = pi / N1 '球體半圓等分弧度
- Debug.Print d1.SystemValue
- For i = 1 To N1 - 1
- Yi = d1.SystemValue / 2 * Cos(A1 * i) '點的Y座標
- Ri = d1.SystemValue / 2 * Sin(A1 * i) '剖切圓半徑
- N2 = Int(Ri * 2 * pi / d2.SystemValue) '剖切圓等分個數
- A2 = 2 * pi / N2
- For j = 0 To N2 - 1
- Xj = Ri * Cos(A2 * j)
- Zj = Ri * Sin(A2 * j)
- Set skPoint = Part.SketchManager.CreatePoint(Xj, Yi, Zj)
- Next j
- Next i
- boolstatus = Part.EditRebuild3()
- Part.SketchManager.AddToDB False
- End Sub
复制代码
|
|