PyNest支持旋转么
时间: 2024-02-25 10:56:05 浏览: 124
是的,PyNest 库支持自动旋转图形以实现更好的利用率。可以通过设置 `rotation` 参数来启用或禁用旋转功能。如果将 `rotation` 参数设置为 `True`,则库将尝试以 90 度的间隔旋转每个部件来寻找更佳的排列方式。如果将 `rotation` 参数设置为 `False`,则库将仅考虑部件的原始方向,不旋转。
以下是一个使用 PyNest 库的简单示例,其中 `rotation` 参数已设置为 `True`:
```python
from pynest import Nest
parts = [[50,30],[60,40],[30,30],[40,50]]
nest = Nest(parts, [100,100], rotation=True)
nest.start()
```
在这个示例中,部件列表 `parts` 包含四个部件,每个部件由宽度和高度组成。`[100, 100]` 表示待套料的大板材大小,即宽度为 100,高度为 100。`Nest` 类的 `rotation` 参数被设置为 `True`,以启用自动旋转功能。`start()` 方法将开始套料过程并返回结果。
相关问题
旋转间隔固定为90度么?不能更精确的匹配?
在 PyNest 库中,旋转间隔默认为 90 度,也就是说每个部件只能以 90 度的间隔旋转。如果您希望更精确地匹配旋转角度,可以通过自定义旋转函数来实现。
PyNest 库中的 `Nest` 类接受一个可选参数 `rotation_function`,可以用来指定自定义的旋转函数。该函数应该接受两个参数,即部件的宽度和高度,并返回旋转角度。如果返回 `None`,则表示禁用旋转。
以下是一个示例,展示如何定义一个旋转函数来支持更精确的旋转角度:
```python
from pynest import Nest
def custom_rotation(w, h):
if w == h:
return 45
else:
return None
parts = [[50,30],[60,40],[30,30],[40,50]]
nest = Nest(parts, [100,100], rotation_function=custom_rotation)
nest.start()
```
在这个示例中,我们定义了一个名为 `custom_rotation` 的旋转函数,它接受部件的宽度和高度,并根据条件返回一个旋转角度。在这个例子中,如果部件的宽度和高度相等,则返回 45 度的旋转角度;否则返回 `None` 表示禁用旋转。然后我们将这个旋转函数传递给 `Nest` 类的 `rotation_function` 参数来使用。
需要注意的是,自定义旋转函数需要根据实际情况进行设计和调整,以达到更好的套料效果。
阅读全文