diff --git a/masque/builder/pather_mixin.py b/masque/builder/pather_mixin.py index b0ccf61..f2b8229 100644 --- a/masque/builder/pather_mixin.py +++ b/masque/builder/pather_mixin.py @@ -506,7 +506,10 @@ class PortPather: return self def path_from(self, *args, **kwargs) -> Self: + thru = kwargs.pop('thru', None) self.pather.path_into(args[0], self.port, *args[1:], **kwargs) + if thru is not None: + self.rename_from(thru) return self def mpath(self, *args, **kwargs) -> Self: diff --git a/masque/builder/tools.py b/masque/builder/tools.py index b80c1f8..1db156b 100644 --- a/masque/builder/tools.py +++ b/masque/builder/tools.py @@ -623,6 +623,8 @@ class AutoTool(Tool, metaclass=ABCMeta): out_ptype_actual = out_transition.their_port.ptype elif ccw is not None: out_ptype_actual = bend.out_port.ptype + elif not numpy.isclose(straight_length, 0): + out_ptype_actual = straight.ptype else: out_ptype_actual = self.default_out_ptype @@ -768,6 +770,8 @@ class AutoTool(Tool, metaclass=ABCMeta): out_ptype_actual = out_transition.their_port.ptype elif not numpy.isclose(jog_remaining, 0): out_ptype_actual = sbend.ptype + elif not numpy.isclose(straight_length, 0): + out_ptype_actual = straight.ptype else: out_ptype_actual = self.default_out_ptype