Compare commits

..

22 Commits

Author SHA1 Message Date
029a0f681f [gdsii_arrow] fix rep_valid 2025-04-27 12:53:13 -07:00
bc36e92aab [gdsii_arrow] fill some more nulls 2025-04-27 12:23:53 -07:00
681f8e6354 [gdsii_arrow] fixup 2025-04-25 01:24:14 -07:00
1992cf572a [traits.annotatable] Don't break when setting annotations to None 2025-04-25 01:24:01 -07:00
3a73fb1d60 [PolyCollection] many fixes 2025-04-25 00:50:57 -07:00
25cde0abb5 [gdsii_arrow] fixup annotation types 2025-04-25 00:50:35 -07:00
2ef7a6e9e3 [gdsii_arrow] make polycollections if able 2025-04-25 00:50:17 -07:00
f78ba3655e [gdsii_arrow] clean unused var in loop 2025-04-24 23:20:30 -07:00
b4d287f384 [gdsii_arrow] fix var name typo 2025-04-24 23:20:00 -07:00
037118883b [shapes] Don't create empty dicts for annotations 2025-04-24 23:19:40 -07:00
5368fd4e16 [PolyCollection] rework PolyCollection into ndarrays of vertices and offsets 2025-04-24 23:19:01 -07:00
d0c1b00d7e fix some polycollection syntax 2025-04-24 21:22:33 -07:00
jan
6fba14ae21 [wip] add poly_collection shape 2025-04-24 21:22:33 -07:00
82fafdc61b fixup indexing 2025-04-24 21:22:16 -07:00
7336545f07 [gdsii_arrow] add some TODO notes 2025-04-22 20:22:01 -07:00
4e40e3f829 [gdsii_arrow] use direct access for all element types 2025-04-22 20:20:46 -07:00
79f2088180 [utils.curves] ignore re-import of trapeziod 2025-04-22 20:19:59 -07:00
e89d912ce8 allow annotations to be None
breaking change, but properties are seldom used by anyone afaik
2025-04-21 20:26:34 -07:00
76511b95e6 gdsii_arrow wip 2025-04-21 19:07:26 -07:00
88bd5e897e split out _read_to_arrow
for ease of debugging
2025-04-21 19:07:26 -07:00
dc89491694 actually make use of raw mode 2025-04-21 19:07:26 -07:00
jan
de9714041f add gdsii_arrow 2025-04-21 19:07:26 -07:00
3 changed files with 3 additions and 3 deletions

View File

@ -541,7 +541,7 @@ class Pather(Builder):
tree2 = tool.path(ccw, length, in_ptype=in_ptype, port_names=('A', 'B'), out_ptype=out_ptype, **kwargs) tree2 = tool.path(ccw, length, in_ptype=in_ptype, port_names=('A', 'B'), out_ptype=out_ptype, **kwargs)
top2 = tree2.top_pattern() top2 = tree2.top_pattern()
jog = rotation_matrix_2d(top2['A'].rotation) @ (top2['B'].offset - top2['A'].offset) jog = rotation_matrix_2d(top2['A'].rotation) @ (top2['B'].offset - top2['A'].offset)
return jog[1] * [-1, 1][int(bool(ccw))] return jog[1]
dst_extra_args = {'out_ptype': out_ptype} dst_extra_args = {'out_ptype': out_ptype}
if plug_destination: if plug_destination:

View File

@ -290,7 +290,7 @@ class BasicTool(Tool, metaclass=ABCMeta):
gen_straight, sport_in, sport_out = self.straight gen_straight, sport_in, sport_out = self.straight
tree, pat = Library.mktree(SINGLE_USE_PREFIX + 'path') tree, pat = Library.mktree(SINGLE_USE_PREFIX + 'path')
pat.add_port_pair(names=port_names, ptype=in_ptype) pat.add_port_pair(names=port_names)
if data.in_transition: if data.in_transition:
ipat, iport_theirs, _iport_ours = data.in_transition ipat, iport_theirs, _iport_ours = data.in_transition
pat.plug(ipat, {port_names[1]: iport_theirs}) pat.plug(ipat, {port_names[1]: iport_theirs})

View File

@ -214,7 +214,7 @@ def _read_block(block: ezdxf.layouts.BlockLayout | ezdxf.layouts.Modelspace) ->
if isinstance(element, LWPolyline): if isinstance(element, LWPolyline):
points = numpy.asarray(element.get_points()) points = numpy.asarray(element.get_points())
elif isinstance(element, Polyline): elif isinstance(element, Polyline):
points = numpy.asarray([pp.xyz for pp in element.points()]) points = numpy.asarray(element.points())[:, :2]
attr = element.dxfattribs() attr = element.dxfattribs()
layer = attr.get('layer', DEFAULT_LAYER) layer = attr.get('layer', DEFAULT_LAYER)