File: test_xref_load_acis.py

package info (click to toggle)
ezdxf 1.4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 104,528 kB
  • sloc: python: 182,341; makefile: 116; lisp: 20; ansic: 4
file content (85 lines) | stat: -rw-r--r-- 2,262 bytes parent folder | download
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__])