-
Notifications
You must be signed in to change notification settings - Fork 184
/
test_xref_load_acis.py
85 lines (62 loc) · 2.21 KB
/
test_xref_load_acis.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
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
# Copyright (c) 2024, Manfred Moitzi
# License: MIT License
import pytest
import ezdxf
import ezdxf.xref
from ezdxf.document import Drawing
from ezdxf.entities import Solid3d
from ezdxf.render import forms
def source_doc_R2007() -> Drawing:
doc = ezdxf.new("R2007")
msp = doc.modelspace()
forms.cube().render_3dsolid(msp)
return doc
def source_doc_R2013() -> Drawing:
doc = ezdxf.new("R2013")
msp = doc.modelspace()
forms.cube().render_3dsolid(msp)
return doc
def test_load_acis_from_R2007():
target_doc = ezdxf.new("R2007")
source_doc = source_doc_R2007()
source_msp = source_doc.modelspace()
source_cube = source_msp[0]
assert isinstance(source_cube, Solid3d)
ezdxf.xref.load_modelspace(source_doc, target_doc)
target_msp = target_doc.modelspace()
loaded_cube = target_msp[0]
assert isinstance(loaded_cube, Solid3d)
assert loaded_cube.sat == source_cube.sat
def test_load_acis_from_R2013():
target_doc = ezdxf.new("R2013")
source_doc = source_doc_R2013()
source_msp = source_doc.modelspace()
source_cube = source_msp[0]
assert isinstance(source_cube, Solid3d)
ezdxf.xref.load_modelspace(source_doc, target_doc)
target_msp = target_doc.modelspace()
loaded_cube = target_msp[0]
assert isinstance(loaded_cube, Solid3d)
sab = loaded_cube.sab
assert len(sab) > 1
assert sab == source_cube.sab
def test_load_acis_from_2007_into_2013():
target_doc = ezdxf.new("R2013") # SAB
source_doc = source_doc_R2007()
ezdxf.xref.load_modelspace(source_doc, target_doc)
target_msp = target_doc.modelspace()
loaded_cube = target_msp[0]
assert isinstance(loaded_cube, Solid3d)
assert len(loaded_cube.sat) == 0, "SAT data removed"
assert len(loaded_cube.sab) == 0
def test_load_acis_from_2013_into_2007():
target_doc = ezdxf.new("R2007") # SAT
source_doc = source_doc_R2013()
ezdxf.xref.load_modelspace(source_doc, target_doc)
target_msp = target_doc.modelspace()
loaded_cube = target_msp[0]
assert isinstance(loaded_cube, Solid3d)
assert len(loaded_cube.sat) == 0
assert len(loaded_cube.sab) == 0, "SAB data removed"
if __name__ == "__main__":
pytest.main([__file__])