Changes between Initial Version and Version 1 of salome_shaper


Ignore:
Timestamp:
Oct 8, 2019, 3:45:14 PM (5 years ago)
Author:
dpenko
Comment:

First edit: two examples.

Legend:

Unmodified
Added
Removed
Modified
  • salome_shaper

    v1 v1  
     1== SALOME SHAPER ==
     2[[PageOutline]]
     3
     4SALOME je odprtokodno okolje, ki vsebuje več integriranih modulov, ter je namenjeno reševanju kompleksnih numeričnih problemov ter izvajanju simulacij. Ti numerični problemi bazirajo na začetnem CAD modelu. SALOME vsebuje tudi orodja, ki omogočajo delo s CAD modeli oz. z značilkami CAD modelov ter tako spremembo CAD modelov (poenostavitev) in pridobitev različnih podatkov iz CAD modelov.
     5
     6Povezave:
     7 * [https://events.prace-ri.eu/event/896/sessions/2723/attachments/998/1676/SHAPER_AShortIntro_2.pdf Predstavitev SHAPER modula]
     8 * [https://docs.salome-platform.org/latest/gui/SHAPER/index.html SHAPER dokumentacija]
     9 * [https://www.youtube.com/channel/UCm7CSP3v1VF6brzmTlV9c3Q SHAPER primeri na Youtube]
     10 * [http://www.learnsalome.org/shaper/interactive_tutorial SHAPER interaktivni tutorial]
     11
     12== Predstavitev SHAPER modula na primerih ==
     13
     14= Primer 1: Postopek preprostega izvleka v prostor (Extrude) =
     15
     16V SALOME Python shell vnesemo naslednje ukaze:
     17
     18{{{
     19#!python
     20
     21# Uvozimo potrebne knjižnice
     22from salome.shaper import model
     23
     24# Inicializiramo model
     25model.begin()
     26mypartset = model.moduleDocument()
     27
     28# Dodamo novi part
     29mypart = model.addPart(mypartset).document()
     30
     31# Naredimo skico, ki predstavlja osnovo za naš izvlek v prostor
     32sketch_base = model.addSketch(mypart, model.defaultPlane("XOY"))
     33# - Določimo štiri linije
     34l1 = sketch_base.addLine(0, 0, 0, 50) # Linijo, ki leži v trenutni ravnini, se definira z dvema točkama na način (x1,y1, x2, y2)
     35l2 = sketch_base.addLine(0, 50, 50, 50)
     36l3 = sketch_base.addLine(50, 50, 50, 0)
     37l4 = sketch_base.addLine(50, 0, 0, 0)
     38
     39# Prikaži dopolnjen model
     40model.do()
     41
     42# Izvlek v prostor
     43mybox = model.addExtrusion(mypart, sketch_base.selectFace(), 50)
     44
     45# Prikaži dopolnjen model
     46model.do.()
     47
     48}}}
     49
     50= Primer 2: Postopek izvleka v prostor z uporabo relacij =
     51
     52Ta primer je podoben primeru 1 z razliko da se bo uporabilo relacije med elementi (sovpadanje točk, vzporednost ipd.).
     53
     54V SALOME Python shell vnesemo naslednje ukaze:
     55
     56{{{
     57#!python
     58
     59# Uvozimo potrebne knjižnice
     60from salome.shaper import model
     61
     62# Inicializiramo model
     63model.begin()
     64mypartset = model.moduleDocument()
     65
     66# Dodamo novi part
     67mypart = model.addPart(mypartset).document()
     68
     69# Naredimo skico, ki predstavlja osnovo za naš izvlek v prostor
     70# V tem primeru bomo naredili "neustrezno" skico, v kateri nam linije ne bodo sovpadale. To se bo kasneje uredilo z relacijami
     71sketch_base = model.addSketch(mypart, model.defaultPlane("XOY"))
     72# - Določimo štiri linije v ravnini
     73l1 = sketch_base.addLine(0, 0, 0, 50)
     74l2 = sketch_base.addLine(0, 123, 50, 50) # neustrezna linija
     75l3 = sketch_base.addLine(50, 50, 50, 0)
     76l4 = sketch_base.addLine(50, 0, 123, 123) # neustrezna linija
     77model.do()
     78
     79# Določevanje relacij med linijami v skici:
     80# - fiksna pozicija točk linij. Linija l1 in l3 so v redu zato jih določimo kot fiksne
     81sketch_base.setFixed(l1.startPoint())
     82sketch_base.setFixed(l1.endPoint())
     83sketch_base.setFixed(l3.startPoint())
     84sketch_base.setFixed(l3.endPoint())
     85
     86# - stikanje koncev linij
     87sketch_base.setCoincident(l1.endPoint(), l2.startPoint())
     88sketch_base.setCoincident(l2.endPoint(), l3.startPoint())
     89sketch_base.setCoincident(l3.endPoint(), l4.startPoint())
     90sketch_base.setCoincident(l4.endPoint(), l1.startPoint())
     91
     92# Prikaži dopolnjen model
     93model.do()
     94
     95# Izvlek v prostor
     96mybox = model.addExtrusion(mypart, sketch_base.selectFace(), 50)
     97
     98# Prikaži dopolnjen model
     99model.do()
     100
     101}}}
     102
     103Namesto sikanja koncev točk linij se lahko ureja druge relacije ter lastnosti. Pri tem je treba paziti, da se skico ne predefinira!
     104
     105Spodaj je prikaz, kako se lahko določi druge relacije.
     106{{{
     107#!python
     108
     109# - vzporednost
     110sketch_base.setParallel(l1, l3)
     111sketch_base.setParallel(l2, l4)
     112# - pravokotnost
     113sketch_base.setPerpendicular(l1, l4)
     114  - vertikalnost
     115sketch_base.setVertical(l1)
     116# - fiksna pozicija točk linij
     117sketch_base.setFixed(l1.startPoint())
     118# Določitev širine linije
     119mywidth = sketch_base.setLength(l1, 50)
     120# Določitev dolžine skice
     121mylength = sketch_base.setDistance(l1.startPoint(), l3.endPoint(), 50)
     122}}}