找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?在线3D打印服务,一键上传,自动报价 
查看: 2985|回复: 8
打印 上一主题 下一主题

[求助] 圓周分布鉆孔-宏 (已解決)

[复制链接]
跳转到指定楼层
1
发表于 2018-5-24 17:36:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ryouss 于 2018-5-25 09:18 编辑

如圖所示,鉆孔直徑8時原點有孔,但改為鉆孔直徑5時原點就沒有孔,
有興趣者幫看一下,可否有解決方法!
宏是在2012版編程的.

附SWP文件  


原點沒孔

原點有孔


  1. ' *************************************************************
  2. ' macro recorded on 05/20/18 by scliang
  3. ' 功能:圓周分佈鉆孔,本範例因是用除料拉伸,所以鉆孔是平底.
  4. ' 操作: 1.在零件先選取要鉆孔之平面.
  5. '       2.執行 "main" .
  6. '       3.X座標取正數,若是負數可能會出錯.
  7. '       4.首圈半徑近似於相鄰兩孔之中心(弧長)距離.
  8. '
  9. ' *************************************************************

  10. Dim X1 As Double 'TextBox1
  11. Dim Y1 As Double 'TextBox2
  12. Dim Drill_Diameter As Double 'TextBox3
  13. Dim Start_Circle_radius As Double 'TextBox4
  14. Dim Drill_depth As Double 'TextBox5
  15. Dim Circle_number  As Integer 'TextBox6
  16. Dim X2 As Double
  17. Dim BX1 As Double
  18. Dim BX2 As Double
  19. Dim pi As Double
  20. Dim Circle_radius As Double

  21. Sub main()
  22. UserForm1.Show
  23. End Sub

  24. Sub Draw_()
  25. With UserForm1
  26. '判定資料是否沒打入
  27. If .TextBox1.Value = "" Or .TextBox2.Value = "" Or .TextBox3.Value = "" Or .TextBox4.Value = "" Or .TextBox5.Value = "" Or .TextBox6.Value = "" Then
  28.       MsgBox ("Enter empty")
  29.       Exit Sub
  30. End If
  31. '判定資料是否是輸入錯誤(起始圓半徑限制不能小於等於鉆孔直徑)
  32. Drill_Diameter = .TextBox3.Value / 1000
  33. Start_Circle_radius = .TextBox4.Value / 1000
  34. If Drill_Diameter >= Start_Circle_radius Then
  35.       MsgBox ("Data error")
  36.       Exit Sub
  37. End If
  38. Set swApp = Application.SldWorks
  39. Set Part = swApp.ActiveDoc
  40. Set swModel = swApp.ActiveDoc
  41. Set swSketchMgr = swModel.SketchManager
  42. Part.SketchManager.InsertSketch True '依據選取面插入草圖
  43. '中心圓之座標及作圖
  44. X1 = .TextBox1.Value / 1000
  45. Y1 = .TextBox2.Value / 1000
  46. X2 = X1 + Drill_Diameter / 2
  47. Set swSketchSegment = swSketchMgr.CreateCircle(X1, Y1, 0#, X2, Y1, 0#)
  48. '圓周分佈之鉆孔
  49. pi = Atn(1) * 4
  50. Circle_number = .TextBox6.Value
  51. Drill_depth = .TextBox5.Value / 1000 '鉆孔深
  52. For i = 1 To Circle_number
  53.       Circle_radius = i * Start_Circle_radius '分佈圓周之半徑
  54.       Copy_Number = Int(2 * Circle_radius * pi / Start_Circle_radius + 0.5) '分佈圓周之鉆孔數
  55. '分佈圓之基圓作圖
  56.       BX1 = X1 + Circle_radius
  57.       BX2 = BX1 + Drill_Diameter / 2
  58.       Set swSketchSegment = swSketchMgr.CreateCircle(BX1, Y1, 0#, BX2, Y1, 0#)
  59. '分佈圓之複製孔數,圓周複製參數:圓弧半徑、圓弧角、花紋數、花紋間距(間隔弧度)、圖案旋轉、刪除實例
  60.       boolstatus = swSketchMgr.CreateCircularSketchStepAndRepeat(Circle_radius, pi, Copy_Number, 2 * pi, True, "", True, True, True)
  61. Next
  62. End With
  63. '除料拉伸
  64. Dim myFeature As Object
  65. Set myFeature = Part.FeatureManager.FeatureCut3(True, False, False, 0, 0, Drill_depth, 0, False, False, False, False, 1.74532925199433E-02, _
  66. 1.74532925199433E-02, False, False, False, False, False, True, True, True, True, False, 0, 0, False)
  67. End Sub
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 赞一下!赞一下!
2
发表于 2018-5-25 08:18:25 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1贡献 +10 收起 理由
ryouss + 10 赞一个!

查看全部评分

3
 楼主| 发表于 2018-5-25 09:13:44 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4
发表于 2018-5-26 15:22:32 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
5
发表于 2018-5-27 18:11:13 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
6
 楼主| 发表于 2018-5-27 20:35:30 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
7
发表于 2018-6-16 14:22:02 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
8
发表于 2018-10-3 09:30:47 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-4-20 17:29 , Processed in 0.026721 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表