Advertisement
Guest User

Untitled

a guest
Dec 27th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2.  
  3. Dim swApp As Object
  4. Dim Part As Object
  5.  
  6. Dim tabx(1000) As Double
  7. Dim taby(1000) As Double
  8. Dim tabz(1000) As Double
  9.  
  10. Dim length As Double
  11. Dim bolle As Boolean
  12. Dim n As Integer
  13. Dim rayon As Double
  14. Dim rayon2 As Double
  15. Dim nombre As Integer
  16. Dim dist As Double
  17. Dim i, j As Integer
  18.  
  19. Dim COSMOSWORKSObj As Object
  20. Dim CWAddinCallBackObj As Object
  21. Dim swSheetWidth As Double
  22. Dim swSheetHeight As Double
  23. Dim swPart As PartDoc
  24.  
  25. Dim skSegment As Object
  26. Dim myDimension As SldWorks.Dimension
  27. Dim myDisplayDim As Object
  28. Dim boolstatus As Boolean
  29. Dim longstatus As Long, longwarnings As Long
  30. Dim skPoint As Object
  31. Dim myFeature As Object
  32.  
  33. Sub main()
  34.  
  35. 'Ouverture d'une nouvelle pièce
  36. Set swApp = Application.SldWorks
  37. Set CWAddinCallBackObj = swApp.GetAddInObject("CosmosWorks.CosmosWorks")
  38. Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS
  39. swSheetWidth = 0
  40. swSheetHeight = 0
  41. Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2018\templates\Pièce.prtdot", 0, swSheetWidth, swSheetHeight)
  42. Set swPart = Part
  43. swApp.ActivateDoc2 "Pièce1", False, longstatus
  44. Set Part = swApp.ActiveDoc
  45.  
  46. 'Esquisse 3D
  47. Part.SketchManager.Insert3DSketch (True)
  48. Part.SketchManager.AddToDB = True
  49.  
  50. 'Nombre de boule
  51. n = InputBox("Entrer la valeur de n")
  52. nombre = n
  53.  
  54. 'Déclaration longueur et rayons
  55. length = InputBox("Entrer la valeur de l") / 1000
  56. rayon = InputBox("Entrer la valeur des particules") / 1000
  57. rayon2 = rayon * 1.2
  58.  
  59. 'Gener. Aléatoire des points
  60. For i = 1 To n
  61. Randomize Timer
  62. tabx(i) = Rnd * (length - rayon2 * 2) + rayon2  'Position x
  63. taby(i) = Rnd * (length - rayon2 * 2) + rayon2  'Position y
  64. tabz(i) = length / 2 'Position z
  65.  
  66. bolle = 0
  67. If (i <> 1) Then
  68. For j = 1 To i - 1
  69. dist = Sqrt((tabx(i) - tabx(j)) ^ 2 + (taby(i) - taby(j)) ^ 2 + (tabz(i) - tabz(j)) ^ 2)
  70. If (dist < 2.2 * rayon) Then bolle = 1
  71. Next j
  72. End If
  73.  
  74. If (bolle = 0) Then
  75. Set skPoint = Part.SketchManager.CreatePoint(tabx(i), taby(i), tabz(i)) 'Creation du point
  76. 'MsgBox tabx(i) & " " & taby(i) & " " & tabz(i)
  77. Else
  78. i = i - 1
  79. End If
  80.  
  81. Next i
  82.  
  83. 'Insertion d'une Cylindre
  84. Set Part = swApp.ActiveDoc
  85. Part.SketchManager.InsertSketch True
  86. boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
  87. Part.ClearSelection2 True
  88. Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, rayon, 0#, 0#)
  89. Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, length, length, False, False, False, False, length, length, False, False, False, False, True, True, True, 0, 0, False)
  90.  
  91. 'Répétition par esquisee
  92. boolstatus = Part.Extension.SelectByID2("Esquisse3D1", "SKETCH", 0, 0, 0, False, 64, Nothing, 0)
  93. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", -6.74308053442019E-03, 2.69252183593949E-03, 5.47894052022002E-03, True, 256, Nothing, 0)
  94. Part.FeatureManager.FeatureSketchDrivenPattern True, False
  95. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", 0, 0, 0, True, 0, Nothing, 0)
  96. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", 0, 0, 0, True, 0, Nothing, 0)
  97.  
  98. 'Suppression du première cylindre
  99. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", -9.00371912371156E-03, 3.2719117743909E-03, 4.32472761337976E-03, True, 0, Nothing, 0)
  100. Set myFeature = Part.FeatureManager.InsertDeleteBody2(False)
  101.  
  102. 'Cacher l'esquisse 3D1
  103. boolstatus = Part.Extension.SelectByID2("Esquisse3D1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
  104. Part.BlankSketch
  105.  
  106.  
  107. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement