29
-1- Marek Zaremba [email protected] Skryptowanie w ANSYS SpaceClaim

Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

  • Upload
    others

  • View
    9

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 1 -

Marek Zaremba

[email protected]

Skryptowanie w ANSYS SpaceClaim

Page 2: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 2 -

Geometria

Krok 1 - 6

Krok 7 - 12

Krok 13 - 14

Page 3: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 3 -

1. Otwarcie środowiska „Script”

• Otwórz SpaceClaim 18.2 z Menu Start

• Otwórz środowisko skryptowania File/New/Script

Page 4: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 4 -

1. Otwarcie środowiska „Script”

Otwieranie/zapisywanie skryptów

Publikacja skryptu do panelu grupy

Nagraj Uruchom skrypt

Page 5: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 5 -

2. Opcja nagrywania

• Przed rozpoczęciem tworzenia modelu należy włączyć opcję

nagrywania. Wtedy oprogramowanie będzie zapisywało każdy

wykonany krok podczas modelowania i będzie przechwytywać

wszystkie niezbędne parametry wymagane do powtórzenia operacji.

Page 6: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 6 -

3. Tworzenie elipsy

• Tworzymy elipsę na płaszczyźnie ZX o rozmiarach 300x200 [mm], po utworzeniu

krawędzi elipsy ukażą się kolejne polecenia.

# Sketch Ellipseplane = Plane.PlaneZXresult = ViewHelper.SetSketchPlane(plane)origin = Point2D.Create(MM(0), MM(0))majorDir = DirectionUV.Create(-1, 0)minorDir = DirectionUV.Create(0, 1)result = SketchEllipse.Create(origin, majorDir, minorDir, MM(150), MM(100))# EndBlock

Page 7: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 7 -

4. Tworzenie geometrii typu Surface

• Za pomocą narzędzia „Select” wybierz krawędź, a następnie wybierz opcję „Fill”.

Utworzy się ciało typu Surface i pojawi się kolejna lista poleceń.

# Fill

selection = Selection.Create(Curve1)

secondarySelection = Selection()

options = FillOptions()

result = Fill.Execute(selection, secondarySelection, options, FillMode.Sketch, Info2)

# EndBlock

Page 8: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 8 -

5. Zmiana płaszczyzny szkicowania

Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz przed

komendą rysowania elipsy pętlę usuwającą wszystkie ciała z interfejsu SpaceClaim.

Komenda ta jest ważna ze względu na odtworzenie geometrii. Po przez użycie przycisku Run

program usunie wszystkie ciała, a następnie utworzy elipsę na płaszczyźnie XY.

while GetRootPart().Bodies.Count > 0:

GetRootPart().Bodies[0].Delete()

# Sketch Ellipse

plane = Plane.PlaneXY

result = ViewHelper.SetSketchPlane(plane)

origin = Point2D.Create(MM(0), MM(0))

majorDir = DirectionUV.Create(-1, 0)

minorDir = DirectionUV.Create(0, 1)

result = SketchEllipse.Create(origin, majorDir, minorDir, MM(150), MM(100))

# EndBlock

# Fill

selection = Selection.Create(Curve1)

secondarySelection = Selection()

options = FillOptions()

result = Fill.Execute(selection, secondarySelection, options, FillMode.Sketch, Info2)

# EndBlock

Page 9: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 9 -

5. Zmiana płaszczyzny szkicowania

Page 10: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 10 -

6. Wyciągnięcie powierzchni

• Wybierz utworzoną wcześniej powierzchnie i za pomocą narzędzia „Pull”, opcji „Add”

wyciągnij powierzchnię o 15 mm w kierunku osi +Z

# Extrude 1 Faceselection = Selection.Create(Face2)options = ExtrudeFaceOptions()options.ExtrudeType = ExtrudeType.ForceAddresult = ExtrudeFaces.Execute(selection, Direction.Create(0, 0, -1), MM(-15), options, Info5)# EndBlock

Page 11: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 11 -

7. Wybranie powierzchni do szkicowania

• Za pomocą opcji „Select” zaznaczamy dolną powierzchnie modelu, następnie

wybieramy opcję „Sketch Mode”

# Change Section Viewselection = Selection.Create(Face3)result = ViewHelper.SetSketchPlane(selection, Info6)# EndBlock

Page 12: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 12 -

8. Tworzenie okręgu

• Wybieramy narzędzie „Circle” i rysujemy okrąg o średnicy 100 mm, w punkcie

(0,0) względem globalnego układu współrzędnego.

# Sketch Circleorigin = Point2D.Create(MM(0), MM(0))result = SketchCircle.Create(origin, MM(50))# EndBlock

Page 13: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 13 -

9. Tworzenie geometrii typu Surface

• Za pomocą narzędzia „Select” wybierz krawędź, a następnie wybierz opcję „Fill”.

Utworzy się ciało typu Surface.

# Fillselection = Selection.Create(Curve2)secondarySelection = Selection()options = FillOptions()result = Fill.Execute(selection, secondarySelection, options, FillMode.Sketch, Info7)# EndBlock

Page 14: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 14 -

10. Przesunięcie geometrii tupu Surface

• Użyj narzędzia „Move” do przesunięcia geometri „Surface” w kierunku osi +Z o 100 mm

oraz względem osi –X o 50 mm/

# Move 1 objectselection = Selection.Create(Body1)localSystem = Frame.Create(Point.Create(MM(0), MM(0), MM(0)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))options = MoveOptions()moveType = TransformType.TranslateZresult = Move.Execute(selection, localSystem, moveType, MM(-200), options)# EndBlock

# Move 1 objectselection = Selection.Create(Body1)localSystem = Frame.Create(Point.Create(MM(0), MM(0), MM(200)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))options = MoveOptions()moveType = TransformType.TranslateXresult = Move.Execute(selection, localSystem, moveType, MM(50), options)# EndBlock

Page 15: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 15 -

11. Obrót geometrii „Surface”

• Użyj narzędzia „Move” do obrotu geometrii typu „Surface” o kąt -45 stopni

względem osi X

# Move 1 objectselection = Selection.Create(Body1)localSystem = Frame.Create(Point.Create(MM(-50), MM(0), MM(200)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))options = MoveOptions()moveType = TransformType.RotateXresult = Move.Execute(selection, localSystem, moveType, DEG(-45), options)# EndBlock

Page 16: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 16 -

12. Wyciągnięcie powierzchni

• Wybierz utworzoną wcześniej powierzchnie i za pomocą narzędzia „Pull”, opcji „Add”

wyciągnij powierzchnię o w kierunku normalnym o 15 mm.

# Extrude 1 Faceselection = Selection.Create(Face4)options = ExtrudeFaceOptions()options.ExtrudeType = ExtrudeType.Addresult = ExtrudeFaces.Execute(selection, Direction.Create(0, 0.707106781186546, -0.707106781186549), MM(15), options, Info8)# EndBlock

• Uwaga: w komendzie result, można zauważyć że wyciągnięcia będzie działać w

kierunku Direction.Create(0, 0.707106781186546, -0.707106781186549). W tejsytuacji w kierunku normalnym (pod kątem 45 stopni). Natomiast jeśli zmienimy kątpowierzchni wyciągniecie będzie miało zły kierunek.

Page 17: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 17 -

12. Wyciągnięcie powierzchni

• Należy zmienić skrypt na poniższy, tzn. dopisać zmienną facenorm, która odczytakierunek normalnej do powierzchni, następnie zmienną facenorm zastąpić formułęDirection.Create(0, 0.707106781186546, -0.707106781186549) w komendzie result.

• Wybrać opcję „Run”, aby sprawdzić poprawność działania skryptu.

# Extrude 1 Faceselection = Selection.Create(Face4)options = ExtrudeFaceOptions()options.ExtrudeType = ExtrudeType.Addfacenorm = Face4.Item.MidPoint().Normalresult = ExtrudeFaces.Execute(selection, facenorm, MM(15), options, Info8)# EndBlock

Page 18: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 18 -

13. Operacja Blend

• Zaznaczamy 2 powierzchnie zwrócone do siebie i wybieramy narzędzie „Blend”

• Zatwierdzamy operację „Complete”

# Create Blendselection = Selection.Create(Face5, Face6)options = LoftOptions()options.GeometryCommandOptions = GeometryCommandOptions()result = Loft.Create(selection, None, options)# EndBlock

Page 19: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 19 -

14. Operacja Shell

• Wybieramy dwie zewnętrzne powierzchnie, a następnie narzędzie „Shell” i

wprowadzamy grubość modelu jako 4 mm

# Make Shellselection = Selection.Create(Face7, Face8)result = Shell.RemoveFaces(selection, MM(-4))# EndBlock

Page 20: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 20 -

15. Skrypt

# Python Script, API Version = V17

1. while GetRootPart().Bodies.Count > 0:2. GetRootPart().Bodies[0].Delete()

3. # Sketch Ellipse4. plane = Plane.PlaneXY5. result = ViewHelper.SetSketchPlane(plane)6. origin = Point2D.Create(MM(0), MM(0))7. majorDir = DirectionUV.Create(-1, 0)8. minorDir = DirectionUV.Create(0, 1)9. result = SketchEllipse.Create(origin, majorDir, minorDir, MM(150), MM(100))10. # EndBlock

11. # Fill12. selection = Selection.Create(Curve1)13. secondarySelection = Selection()14. options = FillOptions()15. result = Fill.Execute(selection, secondarySelection, options, FillMode.Sketch, Info2)16. # EndBlock

17. # Extrude 1 Face18. selection = Selection.Create(Face2)19. options = ExtrudeFaceOptions()20. options.ExtrudeType = ExtrudeType.ForceAdd21. result = ExtrudeFaces.Execute(selection, Direction.Create(0, 0, -1), MM(-15), options, Info5)22. # EndBlock

Page 21: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 21 -

15. Skrypt

23. # Change Section View24. selection = Selection.Create(Face3)25. result = ViewHelper.SetSketchPlane(selection, Info6)26. # EndBlock

27. # Sketch Circle28. origin = Point2D.Create(MM(0), MM(0))29. result = SketchCircle.Create(origin, MM(50))30. # EndBlock

31. # Fill32. selection = Selection.Create(Curve2)33. secondarySelection = Selection()34. options = FillOptions()35. result = Fill.Execute(selection, secondarySelection, options, FillMode.Sketch, Info7)36. # EndBlock

23. # Move 1 object24. selection = Selection.Create(Body1)25. localSystem = Frame.Create(Point.Create(MM(0), MM(0), MM(0)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))26. options = MoveOptions()27. moveType = TransformType.TranslateZ28. result = Move.Execute(selection, localSystem, moveType, MM(-200), options)29. # EndBlock

30. # Move 1 object31. selection = Selection.Create(Body1)32. localSystem = Frame.Create(Point.Create(MM(0), MM(0), MM(200)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))33. options = MoveOptions()34. moveType = TransformType.TranslateX35. result = Move.Execute(selection, localSystem, moveType, MM(50), options)36. # EndBlock

Page 22: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 22 -

15. Skrypt

37. # Move 1 object38. selection = Selection.Create(Body1)39. localSystem = Frame.Create(Point.Create(MM(-50), MM(0), MM(200)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))40. options = MoveOptions()41. moveType = TransformType.RotateX42. result = Move.Execute(selection, localSystem, moveType, DEG(-45), options)43. # EndBlock

44. # Extrude 1 Face45. selection = Selection.Create(Face4)46. options = ExtrudeFaceOptions()47. options.ExtrudeType = ExtrudeType.Add48. facenorm = Face4.Item.MidPoint().Normal49. result = ExtrudeFaces.Execute(selection, facenorm, MM(15), options, Info8)50. # EndBlock

51. # Create Blend52. selection = Selection.Create(Face5, Face6)53. options = LoftOptions()54. options.GeometryCommandOptions = GeometryCommandOptions()55. result = Loft.Create(selection, None, options)56. # EndBlock

57. # Make Shell58. selection = Selection.Create(Face7, Face8)59. result = Shell.RemoveFaces(selection, MM(-4))60. # EndBlock

Page 23: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 23 -

16. Parametryzacja

• W pierwszym etapie należy opublikować skrypt do panelu „Groups”

• Wprowadzamy nazwę w okienku „Publish Script Group”

• W panelu „Groups” pajawił się folder ze skryptem, który możemy

uruchomić po przez kliknięcie na niego prawym przyciskiem myszy i

wybranie opcji „Run Script”

Page 24: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 24 -

16. Parametryzacja

• Klikamy prawym przyciskiem myszy na folder Scripts i wybieramy opcję „Create

Parameter”

• Zmieniamy nazwę np. na EllipseMajor, który będzie parametrem większego

