This repository has been archived by the owner on Jan 18, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmoveViews.py
48 lines (39 loc) · 1.43 KB
/
moveViews.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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# move Views from Drawing Page to TechDraw Page in the current document
import FreeCAD
import Part
import Drawing
import TechDraw
svgHead = "<svg\n" + " xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"\n" + " xmlns:freecad=\"http://www.freecadweb.org/wiki/index.php?title=Svg_Namespace\">\n"
svgTail = "\n</svg>"
def macroBody():
s = FreeCADGui.Selection.getSelection()
if len(s) != 2:
print "Please select 1 Drawing Page and 1 TechDraw Page"
return
print "First object in selection is a: ", s[0].TypeId
print "Second object in selection is a: ", s[1].TypeId
if s[0].isDerivedFrom("Drawing::FeaturePage") and \
s[1].isDerivedFrom("TechDraw::DrawPage"):
dPage = s[0]
tPage = s[1]
elif s[0].isDerivedFrom("TechDraw::DrawPage") and \
s[1].isDerivedFrom("Drawing::FeaturePage"):
tPage = s[0]
dPage = s[1]
else:
print "Please select 1 Drawing Page and 1 TechDraw Page"
return
i = 1
for o in dPage.OutList:
newName = "DraftView" + str(i).zfill(3)
print "moving " + o.Name + " to " + newName
svg = svgHead + o.ViewResult + svgTail
no = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewSymbol',newName)
no.Symbol = svg
tPage.addView(no)
i += 1
print "moveViews moved " + str(i-1) + " views"
if __name__ == '__main__':
macroBody()