Compare commits

..

25 Commits

Author SHA1 Message Date
48fe789d67 [gdsii_arrow] fix rep_valid 2025-05-28 00:40:47 -07:00
d559c1231b [gdsii_arrow] fill some more nulls 2025-05-28 00:40:47 -07:00
08dd66ea78 [gdsii_arrow] fixup 2025-05-28 00:40:47 -07:00
dad9055089 [traits.annotatable] Don't break when setting annotations to None 2025-05-28 00:40:47 -07:00
97a1d4d718 [PolyCollection] many fixes 2025-05-28 00:40:47 -07:00
adf8345022 [gdsii_arrow] fixup annotation types 2025-05-28 00:40:47 -07:00
23b1eedc10 [gdsii_arrow] make polycollections if able 2025-05-28 00:40:47 -07:00
ce30c4f6cd [gdsii_arrow] clean unused var in loop 2025-05-28 00:40:47 -07:00
ba4fc9f4b6 [gdsii_arrow] fix var name typo 2025-05-28 00:40:47 -07:00
611b556499 [shapes] Don't create empty dicts for annotations 2025-05-28 00:40:47 -07:00
30553b9766 [PolyCollection] rework PolyCollection into ndarrays of vertices and offsets 2025-05-28 00:40:47 -07:00
1241d99473 fix some polycollection syntax 2025-05-28 00:40:47 -07:00
jan
10306f1d0c [wip] add poly_collection shape 2025-05-28 00:40:47 -07:00
48187875ee fixup indexing 2025-05-28 00:40:47 -07:00
ca0826ac09 [gdsii_arrow] add some TODO notes 2025-05-28 00:40:47 -07:00
c178eabc1e [gdsii_arrow] use direct access for all element types 2025-05-28 00:40:47 -07:00
fb5d4602ee [utils.curves] ignore re-import of trapeziod 2025-05-28 00:40:47 -07:00
b44486bd2a allow annotations to be None
breaking change, but properties are seldom used by anyone afaik
2025-05-28 00:40:47 -07:00
4817ea1f4e gdsii_arrow wip 2025-05-28 00:40:47 -07:00
cc727cacbe split out _read_to_arrow
for ease of debugging
2025-05-28 00:40:47 -07:00
af0db0b278 actually make use of raw mode 2025-05-28 00:40:47 -07:00
jan
72fe0dccab add gdsii_arrow 2025-05-28 00:40:47 -07:00
5e0eef7c59 [dxf] match ezdxf syntax changes 2025-05-28 00:40:24 -07:00
ad00ade097 [Tool] correctly set input ptype 2025-05-28 00:39:44 -07:00
385a37e0a2 [Pather] fix path_into for some 2-bend cases 2025-05-28 00:39:25 -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] return jog[1] * [-1, 1][int(bool(ccw))]
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) pat.add_port_pair(names=port_names, ptype=in_ptype)
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(element.points())[:, :2] points = numpy.asarray([pp.xyz for pp in element.points()])
attr = element.dxfattribs() attr = element.dxfattribs()
layer = attr.get('layer', DEFAULT_LAYER) layer = attr.get('layer', DEFAULT_LAYER)