PythonOcc/primitives: Izdelava_zaokrozitev_in_posnetij_krajse.py

File Izdelava_zaokrozitev_in_posnetij_krajse.py, 2.2 KB (added by dpenko, 5 years ago)

Primer iz vaj KT 9.11.2015

Line 
1# -*- coding: utf-8 -*-
2from OCC.Display.SimpleGui import *
3from math import pi
4
5from OCC.gp import *
6from OCC.BRepBuilderAPI import *
7from OCC.BRepPrimAPI import *
8from OCC.BRepFilletAPI import *     # izdelava zaokrožitev
9from OCC.BRepAlgoAPI import *       # Boolova algebra
10
11from OCC.TopExp import *
12from OCC.TopAbs import *
13from OCC.TopTools import *
14from OCC.TopoDS import *
15from OCC. TColgp import *
16
17display, start_display, add_menu, add_function_to_menu = init_display()
18
19def kocka(a = 100):
20    global cube
21    global b
22    b = a
23    cube = BRepPrimAPI_MakeBox(a,a,a).Shape()
24
25def prikaz_kocke(event=None):
26    display.EraseAll()
27    display.DisplayShape(cube, update=True)
28
29def zaokrozeno_vse(event=None):
30    zaokrozitev = BRepFilletAPI_MakeFillet(cube)
31    anEdgeExplorer = TopExp_Explorer(cube, TopAbs_EDGE)
32
33    while anEdgeExplorer.More():
34        anEdge = topods.Edge(anEdgeExplorer.Current())
35        zaokrozitev.Add(R, anEdge)
36        anEdgeExplorer.Next()
37    zaokrozitev.Build()
38    kocka_zaokrozitev_vse = zaokrozitev.Shape()
39    display.EraseAll()
40    display.DisplayShape(kocka_zaokrozitev_vse, update=True)
41
42#Zakrozevanje s seznamom robom
43def zaokrozitev_seznam(event=None):
44    zaokrozitev = BRepFilletAPI_MakeFillet(cube)
45    anEdgeExplorer = TopExp_Explorer(cube, TopAbs_EDGE)
46    seznam_robov = []
47    while anEdgeExplorer.More():
48        anEdge = topods.Edge(anEdgeExplorer.Current())
49        seznam_robov.append(anEdge)
50        anEdgeExplorer.Next()
51    zaokrozitev.Add(R, seznam_robov[0])
52    zaokrozitev.Add(R, seznam_robov[1])
53    zaokrozitev.Add(R, seznam_robov[5])
54    zaokrozitev.Add(R, seznam_robov[10])
55
56    zaokrozitev.Build()
57    kocka_zaokrozitev_seznam = zaokrozitev.Shape()
58    display.EraseAll()
59    display.DisplayShape(kocka_zaokrozitev_seznam, update=True)
60
61def spremeni_radij(event=None):
62    global R
63    R = int(input("Vnesi nov radij:"))
64
65kocka(200)
66
67R = b/5
68
69add_menu("Kocka")
70add_function_to_menu("Kocka", prikaz_kocke)
71add_menu("Zaokrozevanja")
72add_function_to_menu("Zaokrozevanja", zaokrozeno_vse)
73add_function_to_menu("Zaokrozevanja", zaokrozitev_seznam)
74
75add_menu("Funkcije")
76add_function_to_menu("Funkcije", spremeni_radij)
77
78display.View_Iso()
79start_display()