-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtestBezSurf.py
More file actions
108 lines (68 loc) · 3.35 KB
/
Copy pathtestBezSurf.py
File metadata and controls
108 lines (68 loc) · 3.35 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import SurfaceTools
docname = "TestBezSurf"
ftp = 1 ### Change to test different fill types (1, 2, or 3 accepted)
App.newDocument(docname)
App.setActiveDocument(docname)
mydoc = App.getDocument(docname)
import Draft
import Part
### Set Borders ###
p1a = [FreeCAD.Vector(0.0,0.0,3.0),FreeCAD.Vector(3.0,1.0,1.5),FreeCAD.Vector(7.0,0.5,0.50),FreeCAD.Vector(10.0,0.0,0.0)]
p2a = [FreeCAD.Vector(0.0,0.0,3.0),FreeCAD.Vector(4.0,-1.3,-2),FreeCAD.Vector(6.0,0.75,-0.50),FreeCAD.Vector(10.0,0.0,0.0)]
p1b = [FreeCAD.Vector(0.0,0.0,3.0),FreeCAD.Vector(3.0,0.0,3.0),FreeCAD.Vector(7.0,0.0,-0.50),FreeCAD.Vector(10.0,0.0,0.0)]
p2b = [FreeCAD.Vector(10.0,0.0,0.0), FreeCAD.Vector(10.0,6.0,0.0), FreeCAD.Vector(3.3,9.0,0.0), FreeCAD.Vector(0.0,9.0,0.0)]
p3b = [FreeCAD.Vector(0.0,9.0,0.0),FreeCAD.Vector(0.0,6.0,-0.25),FreeCAD.Vector(0.0,4.0,3.0),FreeCAD.Vector(0.0,0.0,3.0)]
shft = FreeCAD.Vector(11,0,0)
for i in range(0,len(p1b)):
p1b[i] = p1b[i]+shft
for i in range(0,len(p2b)):
p2b[i] = p2b[i]+shft
for i in range(0,len(p3b)):
p3b[i] = p3b[i]+shft
p1c = [FreeCAD.Vector(0.0,0.0,0.0),FreeCAD.Vector(3.0,0.0,3.0),FreeCAD.Vector(6.0,0.0,-2.50),FreeCAD.Vector(10.0,0.0,0.0)]
p2c = [FreeCAD.Vector(0.0,0.0,0.0),FreeCAD.Vector(0.0,2.7,4.1),FreeCAD.Vector(3.0,6.2,3.0),FreeCAD.Vector(0.0,7.0,0.0)]
p3c = [FreeCAD.Vector(0.0,7.0,0.0),FreeCAD.Vector(2.1,8.3,-1.0),FreeCAD.Vector(4.0,7.2,-3.0),FreeCAD.Vector(5.0,8.0,0.0)]
p4c = [FreeCAD.Vector(5.0,8.0,0.0),FreeCAD.Vector(6.2,5.3,1.0),FreeCAD.Vector(7.9,1.0,0.50),FreeCAD.Vector(10.0,0.0,0.0)]
for i in range(0,len(p1c)):
p1c[i] = p1c[i]+shft*2
for i in range(0,len(p2c)):
p2c[i] = p2c[i]+shft*2
for i in range(0,len(p3c)):
p3c[i] = p3c[i]+shft*2
for i in range(0,len(p4c)):
p4c[i] = p4c[i]+shft*2
bs1a = Draft.makeBezCurve(p1a,closed=False,support=None)
bs2a = Draft.makeBezCurve(p2a,closed=False,support=None)
bs1b = Draft.makeBezCurve(p1b,closed=False,support=None)
bs2b = Draft.makeBezCurve(p2b,closed=False,support=None)
bs3b = Draft.makeBezCurve(p3b,closed=False,support=None)
bs1c = Draft.makeBezCurve(p1c,closed=False,support=None)
bs2c = Draft.makeBezCurve(p2c,closed=False,support=None)
bs3c = Draft.makeBezCurve(p3c,closed=False,support=None)
bs4c = Draft.makeBezCurve(p4c,closed=False,support=None)
mydoc.recompute()
### Add Test Feature Two sides ###
test1 = mydoc.addObject('SurfaceTools::BezSurf', 'two_curves')
### Add Bezier Curves to test ###
#mydoc.test.Border = [(bs1, 'Edge1'), (bw2, 'Edge1'), (bw3, 'Edge1'), (bs4, 'Edge1')]
test1.aBezList = [(bs1a, 'Edge1'), (bs2a, 'Edge1')]
### Set fill type ###
test1.filltype = ftp
#**********************************#
### Add Test Feature Three sides ###
test2 = mydoc.addObject('SurfaceTools::BezSurf', 'three_curves')
### Add Bezier Curves to test ###
#mydoc.test.Border = [(bs1, 'Edge1'), (bw2, 'Edge1'), (bw3, 'Edge1'), (bs4, 'Edge1')]
test2.aBezList = [(bs1b, 'Edge1'), (bs2b, 'Edge1'), (bs3b, 'Edge1')]
### Set fill type ###
test2.filltype = ftp
#**********************************#
### Add Test Feature Three sides ###
test3 = mydoc.addObject('SurfaceTools::BezSurf', 'four_curves')
### Add Bezier Curves to test ###
#mydoc.test.Border = [(bs1, 'Edge1'), (bw2, 'Edge1'), (bw3, 'Edge1'), (bs4, 'Edge1')]
test3.aBezList = [(bs1c, 'Edge1'), (bs2c, 'Edge1'), (bs3c, 'Edge1'), (bs4c, 'Edge1')]
### Set fill type ###
test3.filltype = ftp
mydoc.recompute()
Gui.SendMsgToActiveView("ViewFit")