wiki:salome_shaper

Version 1 (modified by dpenko, 5 years ago) (diff)

First edit: two examples.

SALOME SHAPER

SALOME 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.

Povezave:

Predstavitev SHAPER modula na primerih

Primer 1: Postopek preprostega izvleka v prostor (Extrude)

V SALOME Python shell vnesemo naslednje ukaze:

# Uvozimo potrebne knjižnice 
from salome.shaper import model

# Inicializiramo model
model.begin()
mypartset = model.moduleDocument()

# Dodamo novi part
mypart = model.addPart(mypartset).document()

# Naredimo skico, ki predstavlja osnovo za naš izvlek v prostor
sketch_base = model.addSketch(mypart, model.defaultPlane("XOY"))
# - Določimo štiri linije 
l1 = 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)
l2 = sketch_base.addLine(0, 50, 50, 50)
l3 = sketch_base.addLine(50, 50, 50, 0)
l4 = sketch_base.addLine(50, 0, 0, 0)

# Prikaži dopolnjen model
model.do()

# Izvlek v prostor
mybox = model.addExtrusion(mypart, sketch_base.selectFace(), 50)

# Prikaži dopolnjen model
model.do.()

Primer 2: Postopek izvleka v prostor z uporabo relacij

Ta primer je podoben primeru 1 z razliko da se bo uporabilo relacije med elementi (sovpadanje točk, vzporednost ipd.).

V SALOME Python shell vnesemo naslednje ukaze:

# Uvozimo potrebne knjižnice 
from salome.shaper import model

# Inicializiramo model
model.begin()
mypartset = model.moduleDocument()

# Dodamo novi part
mypart = model.addPart(mypartset).document()

# Naredimo skico, ki predstavlja osnovo za naš izvlek v prostor
# V tem primeru bomo naredili "neustrezno" skico, v kateri nam linije ne bodo sovpadale. To se bo kasneje uredilo z relacijami
sketch_base = model.addSketch(mypart, model.defaultPlane("XOY"))
# - Določimo štiri linije v ravnini
l1 = sketch_base.addLine(0, 0, 0, 50)
l2 = sketch_base.addLine(0, 123, 50, 50) # neustrezna linija
l3 = sketch_base.addLine(50, 50, 50, 0)
l4 = sketch_base.addLine(50, 0, 123, 123) # neustrezna linija
model.do()

# Določevanje relacij med linijami v skici:
# - fiksna pozicija točk linij. Linija l1 in l3 so v redu zato jih določimo kot fiksne
sketch_base.setFixed(l1.startPoint())
sketch_base.setFixed(l1.endPoint())
sketch_base.setFixed(l3.startPoint())
sketch_base.setFixed(l3.endPoint())

# - stikanje koncev linij
sketch_base.setCoincident(l1.endPoint(), l2.startPoint())
sketch_base.setCoincident(l2.endPoint(), l3.startPoint())
sketch_base.setCoincident(l3.endPoint(), l4.startPoint())
sketch_base.setCoincident(l4.endPoint(), l1.startPoint())

# Prikaži dopolnjen model
model.do()

# Izvlek v prostor
mybox = model.addExtrusion(mypart, sketch_base.selectFace(), 50)

# Prikaži dopolnjen model
model.do()

Namesto sikanja koncev točk linij se lahko ureja druge relacije ter lastnosti. Pri tem je treba paziti, da se skico ne predefinira!

Spodaj je prikaz, kako se lahko določi druge relacije.

# - vzporednost 
sketch_base.setParallel(l1, l3)
sketch_base.setParallel(l2, l4)
# - pravokotnost
sketch_base.setPerpendicular(l1, l4)
  - vertikalnost
sketch_base.setVertical(l1)
# - fiksna pozicija točk linij
sketch_base.setFixed(l1.startPoint())
# Določitev širine linije
mywidth = sketch_base.setLength(l1, 50)
# Določitev dolžine skice
mylength = sketch_base.setDistance(l1.startPoint(), l3.endPoint(), 50)

Attachments (25)

Download all attachments as: .zip