|   | 365 |  | 
                  
                          |   | 366 | === Izris CAD prizme === | 
                  
                          |   | 367 | {{{ | 
                  
                          |   | 368 | #!python | 
                  
                          |   | 369 | ## Izdelava prizme --primer bottle | 
                  
                          |   | 370 |  | 
                  
                          |   | 371 | from OCC.Display.SimpleGui import * | 
                  
                          |   | 372 | from OCC.BRepPrimAPI import * | 
                  
                          |   | 373 | from OCC.gp import * | 
                  
                          |   | 374 | from OCC.GC import * | 
                  
                          |   | 375 | from OCC.BRepBuilderAPI import * | 
                  
                          |   | 376 | from OCC.TopoDS import * | 
                  
                          |   | 377 |  | 
                  
                          |   | 378 | display, start_display, add_menu, add_function_to_menu = init_display() | 
                  
                          |   | 379 |  | 
                  
                          |   | 380 | myWidth = 50.0 | 
                  
                          |   | 381 | myThickness = 30.0 | 
                  
                          |   | 382 | myHeight = 70.0 | 
                  
                          |   | 383 |  | 
                  
                          |   | 384 | #Definiranje začetnih točk | 
                  
                          |   | 385 | aPnt1 = gp_Pnt(-myWidth / 2. , 0 , 0) | 
                  
                          |   | 386 | aPnt2 = gp_Pnt(-myWidth / 2. , -myThickness / 4. , 0) | 
                  
                          |   | 387 | aPnt3 = gp_Pnt(0 , -myThickness / 2. , 0) | 
                  
                          |   | 388 | aPnt4 = gp_Pnt(myWidth / 2. , -myThickness / 4. , 0) | 
                  
                          |   | 389 | aPnt5 = gp_Pnt(myWidth / 2. , 0 , 0) | 
                  
                          |   | 390 |  | 
                  
                          |   | 391 | #Izdelava segmentov--definiranje geometrije | 
                  
                          |   | 392 | aArcOfCircle = GC_MakeArcOfCircle(aPnt2,aPnt3 ,aPnt4) | 
                  
                          |   | 393 | aSegment1 = GC_MakeSegment(aPnt1 , aPnt2) | 
                  
                          |   | 394 | aSegment2 = GC_MakeSegment(aPnt4 , aPnt5) | 
                  
                          |   | 395 |  | 
                  
                          |   | 396 | #Izdelava robov -- definiranje topologije | 
                  
                          |   | 397 | aEdge1 = BRepBuilderAPI_MakeEdge(aSegment1.Value()) | 
                  
                          |   | 398 | aEdge2 = BRepBuilderAPI_MakeEdge(aArcOfCircle.Value()) | 
                  
                          |   | 399 | aEdge3 = BRepBuilderAPI_MakeEdge(aSegment2.Value()) | 
                  
                          |   | 400 |  | 
                  
                          |   | 401 | #Povezovanje robov v mrežo | 
                  
                          |   | 402 | aWire  = BRepBuilderAPI_MakeWire(aEdge1.Edge() , aEdge2.Edge() ,\ | 
                  
                          |   | 403 |                                  aEdge3.Edge()) | 
                  
                          |   | 404 |  | 
                  
                          |   | 405 | #Izdelava celotnega profila - mirror | 
                  
                          |   | 406 | xAxis = gp_OX() | 
                  
                          |   | 407 | aTrsf = gp_Trsf() | 
                  
                          |   | 408 | aTrsf.SetMirror(xAxis) | 
                  
                          |   | 409 | aBRepTrsf = BRepBuilderAPI_Transform(aWire.Shape() , aTrsf) | 
                  
                          |   | 410 | aMirroredShape = aBRepTrsf.Shape() | 
                  
                          |   | 411 | aMirroredWire = TopoDS_wire(aMirroredShape) | 
                  
                          |   | 412 | mkWire = BRepBuilderAPI_MakeWire() | 
                  
                          |   | 413 | mkWire.Add(aWire.Wire()) | 
                  
                          |   | 414 | mkWire.Add(aMirroredWire) | 
                  
                          |   | 415 | myWireProfile = mkWire.Wire() | 
                  
                          |   | 416 |  | 
                  
                          |   | 417 | #Telo: Iz profila se izdela telo | 
                  
                          |   | 418 | myFaceProfile = BRepBuilderAPI_MakeFace(myWireProfile) | 
                  
                          |   | 419 | aPrismVec = gp_Vec(0 , 0 , myHeight) | 
                  
                          |   | 420 | myBody = BRepPrimAPI_MakePrism(myFaceProfile.Face() , aPrismVec).Shape() | 
                  
                          |   | 421 |  | 
                  
                          |   | 422 | display.DisplayShape(myBody) | 
                  
                          |   | 423 | start_display() | 
                  
                          |   | 424 | }}} |