1010from compas .geometry import Frame
1111from compas .geometry import Plane
1212from compas .geometry import Point
13+ from compas .geometry import Polyline
1314from compas .tolerance import TOL
1415from compas_rhino .conversions import box_to_rhino
1516from compas_rhino .conversions import curve_to_compas
1920from compas_rhino .conversions import mesh_to_rhino
2021from compas_rhino .conversions import plane_to_rhino
2122from compas_rhino .conversions import point_to_rhino
23+ from compas_rhino .conversions import polyline_to_rhino_curve
2224from compas_rhino .conversions import sphere_to_rhino
2325from compas_rhino .conversions import transformation_to_rhino
2426from compas_rhino .conversions import vector_to_rhino
@@ -223,7 +225,7 @@ def from_extrusion(cls, curve, vector, cap_ends=True):
223225
224226 Parameters
225227 ----------
226- curve : :class:`~compas.geometry.Curve`
228+ curve : :class:`~compas.geometry.Curve` or :class:`~compas.geometry.Polyline`
227229 The curve to extrude.
228230 vector : :class:`~compas.geometry.Vector`
229231 The vector to extrude the curve along.
@@ -235,7 +237,11 @@ def from_extrusion(cls, curve, vector, cap_ends=True):
235237 :class:`~compas_rhino.geometry.RhinoBrep`
236238
237239 """
238- extrusion = Rhino .Geometry .Surface .CreateExtrusion (curve_to_rhino (curve ), vector_to_rhino (vector ))
240+ if isinstance (curve , Polyline ):
241+ rhino_curve = polyline_to_rhino_curve (curve )
242+ else :
243+ rhino_curve = curve_to_rhino (curve )
244+ extrusion = Rhino .Geometry .Surface .CreateExtrusion (rhino_curve , vector_to_rhino (vector ))
239245 if extrusion is None :
240246 raise BrepError ("Failed to create extrusion from curve: {} and vector: {}" .format (curve , vector ))
241247 rhino_brep = extrusion .ToBrep ()
0 commit comments