【排样】亲士套料工具箱
本文涉及知识点数学 几何前言运行环境AutoCad2013及更高版本暂不支持中文Cad和BricsCad。帮助视频https://edu.csdn.net/course/detail/41448 如果在审核中请点击https://www.bilibili.com/video/BV1X4Hm61EWz/下载地址https://download.csdn.net/download/he_zhidan/93660109排样套料工具箱。初版支持AutoCad2013基于libnest2d0.4clipper, nplot,boost。不支持凹多边形凹多边形被填充凸多边形。不支持孔洞。只支持多义线非闭合多义性将自动闭合多义线的弧将用线段模拟。并根据箱子的框高绘制新箱子将选择的多义线移动到箱子中保留多义性的颜色等属性。排样是NP-Hard问题无法在有限时间找到最优解许多时候明显的最优解都没找到。排样套料工具箱一、产品定位排样套料工具箱是一款面向 AutoCAD 绘图员的自动化排样插件帮助您把多个零件快速、紧凑地摆放到一张板材上减少余料浪费提升材料利用率。初版支持 AutoCAD 2013 及以上版本。二、核心能力能力说明一键排样选择多个多义线自动计算最优摆放位置自动建箱根据设定的箱宽箱高自动绘制新的板材框搬移零件把选中的多义线自动移动到箱子中保留属性零件的颜色、图层等属性完整保留多策略可选提供 DJD 启发式、首次适应两种排样策略技术内核基于 libnest2d 0.4、Clipper、nplot、Boost 等成熟开源库构建算法稳定可靠。三、使用流程三步完成选零件 —— 在图纸上框选要排样的多义线 设参数 —— 填写板材尺寸、间距、旋转角度等 点排样 —— 插件自动计算并生成排样图整个过程无需手动摆放几秒钟即可完成过去几十分钟的工作。四、当前版本的能力边界为了让您对工具的适用范围有清晰预期以下限制请务必了解✅ 支持的图形类型说明多义线Polyline唯一支持的输入类型闭合多义线直接处理非闭合多义线自动闭合后再处理带弧的多义线弧段用线段模拟精度可调⚠️ 不支持或受限的情况情况处理方式凹多边形自动填充为凸多边形后再排样带孔洞的零件不支持孔洞会被忽略圆、椭圆、样条曲线等不支持请先转换为多义线说明凹多边形填充为凸多边形后排样结果会比实际零件胖一些可能导致板材利用率略低于理论值。如果您的零件有明显的凹形特征请在排样后人工微调。五、关于排样是不是一定能找到最优解排样属于 NP-Hard 问题——这是数学上已被证明的结论。通俗地说零件数量一多可能的摆放组合就呈爆炸式增长任何算法都无法在有限时间内穷举所有方案。 因此本工具不保证找到最优解许多时候连肉眼可见的最优解也未必能找到但相比人工摆放工具能在几秒内给出一个明显更好的方案这已经能带来可观的效率提升。我们的建议把工具当作高效的初稿生成器排样结果可在此基础上人工微调兼顾效率与质量。六、典型收益对比项人工摆放使用本工具单张板材排样耗时20~60 分钟几秒 ~ 几十秒材料利用率依赖经验波动大稳定提升 5%~15%一致性因人而异标准化输出可重复性难复现参数保存一键复现七、适用场景钣金下料激光切割、等离子切割、火焰切割木工开料板材裁切、家具部件排布石材/玻璃异形件排版广告标识亚克力、PVC 板排样操作步骤一点击选项卡或菜单上的套料按钮。二选中需要套料的多义线非闭合多义线会当成闭合多以线。带圆弧的多义线或通过直线段拟合。弦高≤ max ( 0.1 , 物品间隙 / 20 ) \le \max(0.1,物品间隙/20)≤max(0.1,物品间隙/20)。三自动生成红色箱体并将能装箱的物品旋转移动到对应箱体。原图紫色有圆弧的多义线。绿色较长的多义线。青色凹多边形。黄色非简单多边形。排样后基础配置参数名含义对绘图的影响建议值DecimalPlaces保留小数位数排样结果中坐标值保留几位小数 位数越多越精确但图纸尺寸标注会显得冗长位数太少可能造成零件间出现微小重叠3毫米精度到千分之一够用MinSpacing最小间距 两个零件之间必须留出的最小空隙设太小 → 零件挨太紧切割时可能碰伤设太大 → 浪费材料SelectorType选择器类型排样时决定下一个放哪个零件的策略 影响排样速度与材料利用率通常用默认即可0DJD 启发式或 1首次适应BinWidth箱子宽 排样区域的宽度通常是板材的宽必须与实际板材尺寸一致否则排样结果无法使用按实际板材填写如 1220、1500BinHeight箱子高排样区域的高度通常是板材的长 同上决定排样范围按实际板材填写如 2440、3000TimeoutSeconds超时秒数算法最多运行多少秒超过就停止 设太短 → 排样质量差设太长 → 等太久一般 30 秒零件多时可设 60~120提示BinWidth 和 BinHeight 就像一张纸的大小排样算法要在这张纸上把零件摆下。填错的话排出来的图在实际板材上放不下。临界多边形配置NFP临界多边形是排样算法中判断两个零件能不能靠在一起的核心工具。这组参数控制 NFP 的计算精度与摆放方式。参数名含义对绘图的影响建议值accuracy精度NFP 计算时轮廓的近似精度0~1 值越大 → 轮廓越精确但计算越慢值太小 → 可能造成零件间微小重叠0.65默认够用alignment对齐方式零件靠拢时按什么方式对齐 影响零件的摆放姿态通常用默认 0默认starting_point起始点NFP 计算的起始顶点索引一般不用改算法会自动选 0默认rotation_angles可旋转角度零件允许旋转的角度列表 这是绘图员最需要关注的参数 列表里的角度就是零件可以尝试的方向按工艺定{0, 90, 180, 270} 或加 45、30 等rotation_angles 的通俗解释假设你有一块零件{0, 90} 表示只能正着放或转 90 度放{0, 45, 90, 135, ...} 表示每 45 度都能试一次。角度越多排样越灵活材料利用率越高但计算时间也越长。启发性配置这组参数控制怎么尝试不同的摆放组合影响排样质量与速度。参数名含义对绘图的影响建议值try_reverse_order尝试反序是否也尝试从后往前排一遍 开启后可能找到更好的方案但耗时增加true默认try_pairs尝试2个一组是否把两个零件组合起来一起排 开启后对成对零件如左右件效果更好true默认try_triplets尝试3个一组是否把三个零件组合起来一起排 开启后可能提升利用率但速度明显变慢false零件少时可开initial_fill_proportion初始填充率 开始时按多大比例铺满板材 值越大 → 初始方案越满但可能错过更优解值越小 → 探索空间更大1/3默认平衡waste_increment浪费增长每次迭代允许的浪费增量 值越大 → 算法越敢尝试新方案值越小 → 越保守0.1默认通俗理解DJD 就像一个试衣间try_pairs 是试试两件一起穿initial_fill_proportion 是一开始先穿几件waste_increment 是每次允许多浪费多少空间。参数越激进试的次数越多找到好方案的概率越大但时间也越长。扩展阅读计算几何为骨排样优化为魂作品一亲士套料工具箱 作品二 亲士CAD工具箱经典文章推荐二维排样万物皆数学查阅鄙人的博文请点击博文下载学院导航活到老学到老。明朝中后期大约50%的进士能当上堂官(副部及更高)能当上堂官的举人只有十余人。子墨子言之事无终始无务多业。也就是我们常说的专业的人做专业的事。测试环境操作系统win7 开发环境 VS2019C17或者 操作系统win10 开发环境 VS2022C17如无特殊说明本算法用**C**实现。