forked from mozman/ezdxf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupright_insert.py
46 lines (38 loc) · 1.05 KB
/
upright_insert.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
import pathlib
import ezdxf
from ezdxf.upright import upright
CWD = pathlib.Path("~/Desktop/Outbox").expanduser()
if not CWD.exists():
CWD = pathlib.Path(".")
POLYLINE_POINTS = [
# x, y, s, e, b
(0, 0, 0, 0, 0),
(2, 2, 1, 2, -1),
(4, 0, 2, 1, 1),
(6, 0, 0, 0, 0),
]
doc = ezdxf.new()
doc.layers.new("original", dxfattribs={"color": 2})
doc.layers.new("upright", dxfattribs={"color": 6})
blk = doc.blocks.new("example")
blk.add_arc(
center=(5, 0, 2),
radius=3,
start_angle=30,
end_angle=150,
)
blk.add_lwpolyline(POLYLINE_POINTS)
blk.add_line((0, 0), (10, 0), dxfattribs={"color": 1})
blk.add_line((0, 0), (0, 10), dxfattribs={"color": 3})
blk.add_line((0, 0, 0), (0, 0, 10), dxfattribs={"color": 5})
msp = doc.modelspace()
blk_ref = msp.add_blockref(
name="example",
insert=(0, 0, 4),
dxfattribs={"extrusion": (0, 0, -1), "layer": "original", "rotation": -37},
)
blk_ref_copy = blk_ref.copy()
blk_ref_copy.dxf.layer = "upright"
upright(blk_ref_copy)
msp.add_entity(blk_ref_copy)
doc.saveas(CWD / "upright_insert.dxf")