Advertisement
Guest User

Untitled

a guest
Dec 27th, 2018
84
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.  
  18. Dim skSegment As Object
  19. Dim myDimension As SldWorks.Dimension
  20. Dim myDisplayDim As Object
  21. Dim boolstatus As Boolean
  22. Dim longstatus As Long, longwarnings As Long
  23.  
  24. Sub main()
  25.  
  26. 'Ouverture d'une nouvelle pièce
  27. Set swApp = Application.SldWorks
  28. Dim COSMOSWORKSObj As Object
  29. Dim CWAddinCallBackObj As Object
  30. Set CWAddinCallBackObj = swApp.GetAddInObject("CosmosWorks.CosmosWorks")
  31. Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS
  32.  
  33. Dim swSheetWidth As Double
  34. swSheetWidth = 0
  35. Dim swSheetHeight As Double
  36. swSheetHeight = 0
  37. Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2018\templates\Pièce.prtdot", 0, swSheetWidth, swSheetHeight)
  38. Dim swPart As PartDoc
  39. Set swPart = Part
  40. swApp.ActivateDoc2 "Pièce6", False, longstatus
  41. Set Part = swApp.ActiveDoc
  42. Dim myModelView As Object
  43. Set myModelView = Part.ActiveView
  44. myModelView.FrameState = swWindowState_e.swWindowMaximized
  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. Dim i, j As Integer
  60. For i = 1 To n  '10= NB inclusions (à modifier)
  61. Randomize Timer 'Gener. Aléatoire
  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
  65. 'tabz(i) = Rnd * (length - rayon2 * 2) + rayon2  'Position z
  66.  
  67. bolle = 0
  68. If (i <> 1) Then
  69. For j = 1 To i - 1
  70. dist = Sqrt((tabx(i) - tabx(j)) ^ 2 + (taby(i) - taby(j)) ^ 2 + (tabz(i) - tabz(j)) ^ 2)
  71. If (dist < 2.2 * rayon) Then bolle = 1
  72. Next j
  73. End If
  74.  
  75. If (bolle = 0) Then
  76. Dim skPoint As Object
  77. Set skPoint = Part.SketchManager.CreatePoint(tabx(i), taby(i), tabz(i)) 'Creation du point
  78. 'MsgBox tabx(i) & " " & taby(i) & " " & tabz(i)
  79. Else
  80. i = i - 1
  81. End If
  82.  
  83. Next i
  84.  
  85. 'Insertion d 'une Cylindre
  86. Set Part = swApp.ActiveDoc
  87. Part.SketchManager.InsertSketch True
  88. boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
  89. Part.ClearSelection2 True
  90. Dim skSegment As Object
  91. Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, rayon, 0#, 0#)
  92.  
  93. Dim myFeature As Object
  94. Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, length, length, False, False, False, False, 0.01, 0.01, False, False, False, False, True, True, True, 0, 0, False)
  95.  
  96.  
  97. 'Répétition par esquisee
  98. boolstatus = Part.Extension.SelectByID2("Esquisse3D1", "SKETCH", 0, 0, 0, False, 64, Nothing, 0)
  99. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", -6.74308053442019E-03, 2.69252183593949E-03, 5.47894052022002E-03, True, 256, Nothing, 0)
  100. Part.FeatureManager.FeatureSketchDrivenPattern True, False
  101. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", 0, 0, 0, True, 0, Nothing, 0)
  102. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", 0, 0, 0, True, 0, Nothing, 0)
  103.  
  104. 'Suppression de la première révolution
  105. boolstatus = Part.Extension.SelectByID2("Boss.-Extru.1", "SOLIDBODY", -9.00371912371156E-03, 3.2719117743909E-03, 4.32472761337976E-03, True, 0, Nothing, 0)
  106. Set myFeature = Part.FeatureManager.InsertDeleteBody2(False)
  107.  
  108. 'Cacher l'esquisse 3D1
  109. boolstatus = Part.Extension.SelectByID2("Esquisse3D1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
  110. Part.BlankSketch
  111.  
  112.  
  113. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement