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__])
|