FreeCAD

Форк
0
/
BRep_tests.py 
49 строк · 1.5 Кб
1
import FreeCAD as App
2
import Part
3

4
import unittest
5

6
class BRepTests(unittest.TestCase):
7

8
    def testProject(self):
9
        """
10
        This is a unit test for PR #13507
11
        """
12
        num = 18
13
        alt = [0, 1] * num
14
        pts = [App.Vector(i, alt[i], 0) for i in range(num)]
15

16
        bsc = Part.BSplineCurve()
17
        bsc.buildFromPoles(pts, False, 1)
18
        edge = bsc.toShape()
19

20
        rts = Part.RectangularTrimmedSurface(Part.Plane(), -50, 50, -50, 50)
21
        plane_shape = rts.toShape()
22

23
        proj = plane_shape.project([edge])
24
        self.assertFalse(proj.isNull())
25
        self.assertEqual(len(proj.Edges), 1)
26

27
    def testEdgeSplitFace(self):
28
        coords2d = [(0.5, -0.5), (1.0, -0.5), (1.0, 0.5), (0.5, 0.5)]
29
        pts2d = [App.Base.Vector2d(u, v) for u, v in coords2d]
30
        pts2d.append(pts2d[0])
31

32
        sphere = Part.Sphere()
33
        edges = []
34
        for i in range(1, len(pts2d)):
35
            ls = Part.Geom2d.Line2dSegment(pts2d[i - 1], pts2d[i])
36
            edges.append(ls.toShape(sphere))
37

38
        split = edges[0].split(0.25)
39
        new_edges = split.Edges + edges[1:]
40
        wire = Part.Wire(new_edges)
41
        face = Part.Face(wire, "Part::FaceMakerSimple")
42
        self.assertTrue(face.isValid())
43

44
    def testEdgeSplitReplace(self):
45
        cyl = Part.makeCylinder(2, 5)
46
        e1 = cyl.Edge3
47
        split = e1.split([1.0, 2.0])
48
        newcyl = cyl.replaceShape([(e1, split), (cyl.Vertex2, split.Vertex1)])
49
        self.assertTrue(newcyl.isValid())
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.