Skip to content

Commit 07bfe04

Browse files
committed
do not use pythonocc-core
1 parent 2ede7f0 commit 07bfe04

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

freecad/gears/features.py

+14-20
Original file line numberDiff line numberDiff line change
@@ -1815,31 +1815,25 @@ def fillet_between_edges(edge_1, edge_2, radius):
18151815
# assuming edges are in a plane
18161816
# extracting vertices
18171817
try:
1818-
from OCC.Core import ChFi2d
1819-
from OCC import Core
1818+
from Part import ChFi2d
18201819
except ImportError:
1821-
App.Console.PrintWarning("python-occ not available")
1822-
App.Console.PrintWarning("2d fillets not yet possible")
1820+
App.Console.PrintWarning("Your freecad version has no python bindings for 2d-fillets")
18231821
return [edge_1, edge_2]
18241822

1825-
api = ChFi2d.ChFi2d_FilletAPI()
1826-
p1 = np.array([*edge_1.valueAt(edge_1.FirstParameter)])
1827-
p2 = np.array([*edge_1.valueAt(edge_1.LastParameter)])
1828-
p3 = np.array([*edge_2.valueAt(edge_2.FirstParameter)])
1829-
p4 = np.array([*edge_2.valueAt(edge_2.LastParameter)])
1823+
api = ChFi2d.FilletAPI()
1824+
p1 = edge_1.valueAt(edge_1.FirstParameter)
1825+
p2 = edge_1.valueAt(edge_1.LastParameter)
1826+
p3 = edge_2.valueAt(edge_2.FirstParameter)
1827+
p4 = edge_2.valueAt(edge_2.LastParameter)
18301828
t1 = p2 - p1
18311829
t2 = p4 - p3
1832-
n = np.cross(t1, t2)
1833-
pln = Core.gp.gp_Pln(Core.gp.gp_Pnt(*p1), Core.gp.gp_Dir(*n))
1834-
occ_e1 = Core.TopoDS.topods_Edge(Part.__toPythonOCC__(edge_1))
1835-
occ_e2 = Core.TopoDS.topods_Edge(Part.__toPythonOCC__(edge_2))
1836-
api.Init(occ_e1, occ_e2, pln)
1837-
if api.Perform(radius) > 0:
1838-
occ_p0 = Core.gp.gp_Pnt(*((p2 + p3) / 2))
1839-
occ_arc = api.Result(occ_p0, occ_e1, occ_e2)
1840-
return Part.Wire([Part.__fromPythonOCC__(occ_e1),
1841-
Part.__fromPythonOCC__(occ_arc),
1842-
Part.__fromPythonOCC__(occ_e2)]).Edges
1830+
n = t1.cross(t2)
1831+
pln = Part.Plane(edge_1.valueAt(edge_1.FirstParameter), n)
1832+
api.init(edge_1, edge_2, pln)
1833+
if api.perform(radius) > 0:
1834+
p0 = (p2 + p3) / 2
1835+
fillet, e1, e2 = api.result(p0)
1836+
return Part.Wire([e1, fillet, e2]).Edges
18431837
else:
18441838
return None
18451839

0 commit comments

Comments
 (0)