forked from hlorus/CAD_Sketcher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolve.py
30 lines (21 loc) · 873 Bytes
/
solve.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from bpy.types import Operator, Context
from bpy.props import BoolProperty
from bpy.utils import register_classes_factory
from ..declarations import Operators
from ..solver import Solver
class View3D_OT_slvs_solve(Operator):
bl_idname = Operators.Solve
bl_label = "Solve"
all: BoolProperty(name="Solve All", options={"SKIP_SAVE"})
def execute(self, context: Context):
sketch = context.scene.sketcher.active_sketch
solver = Solver(context, sketch, all=self.all)
ok = solver.solve()
# Keep messages simple, sketches are marked with solvestate
if ok:
self.report({"INFO"}, "Successfully solved")
else:
self.report({"WARNING"}, "Solver failed")
context.area.tag_redraw()
return {"FINISHED"}
register, unregister = register_classes_factory((View3D_OT_slvs_solve,))