Changes between Version 5 and Version 6 of salome
- Timestamp:
- Nov 14, 2017, 4:31:39 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
salome
v5 v6 16 16 Za programiranje v geometrijskem modulu si poglejte [htdocs:doc8.3.0/gui/GEOM/python_interface.html Geometry module Python Interface]. 17 17 18 V glavi programa je potrebno inicializirati knjiznico salome, ki nam omogoči preprosto manipulacijo predstavljenega objekta (glava dokumenta):18 V glavi programa je potrebno inicializirati knjižnico salome, ki nam omogoči preprosto manipulacijo predstavljenega objekta (glava dokumenta): 19 19 {{{ 20 20 #!python … … 135 135 136 136 Drevesno strukturo posodobimo, ce zelimo prikazati nove geometrijske elemente v modelnem oknu. 137 [[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]] 137 [[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]] 138 138 '''Korak 5''': Izvlek povrsine 139 139 … … 151 151 152 152 Celoten postopek izdelave izvleka je v priponki (''salomePrismExample.py''). 153 153 [[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]][[BR]] 154 154 === Primer izdelave panela v fuzijskem reaktorju ITER 155 155 156 V tem primeru bo prikazana izdelava krivulj v 3D prostoru in izvlek krivulj, s katerim generiramo povrsino v prostoru. Koncni cilj je izdelava panela, prikazanega na sliki. V datoteki data.txt imamo podane koordinate tock (x, y in z), iz katerih bomo generirali krivujo. To krivuljo bomo nato izvlekli v prostor s pomocjo daljic, ki so prav tako definirana s tockami (xe, ye in ze). Podatki so podani v formatu 157 [[Image(prismSalomePrismExample.png, 300, right)]] 156 V tem primeru bo prikazana izdelava krivulj v 3D prostoru in izvlek krivulj, s katerim generiramo površino v prostoru. Končni cilj je izdelava panela, prikazanega na sliki. 157 V datoteki data.txt imamo podane koordinate točk (x, y in z), iz katerih bomo generirali krivujo. 158 To krivuljo bomo nato izvlekli v prostor s pomočjo daljic, ki so prav tako definirana s točkami (xe, ye in ze). Podatki so podani v formatu 159 [[Image(modelSalomePanelExample.png, 300, right)]] 158 160 {{{ 159 161 x1 y1 z1 xe1 ye1 ze1 … … 164 166 }}} 165 167 166 1.Uvoz modulov167 168 Najprej je potrebno v python uvoziti vse knji znice, ki jih bomo uporabili v Salome okolju. Nato pa je potrebno definirati novo studijo.168 '''Korak 1''': Uvoz modulov 169 170 Najprej je potrebno v python uvoziti vse knjižnice, ki jih bomo uporabili v Salome okolju. Nato pa je potrebno definirati novo študijo. 169 171 170 172 {{{ … … 177 179 geompy = geomBuilder.New(salome.myStudy) 178 180 }}} 179 180 2.Uvoz podatkov v Python181 182 Podatke v stolpcih v tekstovnem formatu lahko preberemo na vec na cinov, v tem primeru smo uporabili funkcijo `loadtxt()` iz knjiznice `numpy`. Podatke za krivuljo shranimo v spremenljivko tipa `np.array()` z imenoma ''coord_x'' in ''coord_y''. Nato te tocke zrcalimo preko ravnine y-z, da dobimo krivuljo se za levo stran panela, in jih shranimo v spremenljivki `coord_x_mirror` in `coord_y_mirror`.183 181 [[BR]][[BR]][[BR]][[BR]][[BR]] 182 '''Korak 2''': Uvoz podatkov v Python 183 184 Podatke v stolpcih v tekstovnem formatu lahko preberemo na vec načinov, v tem primeru smo uporabili funkcijo `loadtxt()` iz knjižnice `numpy`. Podatke za krivuljo shranimo v spremenljivko tipa `np.array()` z imenoma ''coord_x'' in ''coord_y''. Nato te točke zrcalimo preko ravnine y-z, da dobimo krivuljo še za levo stran panela, in jih shranimo v spremenljivki `coord_x_mirror` in `coord_y_mirror`. 185 [[Image(b_splineSalomePanelExample.png, 700, right)]] 184 186 {{{ 185 187 #!python … … 194 196 }}} 195 197 196 Nato generiramo B-zlepek krivuljo s pomocjo metode `geompy.MakeInterpol()`, ki sprejme seznam tock, na katerih izvede interpolacijo. rezultat je polinom, ki predstavlja podano krivuljo. Nato izracunano krivuljo dodamo v studijo. 198 '''Korak 3''': Izdelava krivulj 199 200 Nato generiramo B-zlepek krivuljo s pomočjo metode `geompy.MakeInterpol()`, ki sprejme seznam točk, na katerih izvede interpolacijo. Rezultat je polinom, ki predstavlja podano krivuljo. Nato izračunano krivuljo dodamo v študijo. 197 201 {{{ 198 202 #!python … … 205 209 }}} 206 210 207 Sedaj je potrebno kreirati se daljico, s katero bomo povezali obe krivulji (na sliki oznacena z rumeno barvo).211 Sedaj je potrebno kreirati še daljico, s katero bomo povezali obe krivulji (na sliki označena z rumeno barvo). 208 212 209 213 {{{ … … 216 220 }}} 217 221 218 Nato je potrebno vse tri komponente zdru ziti v skupen objekt, ki ga bomo izvlekli v prostor. To storimo z metodo `geompy.MakeWire()`, ki sprejme seznam krivulj, robov in daljic, ki jih zelimo zdruziti v en objekt.222 Nato je potrebno vse tri komponente združiti v skupen objekt, ki ga bomo izvlekli v prostor. To storimo z metodo `geompy.MakeWire()`, ki sprejme seznam krivulj, robov in daljic, ki jih želimo združiti v en objekt. 219 223 220 224 {{{ … … 225 229 }}} 226 230 227 Nato izdelamo se krivuljo za izvlek, ki je prikazana na sliki. Ponovno uvozimo tocke in jih shranimo v spremenljivke tipa `np.array()`. 228 231 '''Korak 4''': Izdelava krivulje za izvlek 232 233 Nato izdelamo še krivuljo za izvlek, ki je prikazana na sliki. Ponovno uvozimo točke in jih shranimo v spremenljivke tipa `np.array()`. 234 [[Image(polylineSalomePanelExample.png, 300, right)]] 229 235 {{{ 230 236 #!python … … 237 243 }}} 238 244 239 Koordinate ponovno pretvorimo v to cke tipa `geompy` z ukazom `geompy.MakeVertex()` ter nato generiramo polyline.245 Koordinate ponovno pretvorimo v točke tipa `geompy` z ukazom `geompy.MakeVertex()` ter nato generiramo polyline. 240 246 241 247 {{{ … … 251 257 }}} 252 258 253 Na koncu ustvarimo izvlek iz obeh danih krivulj. Izvlek dodamo v studijo in posodobimo drevesno strukturo. 259 '''Korak 5''': Izvlek iz krivulj 260 261 Na koncu ustvarimo izvlek iz obeh danih krivulj. Izvlek dodamo v študijo in posodobimo drevesno strukturo. 254 262 255 263 {{{