資源簡介
文檔說明: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? 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? {
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? 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個文件信息
- 上一篇:SpotlightonUnix_70.exe
- 下一篇:STM32_Jli
nk驅動
評論
共有 條評論