• 大小: 20.39MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: 其他
  • 标签: OpenCv  Gerber  QT  VS  

资源简介

文档说明:https://blog.csdn.net/gs1069405343/article/details/83585726

资源截图

代码片段和文件信息

#include “gerber.h“

// 25.4 = 1000 * 0.0254这里线宽放大了70倍,搞不懂
#define RATIO (PcbUnit ? 1 : (25.4f * 70))

// 数据清除
void Gerber::DataClear()
{
minX = 999999;
minY = 999999;
maxX = 0;
maxY = 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();
WeldingDots.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] = ‘\0‘;
}
}

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(“D“ + to_string(std::stoi(idbuf)));

// 直径识别
he = str.find(““);
ne = str.find(“X“);
String len1 = “0.0“;
String len2 = “0.0“;
if (ne > 0) {
len1 = str.substr(he + 1 ne - (he + 1));
len2 = str.substr(ne + 1);
}
else {
len1 = str.substr(he + 1);
}
HoleDiameterD

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-31 16:36  pcb\
     目录           0  2018-10-23 11:20  pcb\.vs\
     目录           0  2018-10-23 11:20  pcb\.vs\pcb\
     目录           0  2018-10-23 11:20  pcb\.vs\pcb\v14\
     文件       51712  2018-10-31 16:36  pcb\.vs\pcb\v14\.suo
     目录           0  2018-10-31 16:38  pcb\Debug\
     目录           0  2018-10-31 16:32  pcb\pcb\
     文件     2428762  2018-10-31 16:34  pcb\pcb\1.jpg
     目录           0  2018-10-31 16:13  pcb\pcb\GeneratedFiles\
     目录           0  2018-10-31 16:13  pcb\pcb\GeneratedFiles\Debug\
     文件        3504  2018-10-31 16:13  pcb\pcb\GeneratedFiles\Debug\moc_pcb.cpp
     文件        1373  2018-10-31 16:13  pcb\pcb\GeneratedFiles\qrc_pcb.cpp
     文件        5554  2018-10-31 16:13  pcb\pcb\GeneratedFiles\ui_pcb.h
     目录           0  2018-10-31 16:38  pcb\pcb\Resources\
     文件       20484  2018-10-31 15:54  pcb\pcb\gerber.cpp
     文件        3346  2018-10-31 14:20  pcb\pcb\gerber.h
     文件         165  2018-10-18 14:18  pcb\pcb\main.cpp
     文件        4141  2018-10-31 16:32  pcb\pcb\pcb.cpp
     文件        1195  2018-10-31 16:13  pcb\pcb\pcb.h
     文件      370070  2017-12-11 13:43  pcb\pcb\pcb.ico
     文件          63  2018-10-18 14:18  pcb\pcb\pcb.qrc
     文件          42  2018-10-18 14:18  pcb\pcb\pcb.rc
     文件        3696  2018-10-31 16:11  pcb\pcb\pcb.ui
     文件        9210  2018-10-30 11:30  pcb\pcb\pcb.vcxproj
     文件        2242  2018-10-30 11:30  pcb\pcb\pcb.vcxproj.filters
     文件         637  2018-10-31 16:32  pcb\pcb\pcb.vcxproj.user
     目录           0  2018-10-23 11:20  pcb\pcb\x64\
     目录           0  2018-10-31 16:32  pcb\pcb\x64\Debug\
     文件       13578  2018-09-29 09:56  pcb\pcb\x64\Debug\1.jpg
     文件       22550  2018-10-18 19:42  pcb\pcb\x64\Debug\2.jpg
     文件     1064711  2018-10-31 16:13  pcb\pcb\x64\Debug\gerber.obj
............此处省略68个文件信息

评论

共有 条评论