@@ -177,6 +177,17 @@ def set_fill_mode(self, mode: str):
177177 raise NotImplementedError
178178
179179
180+ class ProxyEvolved (ProxyOffset ):
181+ #: A reference to the Shape declaration.
182+ declaration = ForwardTyped (lambda : Evolved )
183+
184+ def set_spline (self , spline : Optional [Union [Shape , TopoDS_Shape ]]):
185+ raise NotImplementedError
186+
187+ def set_profile (self , profile : Optional [Union [Shape , TopoDS_Shape ]]):
188+ raise NotImplementedError
189+
190+
180191class ProxyAbstractRibSlot (ProxyOperation ):
181192 #: Abstract class
182193
@@ -760,6 +771,57 @@ def _update_proxy(self, change: dict[str, Any]):
760771 super (Pipe , self )._update_proxy (change )
761772
762773
774+ class Evolved (Operation ):
775+ """An operation that extrudes a profile along a spline, wire, or path.
776+
777+ Attributes
778+ ----------
779+
780+ spline: Edge or Wire
781+ The spline to extrude along.
782+ profile: Wire
783+ The profile to extrude.
784+
785+ Examples
786+ --------
787+
788+ See examples/evolved.enaml
789+
790+ """
791+
792+ #: Reference to the implementation control
793+ proxy = Typed (ProxyEvolved )
794+
795+ #: Spline to make the evolve along. It must be closed.
796+ spline = d_ (Instance (object ))
797+
798+ #: Profile to make the evolved shaped from.
799+ #: This must be a planar Wire or Face.
800+ profile = d_ (Instance (object ))
801+
802+ #: Run in parallel
803+ parallel = d_ (Bool (True ))
804+
805+ #: Whether to fuse into a single solid or keep as a compound.
806+ solid = d_ (Bool ())
807+
808+ #: Remove self-intersections in the result
809+ volume = d_ (Bool ())
810+
811+ #: This axe prof flag
812+ global_axis = d_ (Bool (True ))
813+
814+ # Whether the profile must be connected to the spline
815+ require_profile_on_spline = d_ (Bool ())
816+
817+ #: Join type
818+ join_type = d_ (Enum ("arc" , "tangent" , "intersection" ))
819+
820+ @observe ("spline" , "profile" , "join_type" , "solid" , "volume" , "global_axis" )
821+ def _update_proxy (self , change : dict [str , Any ]):
822+ super ()._update_proxy (change )
823+
824+
763825class AbstractRibSlot (Operation ):
764826 #: Base shape
765827 shape = d_ (Instance (Shape ))
0 commit comments