QT+OpenCV+VS Gerber光绘文件识别
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-09 17:57 光绘文件
文件 1436 2018-07-12 09:08 光绘文件215384.2nd
文件 475838 2018-07-12 09:08 光绘文件215384.bl
文件 859816 2018-07-12 09:08 光绘文件215384.bo
文件 396094 2018-07-12 09:08 光绘文件215384.bs
文件 11539 2018-07-12 09:08 光绘文件215384.drl
文件 6180 2018-07-12 09:08 光绘文件215384.pb
文件 18499 2018-07-12 09:08 光绘文件215384.pt
文件 45065 2018-07-12 09:08 光绘文件215384.rout
文件 586183 2018-07-12 09:08 光绘文件215384.tl
文件 398781 2018-07-12 09:08 光绘文件215384.to
文件 162460 2018-07-12 09:08 光绘文件215384.ts
目录 0 2018-11-09 17:57 光绘文件识别图像
文件 4307981 2018-10-31 17:09 光绘文件识别图像215384_2nd.jpg
文件 10472379 2018-10-31 17:11 光绘文件识别图像215384_bl.jpg
文件 12393377 2018-10-31 17:12 光绘文件识别图像215384_bo.jpg
文件 8113791 2018-10-31 17:48 光绘文件识别图像215384_bs.jpg
文件 4694265 2018-10-31 17:30 光绘文件识别图像215384_drl.jpg
文件 3585395 2018-10-31 17:32 光绘文件识别图像215384_pb.jpg
文件 4967900 2018-10-31 17:33 光绘文件识别图像215384_pt.jpg
文件 5603336 2018-10-31 17:34 光绘文件识别图像215384_rout.jpg
文件 11514750 2018-10-31 17:35 光绘文件识别图像215384_tl.jpg
文件 13155835 2018-10-31 17:36 光绘文件识别图像215384_to.jpg
文件 9660462 2018-10-31 17:37 光绘文件识别图像215384_ts.jpg
目录 0 2018-11-09 17:57 光绘文件识别源码
目录 0 2018-11-09 17:57 光绘文件识别源码.vs
目录 0 2018-11-09 17:57 光绘文件识别源码.vspcb
目录 0 2018-11-09 17:57 光绘文件识别源码.vspcbv14
文件 45568 2018-11-09 17:55 光绘文件识别源码.vspcbv14.suo
目录 0 2018-11-09 17:57 光绘文件识别源码pcb
文件 335417 2018-11-06 14:41 光绘文件识别源码pcb1.jpg
............此处省略118个文件信息
#include “gerber.h“
// 25.4 = 1000 * 0.0254
#define RATIO (PcbUnit ? 1 : 25.4f)
/**********************************************************************
【C++ 光绘文件解析驱动】
***********************************************************************/
// 数据清除
void Gerber::DataClear()
{
ExtMinX = 999999;
ExtMinY = 999999;
ExtMaxX = 0;
ExtMaxY = 0;
PolygonDot.clear();
LastCoor.x = 0;
LastCoor.y = 0;
DotFill = false; // 图案填充标志位
DotLine = false; // 画点还是画线标志
CircleDir = false; // 圆周运动方向,false:顺时针方向,true:逆时针方向
CircleOffOn = false; // 圆周运动方向开关
PcbUnit = false; // 计量单位,false:英寸,True:毫米
PcbProjectName = ““; // 图像名称
FillInvisible = false; // 填充挖除标志,false:填充,true:挖除
HoleDiameterId.clear();
HoleDiameterForm.clear();
HoleDiameterDia1.clear();
HoleDiameterDia2.clear();
DotDataNew.DotForms.clear();
DotDataNew.DotHoleLengths.clear();
DotDataNew.DotPlateLengths.clear();
DotDataNew.WeldingDots_user.clear();
NowHoleId = -1; // 当前孔径ID号
}
// 在字符串中搜索自定字符
int Gerber::StringCharNum(String str char ch)
{
const char *buf = str.data();
int num = 0;
int i = 0;
while (i < str.length()) {
if (buf[i++] == ch) num++;
}
return num;
}
vector Gerber::CoordinateStr(String StrData)
{
char temp[10][20] = { ““““ };
int j = 0 num = 0;
vector ret;
// 字符串为空
if (StrData.empty()) return ret;
const char *buf = StrData.data();
for (int i = 0; i < StrData.length(); i++)
{
if (buf[i] == ‘ ‘) break;
if ((buf[i] == ‘X‘) || (buf[i] == ‘Y‘) ||
(buf[i] == ‘D‘) || (buf[i] == ‘G‘) ||
(buf[i] == ‘J‘) || (buf[i] == ‘I‘) ||
(buf[i] == ‘M‘)) {
j = 0; num++;
if (num > 19)
break;
}
if (num > 0 && j < 19) {
temp[num - 1][j++] = buf[i];
temp[num - 1][j] = ‘ ‘;
}
}
vector OutStr(num);
for (int i = 0; i < num; i++) {
OutStr[i] = temp[i];
}
return OutStr;
}
// 指令解析尺寸识别 IN:英寸[fasle],MM:毫米[true]
void Gerber::Order_MO(String str)
{
if (str.find(“%MOIN“) == 0)
PcbUnit = false;
else PcbUnit = true;
}
// 指令解析图像名称 %IN “JYSH-PWRL_V10D_20180706“*%
void Gerber::Order_IN(String str)
{
PcbProjectName = ““;
}
// 指令解析明确极性使用LPC,暗极性使用LPD。【LPD是填充,LPC是挖除,OpenCv 下多边形填充很卡,填充重叠会死程序】
void Gerber::Order_LP(String str)
{
if (str.find(“LPC“) >= 0)
FillInvisible = false;
else FillInvisible = true;
}
// 指令解析孔径描述/光圈描述
void Gerber::Order_AD(String str)
{
int he = str.find(“AD“);
int ne = 0;
if ((ne = str.find(“C“)) > 0) HoleDiameterForm.push_back(“C“); // 圆形
else if ((ne = str.find(“R“)) > 0) HoleDiameterForm.push_back(“R“); // 长方
else if ((ne = str.find(“O“)) > 0) HoleDiameterForm.push_back(“O“); // 椭圆形
else if ((ne = str.find(“P“)) > 0) HoleDiameterForm.push_back(“P“); // 正多边形
else return; //特殊光圈
// ID识别
String idbuf = str.substr(he + 3 ne - (he + 3));
HoleDiameterId.push_back(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-09 17:57 光绘文件
文件 1436 2018-07-12 09:08 光绘文件215384.2nd
文件 475838 2018-07-12 09:08 光绘文件215384.bl
文件 859816 2018-07-12 09:08 光绘文件215384.bo
文件 396094 2018-07-12 09:08 光绘文件215384.bs
文件 11539 2018-07-12 09:08 光绘文件215384.drl
文件 6180 2018-07-12 09:08 光绘文件215384.pb
文件 18499 2018-07-12 09:08 光绘文件215384.pt
文件 45065 2018-07-12 09:08 光绘文件215384.rout
文件 586183 2018-07-12 09:08 光绘文件215384.tl
文件 398781 2018-07-12 09:08 光绘文件215384.to
文件 162460 2018-07-12 09:08 光绘文件215384.ts
目录 0 2018-11-09 17:57 光绘文件识别图像
文件 4307981 2018-10-31 17:09 光绘文件识别图像215384_2nd.jpg
文件 10472379 2018-10-31 17:11 光绘文件识别图像215384_bl.jpg
文件 12393377 2018-10-31 17:12 光绘文件识别图像215384_bo.jpg
文件 8113791 2018-10-31 17:48 光绘文件识别图像215384_bs.jpg
文件 4694265 2018-10-31 17:30 光绘文件识别图像215384_drl.jpg
文件 3585395 2018-10-31 17:32 光绘文件识别图像215384_pb.jpg
文件 4967900 2018-10-31 17:33 光绘文件识别图像215384_pt.jpg
文件 5603336 2018-10-31 17:34 光绘文件识别图像215384_rout.jpg
文件 11514750 2018-10-31 17:35 光绘文件识别图像215384_tl.jpg
文件 13155835 2018-10-31 17:36 光绘文件识别图像215384_to.jpg
文件 9660462 2018-10-31 17:37 光绘文件识别图像215384_ts.jpg
目录 0 2018-11-09 17:57 光绘文件识别源码
目录 0 2018-11-09 17:57 光绘文件识别源码.vs
目录 0 2018-11-09 17:57 光绘文件识别源码.vspcb
目录 0 2018-11-09 17:57 光绘文件识别源码.vspcbv14
文件 45568 2018-11-09 17:55 光绘文件识别源码.vspcbv14.suo
目录 0 2018-11-09 17:57 光绘文件识别源码pcb
文件 335417 2018-11-06 14:41 光绘文件识别源码pcb1.jpg
............此处省略118个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)