本文记录自20240812-test版本之后,官方对软件所做的更新。截止至20250418。
#1795:跟translations.properties有关。对汉化有关联。
#1793:bug修复。
#1790:是一份PR 草案,向 I&S 中注入专用于 Marlin固件 的控制逻辑,但是并未采取实际行动。
#1789:为#1699中新增的DELAY_COMMAND,添加回退机制。
#1788:在#1787基础上,为PushPullFeeder的FeedOptions移植送料逻辑。
#1787:在#1716基础上,为PushPullFeeder做FeedOptions部署。
#1786:修复基准视觉和底部视觉界面中,无法使用复制按钮的bug。来自qutaojun的反馈。
#1779:修改/完善Job任务出错后的处理机制。【带有抛料机制】可以看这个链接。
#1778:增强脚本功能的一种尝试,会在.openpnp2中注入新的配置文件:script-state.xml,具体可以查看这个PR和WIKI新增的内容,似乎是通过添加了“ config.scriptstate”对象到script-state.xml文件中,来保持脚本之间可以共享数据和参数。
#1776:修复基准视觉通道,显示mark点的中心。补充:目前版本中的底部视觉通道和基准视觉通道,官方都做了改动。基准视觉通道的识别过程和结果,跟之前的习惯不太一样,识别结果中绿色的靶标也被改 丢 了。针对这个,我会发布针对二代机,新的基准视觉通道的代码(已做好)。
#1775:修复元件库复选框的更新bug,修复单板通过File->Import placements导入坐标文件时,因未启用View->Selections in Tables->Linked,而导错板子的情况。
#1774:修复I&S中,不显示“Use an adaptive camera settling method.”这条Isuue的bug。来自qutaojun的Report。
#1773:更新 "Feeder X changed. Apply changes?" 弹窗的流控方式,避免频繁弹出,仅在GUI界面里修改飞达参数时才会弹出。
#1772:跟translations.properties有关。对汉化有关联。
添加一个新的测试单元 NormalisationTest,来确认translations.properties 使用了规范的格式。
#1771:仅对底部相机提供 Auto-Focus 和 Use Nozzle Z 两种标定方式,Auto-Focus是过往版本中默认的背景项,Use Nozzle Z是这次新增的功能,可以让相机焦距面=相机位置Z,这种固定方式更贴合二代机。
#1770:修复#1700引入的错误,将focus选项只用于底部相机。
#1769:将新的互锁条件添加到Axis Interlock(轴互锁)中。补充:二代机暂未用到这个功能,以后深究轴互锁的具体功能和使用。
#1768:修复贴装头具有Z偏置,且safe z zone较薄时,导致的被错误认定为不在安全区的bug。
#1767:引入#1749的Through-Hole Depth作为元件库的一个选项。某些贴片元件,需要沉入电路板表面以下的深度,来自#1749,(新引入的功能,还未做测试,有些元件需要反着贴,比如某些反贴的LED灯,顶层贴,从底层发光)
#1766:修改相机视图缩放级别,之前是5档mm级加法缩放,现在改为3档乘法缩放。
#1761:当Jog到软限位时,在确认首个Cant move …,lower than soft limit…的警告消息前,阻止进一步的Jog动作。之前似乎是,弹出这个窗口,还可以继续朝着错误的方向继续Jog。
#1745:底部相机图像可以跟顶部相机图像一样,显示黄色的封装图形。结合#1694的Pin1引脚指明方向,能够在底部图像中了解到元件的旋转方向。
#1735:修复#1735引入的,无法消除I&S 中“unconventional Z axis”的警告错误。
#1733:修复相机图像Highest Quality选项,让图像始终可以适合视图窗。
#1729:改变了列表的操作方式。在Parts、Packages、Jobs...的列表中,第一次单击某一行中的任意单元格,仅仅是选中行,再次点击该行某一单元格,才会进入编辑或者打开复选框。特别是在 Job 的贴片列表的元件列里,之前是,点到哪个单元格,就会立即进入编辑或复选状态。
#1727:为软件右下角坐标显示栏,增加了一个右键copy按钮。
#1724:修复任务进度栏的计数器的刷新bug。
#1722:代码中把Length类改为不可变,修复Lenght的Bug。
#1719:为基准Mark点的视觉方案,新增了一个滑动条,可以限制Mark点的识别范围,伴随此功能,还把Mark点的识别效果也给改了,没有了之前的绿色靶标。Mark点包括Home点。
#1716: 【新增功能】飞达新增了一个名为feed复选栏。
#1714:ReferenceStripFeeder,修复散料编带飞达两个定位孔的孔距计算错误的bug。
#1713:ReferenceStripFeeder,散料编带飞达识别 透明 编带,新增“视差”功能,来对编带孔进行视觉定位。其视觉通道下方多了3个新按钮。有点类似识别Mark点所用的视差。二代机从硬件上克服了顶部相机对透明编带的识别不良。
#1710:按住Shift键,点击Jog面板的移动按钮,则实际移动距离将被细化100倍,即1/100,也就是步进滑块为100时,按住Shitf后点方向键去移动贴装头,实际移动1mm。
#1709:修复吸嘴背景校准的诊断bug。
#1708:优化贴片的放置动作,让贴装头的动作距离最小化。
#1707:优化任务中的Mark点巡检。拼板和单板的Mark点巡检合并为一个独立的步骤,并优化所有Mark点的巡检动作路线。
#1706:进一步修复飞达列表右键菜单中的Bug。来自qutaojun
#1705:Gcode中的 POSITION_REPORT_REGEX,在I&S中被建议改为:^.*C:\s*X:(? -?\d+\.\d+)\s*Y:(? -?\d+\.\d+)\s*Z:(? -?\d+\.\d+)\s*A:(? -?\d+\.\d+)\s*B:(? -?\d+\.\d+).* 【新V1.3配置文件没有采纳这个建议,已被Dismiss】
#1704:提取AutoFeeder界面词条。来自qutaojun
#1703:提取了6跟翻译相关的词条。来自qutaojun
#1702:更改了Actuator coordination机器协调规则,相应UI做了调整。更多信息 https://github.com/openpnp/openpnp/wiki/Motion-Planner#actuator-machine-coordination
#1701:修复轴设置界面中跟翻译相关的词条。来自qutaojun
#1700:底部相机校准时,有Use Auto-Focus 和 Use nozzle Z location,后者更贴合二代机使用固定焦距,避免之前版本Auto-Focus时,造成校准过程中的焦距高度面的改变,但是会丧失对元件高度通过底部相机自动检测的功能。这个PR是个好东西。教程已同步更新。教程已做更新。
#1699:向驱动侧的Gcode中注入并使用新的延迟指令:DELAY_COMMAND:G4 P<>,作为静态拾取元件和放置元件的dewell time停留时间,单位ms。新配置文件中,已在I&S进行了Accept。跟#1702机器协调有一定的联系,具体怎么用,我目前还未知。
#1696:修复飞达列表右键菜单中的词条错误。来自qutaojun
#1694:封装的布局定义中定义了所有焊盘的位置,但没有方向标记,该功能可以在元件的封装定义中,通过封装定义界面新增的按钮,通过添加一个黄色的圆形标记,例如可以指定出Pin1脚的位置。(这个功能好,对于极性元件特别的好,重要的是,需要培养为元件制作封装的习惯,大芯片可以通过Kicad进项导入)
#1693:更新Jobviewer任务可视化查看器中的功能,显示所有板子的实际摆放位置。
#1691:把tooltip的显示显示时间由4秒,延长到60秒。tooltip就是鼠标放在某个按钮或输入框后,弹出来的功能提示。以前的确实是太短了,根本看不完。
#1690:之前Jog面板的步进距离滑块的设定位置不会被存储,即,每次重新启动软件后,步进间距均为最精细的 0.01 设定值。
#1689:修复软件UI中间的那条左右分隔线在调大相机图像窗口后或者切换多窗口模式后,无法调整的bug。这个曾困扰了很多人,虽然在常见问题中列出了解决办法。这个好。
#1687:删除了没有意义的古老工件ReferenceHeadMountable代码。
#1686:Pandaplacer Feeder 使用完整的相机图像进行AutoSetup自动设置。
#1685:添加了两个脚本事件 Nozzle.BeforeTakeBack 和 Nozzle.AfterTakeBack。
#1682:I&S中添加了一些警告消息,当safeZ为正值的警告(unconventional Z axis);当重新进行轴校准时,有可能改变自动换嘴配置的警告。这个PR后续被#1735修复。
#1681:添加了一个脚本事件Machine.AfterDriverHoming。
#1680:在I&S中,对主连杆【重做】偏移校准做了优化(N1挂503指向主要标定点)。'具体怎么个逻辑和改变,我被官方PR弄的有点糊涂,而且,我似乎拿不出一个教程,让用户如何操作,能够重新对N1N2的轴参偏移量重做校准。【留一个小伏笔】'
#1679:修复BlindsFeeder的Bug。
#1678:贴片任务期间抛料后,手动吸取一个新料后,会对这个新料做检查,如果型号与抛料的型号不对,会提示错误。防止手动介入的情况下,使用吸嘴贴了一个错误的元件。【有意义的一个修复】
#1676:修复吸嘴背景Brightness模式校准适用的灰度方法与HSV的Value亮度值不匹配,导致视觉通道失效的bug。与 【常见问题 】中底部相机的这个问题有关。
#1673:修复ReferencePushPullFeeder,将自动设置Auto setup的图像搜索范围限制为相机分辨率的一半(尺寸较小),避免编带太宽或相机视图太窄,识别不到编带孔。
#1672:修复默认的底部视觉通道。当前管道使用 2 像素的线宽重绘轮廓,会人为地膨胀检测到的特征形状,导致元件尺寸和位置的(小)不准确。改用 1 个像素的线条粗细来重新绘制轮廓,加强识别精度。
#1671:修复视觉合成Vision Compositing。修复了视觉合成测量到的元件尺寸不正确,因应除0返回NaN ,导致其他代码出现奇怪行为的一些情况。
#1670:进一步修复#1669。
#1669:修复视觉合成Vision Compositing。修复视觉合成的预览图像是垂直镜像的问题。
#1668:删除通过GUI界面创建新元件时, ID单元格中出现的前缀和尾随的空格。
#1667:修复视觉通道中的 minAreaRect 视觉阶段搜索角度的问题。某些元件例如SOT23近似为三角形,当使用的底部相机分辨率很低时,会将三角形打包成矩形,出现三种可能极性的方向。
#1665:添加基于 AbstractBroadcastingCamera 的 GStreamerCamera。补充:相机列表里选择GStreamerCamera后,无法添加,有可能以后需要为其添加GUI的支持,只是目前还没有而已。
#1663:跟M115有关,在I&S里有该项Issue。当开始连接真实贴片机时,如果M115无法检测到固件,则可以选择使用通用 G 代码来实现。【已Dismiss】
#1662:为ReferenceStripFeeder的视觉扫描功能注入新的功能。简单点的描述就是:以抽检的方式去对定位孔进行扫描。
①当元件实际间距小于编带孔固定的4mm间距时。对于0402编带一个定位孔包含了两个元件,无需二次扫描该孔,即可拾取第二个元件。节省节拍时间。而且不会影响元件回收,从哪里吸取的元件还是会放回哪里。【这个是Extrapolation Distance=0时】
②注入新参数 Extrapolation Distance【外推距离】作为一个固定的约束值。可以简单的视为抽检的距离。例如0402编带,Extrapolation Distance设定为8,则第1个元件的第1个孔被扫描,第2、3、4、5、6元件所对应的第2和3个孔将不被扫描,然后从超过8mm后的首个定位孔再次扫描,即扫描第4个孔,后续的扫描以此方式类推。
③比例限制。我大概的理解的意思是,如果元件实际间距占用了多个编带孔时,如果当前孔与其前一个孔的距离m大于编带定义时的参考孔与居后孔的距离n的70%,则会对该孔进行视觉扫描。【卓实没想明白,这一条是怎么个意思】【留个小遗憾,或许实际使用过程中会发现】
#1660:加强ReferenceStripFeeder的视觉扫描功能,避免拾取位置出错。
①修复代码,使 ReferenceStripFeeder 以更好的精度执行视觉扫描。
②目前除了重新启动 OpenPnP 或将计数重置为零之外,没有办法重置编带孔的视觉数据。引入Reset Vision按钮,重置视觉,以重新扫描第一个孔-参考孔的方式,来刷新当前孔的定位数据。我是这么理解的:比如前N个孔识别正常,第N+1个孔因被料带膜遮挡导致识别错误或者无法被识别,可以在露出N+1个孔后,通过Reset Vision重新建立N+1个孔的实际刷新位置,避免对N+1的识别错误,产生错误的基准,对N之后元件孔识别错误的影响。也就是所有的孔的位置都做基于编带的第一个孔-参考孔。
#1659:向JobProcessor任务后台中注入新的功能:Nozzle tip loading strategy:如何开始贴任务贴片列表里的第一个元件。
之前JobProcessor是以当前所加载的吸嘴作为开始条件,当前吸嘴能贴啥就去贴啥,知道该吸嘴元件贴完为止。这将使任务重选定的放置顺序无效。
Nozzle tip loading strategy,有三个选项:
Minimize:不更换喷嘴尖端(当前默认),就是之前的逻辑,当前吸嘴是啥就贴啥。
StartAsPlanned:更换成贴片列表里第一个元件所需吸嘴,直至该吸嘴所能贴的元件都贴完后,再去更换吸嘴。
FullyAsPlanned:严格按照贴片列表里的顺序去贴片,贴片列表可能是无须无分组的,换嘴也跟着无序。