ryouss 发表于 2018-5-20 16:36:44

圓周分佈鉆孔-宏

參考



Sub Draw_()
With UserForm1
'判定資料沒打或是輸入錯誤(起始圓半徑限制不能小於等於鉆孔直徑)
If .TextBox4.Value <= .TextBox3.Value Or .TextBox1.Value = "" Or .TextBox2.Value = "" Or .TextBox3.Value = "" Or .TextBox4.Value = "" _
      Or .TextBox5.Value = "" Or .TextBox6.Value = "" Then
      MsgBox ("Data error Or Data empty")
      Exit Sub
End If
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swModel = swApp.ActiveDoc
Set swSketchMgr = swModel.SketchManager

Part.SketchManager.InsertSketch True '依據選取面插入草圖
'中心圓之座標及作圖
X1 = .TextBox1.Value / 1000
Y1 = .TextBox2.Value / 1000
X2 = X1 + .TextBox3.Value / 2 / 1000
Set swSketchSegment = swSketchMgr.CreateCircle(X1, Y1, 0#, X2, Y1, 0#)
'圓周分佈之鉆孔
pi = Atn(1) * 4
Drill_Diameter = .TextBox3.Value / 1000
Start_Circle_radius = .TextBox4.Value / 1000
Circle_number = .TextBox6.Value
ArcAngle = pi   '複製孔之圓弧角皆為180度
Drill_depth = .TextBox5.Value / 1000 '鉆孔深
For i = 1 To Circle_number
      Circle_radius = i * .TextBox4.Value / 1000 '分佈圓周之半徑
      Copy_Number = Int(2 * Circle_radius * pi / Start_Circle_radius + 0.5) '分佈圓周之鉆孔數
'分佈圓之基圓作圖
      BX1 = X1 + Circle_radius
      BX2 = BX1 + Drill_Diameter / 2
      Set swSketchSegment = swSketchMgr.CreateCircle(BX1, Y1, 0#, BX2, Y1, 0#)
'分佈圓之複製孔數,圓周複製參數:圓弧半徑、圓弧角、花紋數、花紋間距(間隔弧度)、圖案旋轉、刪除實例
      boolstatus = swSketchMgr.CreateCircularSketchStepAndRepeat(Circle_radius, ArcAngle, Copy_Number, 2 * pi, True, "", True, True, True)
Next
End With
Dim myFeature As Object
Set myFeature = Part.FeatureManager.FeatureCut3(True, False, False, 0, 0, Drill_depth, 0, False, False, False, False, 1.74532925199433E-02, _
1.74532925199433E-02, False, False, False, False, False, True, True, True, True, False, 0, 0, False)
End Sub

Sub main()
UserForm1.Show
End Sub


冷月梧桐 发表于 2018-5-20 18:28:06

我表示还是手编吧

yinzengguang 发表于 2018-5-20 21:20:09

楼主自己编写的?
想学习用C#编写

ryouss 发表于 2018-5-20 23:01:29

冷月梧桐 发表于 2018-5-20 18:28
我表示还是手编吧

孔數 1195,一鍵解決.


探根究底 发表于 2018-5-20 23:56:31

写程序用什么语言 怎么又是VB又是C语言的 有啥区别?

ryouss 发表于 2018-5-21 08:37:14

探根究底 发表于 2018-5-20 23:56
写程序用什么语言 怎么又是VB又是C语言的 有啥区别?

程序语言形形色色有很多,先選個跟自己工作興趣有關的學習.

林希9527 发表于 2018-5-21 09:14:26

楼主很赞哦!

远祥 发表于 2018-5-21 21:17:38

有插件做这类规则编程就会方便很多。

0377zjp 发表于 2018-5-22 09:00:43

怎么导入

ryouss 发表于 2018-5-22 10:34:56

本帖最后由 ryouss 于 2018-5-24 09:42 编辑

0377zjp 发表于 2018-5-22 09:00
怎么导入
' 功能:圓周分佈鉆孔,本範例因是用除料拉伸,所以鉆孔是平底.
' 操作: 1.在零件先選取要鉆孔之平面.
'          2.執行 "main" .
'          3.X座標取正數,若是負數可能會出錯.
'          4.首圈半徑近似於相鄰兩孔之中心距離.

2018-5-24修正    swp檔


页: [1] 2
查看完整版本: 圓周分佈鉆孔-宏