|   | 306 |  | 
                  
                          |   | 307 | Risanje različnih tipov robov. | 
                  
                          |   | 308 | [[Image(bottle.png, width=480px, right)]] | 
                  
                          |   | 309 | {{{ | 
                  
                          |   | 310 | ##Copyright 2009-2015 Thomas Paviot (tpaviot@gmail.com) | 
                  
                          |   | 311 | ## | 
                  
                          |   | 312 | ##This file is part of pythonOCC. | 
                  
                          |   | 313 | ## | 
                  
                          |   | 314 | ##pythonOCC is free software: you can redistribute it and/or modify | 
                  
                          |   | 315 | ##it under the terms of the GNU Lesser General Public License as published by | 
                  
                          |   | 316 | ##the Free Software Foundation, either version 3 of the License, or | 
                  
                          |   | 317 | ##(at your option) any later version. | 
                  
                          |   | 318 | ## | 
                  
                          |   | 319 | ##pythonOCC is distributed in the hope that it will be useful, | 
                  
                          |   | 320 | ##but WITHOUT ANY WARRANTY; without even the implied warranty of | 
                  
                          |   | 321 | ##MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
                  
                          |   | 322 | ##GNU Lesser General Public License for more details. | 
                  
                          |   | 323 | ## | 
                  
                          |   | 324 | ##You should have received a copy of the GNU Lesser General Public License | 
                  
                          |   | 325 | ##along with pythonOCC.  If not, see <http://www.gnu.org/licenses/>. | 
                  
                          |   | 326 |  | 
                  
                          |   | 327 | import math | 
                  
                          |   | 328 |  | 
                  
                          |   | 329 | from OCC.gp import gp_Pnt, gp_Lin, gp_Ax1, gp_Dir, gp_Elips, gp_Ax2 | 
                  
                          |   | 330 | from OCC.BRepBuilderAPI import (BRepBuilderAPI_MakeEdge, | 
                  
                          |   | 331 |                                 BRepBuilderAPI_MakeVertex) | 
                  
                          |   | 332 | from OCC.TColgp import TColgp_Array1OfPnt | 
                  
                          |   | 333 | from OCC.Geom import Geom_BezierCurve | 
                  
                          |   | 334 |  | 
                  
                          |   | 335 | from OCC.Display.SimpleGui import init_display | 
                  
                          |   | 336 | display, start_display, add_menu, add_function_to_menu = init_display() | 
                  
                          |   | 337 |  | 
                  
                          |   | 338 |  | 
                  
                          |   | 339 | def edge(event=None): | 
                  
                          |   | 340 |     # The blue edge | 
                  
                          |   | 341 |     BlueEdge = BRepBuilderAPI_MakeEdge(gp_Pnt(-80, -50, -20), | 
                  
                          |   | 342 |                                        gp_Pnt(-30, -60, -60)) | 
                  
                          |   | 343 |     V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-20, 10, -30)) | 
                  
                          |   | 344 |     V2 = BRepBuilderAPI_MakeVertex(gp_Pnt(10, 7, -25)) | 
                  
                          |   | 345 |     YellowEdge = BRepBuilderAPI_MakeEdge(V1.Vertex(), V2.Vertex()) | 
                  
                          |   | 346 |  | 
                  
                          |   | 347 |     #The white edge | 
                  
                          |   | 348 |     line = gp_Lin(gp_Ax1(gp_Pnt(10, 10, 10), gp_Dir(1, 0, 0))) | 
                  
                          |   | 349 |     WhiteEdge = BRepBuilderAPI_MakeEdge(line, -20, 10) | 
                  
                          |   | 350 |  | 
                  
                          |   | 351 |     #The red edge | 
                  
                          |   | 352 |     Elips = gp_Elips(gp_Ax2(gp_Pnt(10, 0, 0), gp_Dir(1, 1, 1)), 60, 30) | 
                  
                          |   | 353 |     RedEdge = BRepBuilderAPI_MakeEdge(Elips, 0, math.pi/2) | 
                  
                          |   | 354 |  | 
                  
                          |   | 355 |     # The green edge and the both extreme vertex | 
                  
                          |   | 356 |     P1 = gp_Pnt(-15, 200, 10) | 
                  
                          |   | 357 |     P2 = gp_Pnt(5, 204, 0) | 
                  
                          |   | 358 |     P3 = gp_Pnt(15, 200, 0) | 
                  
                          |   | 359 |     P4 = gp_Pnt(-15, 20, 15) | 
                  
                          |   | 360 |     P5 = gp_Pnt(-5, 20, 0) | 
                  
                          |   | 361 |     P6 = gp_Pnt(15, 20, 0) | 
                  
                          |   | 362 |     P7 = gp_Pnt(24, 120, 0) | 
                  
                          |   | 363 |     P8 = gp_Pnt(-24, 120, 12.5) | 
                  
                          |   | 364 |     array = TColgp_Array1OfPnt(1, 8) | 
                  
                          |   | 365 |     array.SetValue(1, P1) | 
                  
                          |   | 366 |     array.SetValue(2, P2) | 
                  
                          |   | 367 |     array.SetValue(3, P3) | 
                  
                          |   | 368 |     array.SetValue(4, P4) | 
                  
                          |   | 369 |     array.SetValue(5, P5) | 
                  
                          |   | 370 |     array.SetValue(6, P6) | 
                  
                          |   | 371 |     array.SetValue(7, P7) | 
                  
                          |   | 372 |     array.SetValue(8, P8) | 
                  
                          |   | 373 |     curve = Geom_BezierCurve(array) | 
                  
                          |   | 374 |     ME = BRepBuilderAPI_MakeEdge(curve.GetHandle()) | 
                  
                          |   | 375 |     GreenEdge = ME | 
                  
                          |   | 376 |     V3 = ME.Vertex1() | 
                  
                          |   | 377 |     V4 = ME.Vertex2() | 
                  
                          |   | 378 |  | 
                  
                          |   | 379 |     display.DisplayColoredShape(BlueEdge.Edge(), 'BLUE') | 
                  
                          |   | 380 |     display.DisplayShape(V1.Vertex()) | 
                  
                          |   | 381 |     display.DisplayShape(V2.Vertex()) | 
                  
                          |   | 382 |     display.DisplayColoredShape(WhiteEdge.Edge(), 'WHITE') | 
                  
                          |   | 383 |     display.DisplayColoredShape(YellowEdge.Edge(), 'YELLOW') | 
                  
                          |   | 384 |     display.DisplayColoredShape(RedEdge.Edge(), 'RED') | 
                  
                          |   | 385 |     display.DisplayColoredShape(GreenEdge.Edge(), 'GREEN') | 
                  
                          |   | 386 |     display.DisplayShape(V3) | 
                  
                          |   | 387 |     display.DisplayShape(V4, update=True) | 
                  
                          |   | 388 |  | 
                  
                          |   | 389 | if __name__ == '__main__': | 
                  
                          |   | 390 |     edge() | 
                  
                          |   | 391 |     start_display() | 
                  
                          |   | 392 |  | 
                  
                          |   | 393 | }}} |