wymiaru elipsy. Postępujemy tak jeszcze 8 razy

• Przypisujemy następujące wartości utworzonym parametrom

Page 25: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 25 -

16. Parametryzacja

• Wprowadzamy przed komendą „while” zmienne odnoszące się do parametrów.

Nazwy zmiennych muszą być takie same jak wprowadzone przez użytkownika w

panelu „Groups”

EllipseMajor = Parameters.EllipseMajorEllipseMinor = Parameters.EllipseMinorCircleRadius = Parameters.CircleRadiusCircleAngle = Parameters.CircleAngleEllipseHeight = Parameters.EllipseHeightCircleOffset = Parameters.CircleOffsetCircleVertical = Parameters.CircleVerticalCircleHeight = Parameters.CircleHeightThickness = Parameters.Thickness

• Następnie w skrypcie zmieniamy wartości wymiarów na zmienne parametrów

# Sketch Ellipseplane = Plane.PlaneXYresult = ViewHelper.SetSketchPlane(plane)origin = Point2D.Create(MM(0), MM(0))majorDir = DirectionUV.Create(-1, 0)minorDir = DirectionUV.Create(0, 1)result = SketchEllipse.Create(origin, majorDir, minorDir, MM(EllipseMajor), MM(EllipseMinor))# EndBlock

Page 26: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 26 -

16. Parametryzacja

# Extrude 1 Faceselection = Selection.Create(Face2)options = ExtrudeFaceOptions()options.ExtrudeType = ExtrudeType.ForceAddresult = ExtrudeFaces.Execute(selection, Direction.Create(0, 0, -1), MM(-EllipseHeight), options, Info5)# EndBlock

# Sketch Circleorigin = Point2D.Create(MM(0), MM(0))result = SketchCircle.Create(origin, MM(CircleRadius))# EndBlock

# Move 1 objectselection = Selection.Create(Body1)localSystem = Frame.Create(Point.Create(MM(0), MM(0), MM(0)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))options = MoveOptions()moveType = TransformType.TranslateZresult = Move.Execute(selection, localSystem, moveType, MM(-CircleVertical), options)# EndBlock

# Move 1 objectselection = Selection.Create(Body1)localSystem = Frame.Create(Point.Create(MM(0), MM(0), MM(200)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))options = MoveOptions()moveType = TransformType.TranslateXresult = Move.Execute(selection, localSystem, moveType, MM(CircleOffset), options)# EndBlock

Page 27: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 27 -

16. Parametryzacja

# Move 1 objectselection = Selection.Create(Body1)localSystem = Frame.Create(Point.Create(MM(-50), MM(0), MM(200)),Direction.Create(-1, 0, 0),Direction.Create(0, 1, 0))options = MoveOptions()moveType = TransformType.RotateXresult = Move.Execute(selection, localSystem, moveType, DEG(-CircleAngle), options)# EndBlock

# Extrude 1 Faceselection = Selection.Create(Face4)options = ExtrudeFaceOptions()options.ExtrudeType = ExtrudeType.Addfacenorm = Face4.Item.MidPoint().Normalresult = ExtrudeFaces.Execute(selection, facenorm, MM(CircleHeight), options, Info1)# EndBlock

# Make Shellselection = Selection.Create(Face7, Face8)result = Shell.RemoveFaces(selection, MM(-Thickness))# EndBlock

Page 28: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 28 -

16. Parametryzacja

• W celu zmiany wartości danego wymiaru, należy w Panelu „Groups” kliknąć na

daną wartość, wprowadzić inną wartość i zatwierdzić przyciskiem „Enter” Program

automatycznie zbuduje nową geometrię.

Page 29: Skryptowanie w ANSYS SpaceClaim · 2019-05-08 · - 8 - 5. Zmiana płaszczyzny szkicowania Zmień w pierwszej linijce kodu płaszczyznę szkicowania z ZX na XY. Następnie dopisz

- 29 -

17. Otwieranie plików .scdm zawierające skrypt

Do niniejszej prezentacji udostępniono gotową geometrię. Po otwarciu pliku

Skryptowanie.scdm. W panelu „Groups” zostały już wprowadzone wszystkie parametry

i można zmieniać wymiary w dowolny sposób. W celu edycji skryptu, należy w panelu

„Groups” wybrać prawym przyciskiem myszy na „skrypt” i wybrać opcję „Edit Script”