From 0154cc9dd74277250928fb24e3313f235323483b Mon Sep 17 00:00:00 2001 From: Jingyan Ling <jingyanling2018@u.northwestern.edu> Date: Tue, 6 Aug 2019 13:43:30 -0700 Subject: [PATCH] parse wiring info --- README.md | 13 +++- .../__pycache__/dsnwritier.cpython-36.pyc | Bin 3186 -> 3383 bytes .../__pycache__/sesreader.cpython-36.pyc | Bin 0 -> 705 bytes dsn_python/dsnwritier.py | 3 + dsn_python/sesreader.py | 23 ++++++ .../Untitled-checkpoint.ipynb | 67 ++++++++++++++++++ .../__pycache__/paperbot_dsn.cpython-36.pyc | Bin 0 -> 3352 bytes paperbot_ee_autoroute/auto_route_dsn.py | 5 +- paperbot_ee_autoroute/fab_drawing.py | 26 +++++++ paperbot_ee_autoroute/paperbot_dsn.py | 21 +++--- paperbot_ee_autoroute/paperbot_ee.dsn | 4 +- paperbot_ee_autoroute/paperbot_ee.rules | 4 +- paperbot_ee_autoroute/paperbot_ee.ses | 14 +++- .../pcb_dxf_importer.cpython-36.pyc | Bin 0 -> 1763 bytes test_history/kicad_python.py | 2 +- .../pcb_dxf_importer.py | 0 16 files changed, 166 insertions(+), 16 deletions(-) create mode 100644 dsn_python/__pycache__/sesreader.cpython-36.pyc create mode 100644 dsn_python/sesreader.py create mode 100644 paperbot_ee_autoroute/.ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc create mode 100644 paperbot_ee_autoroute/fab_drawing.py create mode 100644 test_history/__pycache__/pcb_dxf_importer.cpython-36.pyc rename pcb_dxf_importer.py => test_history/pcb_dxf_importer.py (100%) diff --git a/README.md b/README.md index 3435e6c..6a716d8 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,24 @@ ## ENGINEERING JOURNAL ### Jingyan Ling -### 08/04/2019 +### 08/06/2019 + +- Successfully parse the wiring information from `ses` file to array + - A little "hacky" way, not using any parsing package + - Stands for `ses` file only +- +### 08/05/2019 - Working on parsing routed (wiring section) text information. - Ref: [pyparsing](https://scipy-cookbook.readthedocs.io/items/Reading_Custom_Text_Files_with_Pyparsing.html) - Parsing generated `dsn` file back to `DSN` class - Fail - Parsing generated `kicad_pcb` file back to `pykicad` package - `pcb` class + - Success +- Working on: + - debug dsn library so it can read file. + - `pykicad` uses `pyparsing` internally + - Rebuild `ses` file schema. Not working well ### 08/01/2019 diff --git a/dsn_python/__pycache__/dsnwritier.cpython-36.pyc b/dsn_python/__pycache__/dsnwritier.cpython-36.pyc index 1feefcb9130856e37c619d19224dc7a7e0542c83..1890aaefc90ef62e7e8c6e165b1935bcab1c8419 100644 GIT binary patch delta 596 zcma)&&ubGw6vt;Kv)Sy%(Au<V6*Lu^ri-Rkqc&Agi;9ZUg6SzB>#{qsTejWuW<@9! z4;6YU2(Q=v5t4&{g3_Z1mi+_#1H5?Y!Fg5$Zw|cAeBZnu1K%GLAJ01NO2yrO^XU1{ z56-IKD+uD!5Ts%1t3-tv#9@#O4n)j(4{bSF%B{`xwSpYy<oog@V+<OEX*`t8fAV8_ zi(kNwRUgjnr*WnrNZ=f`Uc{Hy3tk(1wk%##)o3beykk4OH@eFt>y34pH;vzlyS$0M z-8MwKF>-|lT?0=*lk^Qdv}eXnB<1sj4q*Z9(wC`Ol5+%`aG7wG&?a0XT*pmk{2AOP zeaFC)Jty9XGe3!S1|#&`B2=k11f!(?cdh+rEgs7=g9B%VzYT?%r$e`8;+_dzGuUQp zEaTfe;*r=BYhuTkVN572ZCS6feyihgcwpMRg0VgTt>B@_atSJkJdqc|M8jkA0<`M{ z<J92vAzk<TaiWe)I-!66FSaW8^~UVql2^k|?s=Z$cXzq^gvQEY5@@}yveh(#WlXHP jOD^0sp#lA}mZc)J@N2nyIxj4CSD<JrP$#sobL!?VNkN7X delta 435 zcmdlk^+|%$n3tC;;ebPI_eRbPCPtUZMNB%I*D+-<GTxdj&Z58(#afVGo>~+&*`8$r zw;}@rLy-!IP@Q~>MID8|fKzg^DytHs(qs=-d4VW)pUjffqQsmcS&(wA$>ppGj9i;< zu(C38wKK3VL<t8oXsS&9%+}7RHo2PJ7)Y*XR~6C+DdqwanoLD%AhyZmXY3lH5GIIk z3L?xvg!yD;j!X4AAf_&eU<VO;Ai@Ad7=j2R5Mc}=EI@=Mh_C_?)*!+LMA!leO_nIm z%)HE!_?*n*k|H6Hur`Pg2FdXkiGbMHEdq)XZ`0-loQ{l4nj(`cxaAn5CQs+~XY`z0 s!z#}OvdjU9iwh<z@f0%^X-}TX6D%0T>=+zU#0Iil9z<wQ{>x(p043*D!2kdN diff --git a/dsn_python/__pycache__/sesreader.cpython-36.pyc b/dsn_python/__pycache__/sesreader.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..71d45142e76f54b36b1ce3a7827144e0f106ac08 GIT binary patch literal 705 zcmYjN&5qMB5FW?*Yq#Zq7SKu@d!QF`K;nSV3W*-zvH~qqQKVHAV$&uhPHMZNMb0Ta z1#iGZ@FG5N;j}!$o)`y^)}wDc<L~p#*iYv3>D!;LuYPy{zu?xw99|&Q3>^bTzCsGj zyM!ez2p+jLM+AtM2=yDC27}7MtH=PAH$YD|(0hmXnrh#W0c{0WuX@TnLkvBGPoZ2K zo@#3T^B(ex-e(kff8<w&8h_*Uf$^%q1Op-P26n48>=tXl>fxa??$)-CFpCfGuv*0M zE(;z2M!^{jj(^tU1g>Tk;#?CQnTb;kq@Rwl(~<tfOw9>)o0%B9&0M$Lw>6j$vv|zD zxD0<Gys$)CzsvRZhAgk~@o??_Wf@z)?YOYM<T<lb)zzi0OTm>5WG*(`(i+(??@+{S zF!Gj`LNDib^0BOW=4x81xJqX(RJ_RQQfW&{OR6;bcV;Ip7@0J3nh)}rMy=rP7*$$j zO3N|OxzuUUY1fb<@g3wTj(T&MY}<w>RVg;dTqLWu*f(5gm8gBwaGBvyT#Bsb&0Z$5 zE!vFNywI{N@;YHkWZhA3Tan<X?y+1x?vCyaf@Pme$tm_wkI(_ROMJwPoFZZ}Me|2I j#N1g-?x4y0sJ&SJ-NzAcxqHaj_<7T^ea+9u+OG5;8kx9@ literal 0 HcmV?d00001 diff --git a/dsn_python/dsnwritier.py b/dsn_python/dsnwritier.py index 5823467..08c1a8e 100644 --- a/dsn_python/dsnwritier.py +++ b/dsn_python/dsnwritier.py @@ -213,3 +213,6 @@ class Dsn(AST): with open(path, 'w', encoding='utf-8') as f: f.write(self.to_string()) + @classmethod + def from_file(cls, path): + return cls.parse(open(path, encoding='utf-8').read()) \ No newline at end of file diff --git a/dsn_python/sesreader.py b/dsn_python/sesreader.py new file mode 100644 index 0000000..8f6d581 --- /dev/null +++ b/dsn_python/sesreader.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 + +def find_wire(file_path): + ses=open(file_path,'r').read().splitlines() + pathsec_list=[] + for i in range(len(ses)): + if 'path' in ses[i]: + for j in range(i,len(ses)): + if ')' in ses[j]: + pathsec=[i,j] + pathsec_list.append(pathsec) + break + path_list=[] + for sec_bry in pathsec_list: + onepath=[] + for j in range(sec_bry[0]+1,sec_bry[1]): + pts_str=ses[j].split() + ptstart=int(pts_str[0]) + ptend=int(pts_str[1]) + pts=[ptstart,ptend] + onepath.append(pts) + path_list.append(onepath) + return path_list \ No newline at end of file diff --git a/paperbot_ee_autoroute/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/paperbot_ee_autoroute/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..84f772e --- /dev/null +++ b/paperbot_ee_autoroute/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,67 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "ses=open('paperbot_ee.ses','r').read().splitlines()" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "25\n", + "31\n", + "36\n", + "43\n" + ] + } + ], + "source": [ + "pathsec_list=[]\n", + "for i in range(len(ses)):\n", + " if 'path' in ses[i]:\n", + " for j in range(i,len(ses)):\n", + " if ')' in ses[j]:\n", + " pathsec=[i,j]\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc b/paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24e94e2b1393100979a854eb60a572a64f23f8b5 GIT binary patch literal 3352 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 literal 0 HcmV?d00001 diff --git a/paperbot_ee_autoroute/auto_route_dsn.py b/paperbot_ee_autoroute/auto_route_dsn.py index 719625f..3669656 100644 --- a/paperbot_ee_autoroute/auto_route_dsn.py +++ b/paperbot_ee_autoroute/auto_route_dsn.py @@ -5,4 +5,7 @@ import subprocess unrouted_dsn_file='paperbot_ee.dsn' -subprocess.call(['java','-jar','freeRouting.jar','-de',unrouted_dsn_file,'-white','-s']) \ No newline at end of file +subprocess.call(['java','-jar','freeRouting.jar','-de',unrouted_dsn_file,'-white','-s']) + + +import re \ No newline at end of file diff --git a/paperbot_ee_autoroute/fab_drawing.py b/paperbot_ee_autoroute/fab_drawing.py new file mode 100644 index 0000000..37d20bd --- /dev/null +++ b/paperbot_ee_autoroute/fab_drawing.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +""" +This module call script 'paperbot_dsn.py' to generate a DSN file +for auto_router. An interface will pop up for the user to confirm wiring design, +if a user does not want to change anything, one can just simply close the window. +Routing information will be stored automatically in the same directory. +The routing information will be read and draw the corresponding line on the dxf file + +path information needed: + +- dsnwritier(sesreader) dir +- modules library dir +- mechanical design drawing file +- dsn/ses file name and (optional:dir) +""" + +dsnwritier_dir='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_python' +module_libpath='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/libraries/kicad-ESP8266/ESP8266.pretty/' +dwg_path='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_line_test.dxf' +dsn_name='paperbot_ee' + +import sys +sys.path.insert(1,dsnwritier_dir) + +import paperbot_dsn +paperbot_dsn.brd_design(dwg_path,0,module_libpath,dsn_name) diff --git a/paperbot_ee_autoroute/paperbot_dsn.py b/paperbot_ee_autoroute/paperbot_dsn.py index befdd0c..7f5d8fa 100644 --- a/paperbot_ee_autoroute/paperbot_dsn.py +++ b/paperbot_ee_autoroute/paperbot_dsn.py @@ -1,24 +1,27 @@ #!/usr/bin/env python3 -import sys -sys.path.insert(1,'/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_python') +# import sys +# sys.path.insert(1,'/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_python') import dsnwritier class brd_design(): - def __init__(self,dwgfile,boundary_inx,libpath): + def __init__(self,dwgfile,boundary_inx,libpath,savename): self.dwgfile=dwgfile self.boundary_inx=boundary_inx self.libpath=libpath + self.savename=savename + self.module_list=[ ['mpu-9250.kicad_mod','J1',[103000,88000],270], ['ESP12F-Devkit-V3.kicad_mod','U1',[103000,48000],90], ] self.netlist=[ ['3v3',['U1-3','J1-1']], - ['VIN',['U1-1']] + ['VIN',['U1-1']], + ['NET1',['U1-2','J1-5']] ] self.netclass_list=[ - ['default',['3v3','VIN'],'',1000,200] + ['default',['3v3','VIN','NET1'],'',1000,200] ] self.brd_general() @@ -108,12 +111,12 @@ class brd_design(): self.brd.net=self.net self.brd.netclass=self.netclass - self.brd.to_file('paperbot_ee.dsn') + self.brd.to_file(self.savename) -libpath='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/libraries/kicad-ESP8266/ESP8266.pretty/' -dwgfile='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_line_test.dxf' -a= brd_design(dwgfile,0,libpath) +# libpath='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/libraries/kicad-ESP8266/ESP8266.pretty/' +# dwgfile='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_line_test.dxf' +# a= brd_design(dwgfile,0,libpath,'paperbot_ee') diff --git a/paperbot_ee_autoroute/paperbot_ee.dsn b/paperbot_ee_autoroute/paperbot_ee.dsn index 71baeee..114568b 100644 --- a/paperbot_ee_autoroute/paperbot_ee.dsn +++ b/paperbot_ee_autoroute/paperbot_ee.dsn @@ -394,7 +394,9 @@ (pins U1-3 J1-1)) (net VIN (pins U1-1)) -(class default 3v3 VIN +(net NET1 + (pins U1-2 J1-5)) +(class default 3v3 VIN NET1 (circuit (use_via "")) (rule diff --git a/paperbot_ee_autoroute/paperbot_ee.rules b/paperbot_ee_autoroute/paperbot_ee.rules index d015151..8c5bd42 100644 --- a/paperbot_ee_autoroute/paperbot_ee.rules +++ b/paperbot_ee_autoroute/paperbot_ee.rules @@ -11,7 +11,7 @@ (via_costs 50) (plane_via_costs 5) (start_ripup_costs 100) - (start_pass_no 4) + (start_pass_no 20) (layer_rule F.Cu (active on) (preferred_direction vertical) @@ -48,7 +48,7 @@ default ) (class default - 3v3 VIN + 3v3 VIN NET1 (clearance_class default) (via_rule default) (rule diff --git a/paperbot_ee_autoroute/paperbot_ee.ses b/paperbot_ee_autoroute/paperbot_ee.ses index 515be5e..a371161 100644 --- a/paperbot_ee_autoroute/paperbot_ee.ses +++ b/paperbot_ee_autoroute/paperbot_ee.ses @@ -23,7 +23,7 @@ (network_out (net 3v3 (wire - (path B.Cu 10000 + (path F.Mask 10000 890300 -600650 918654 -629004 1049358 -629004 @@ -32,6 +32,18 @@ ) ) ) + (net NET1 + (wire + (path B.Cu 10000 + 864900 -600650 + 916308 -652058 + 1072390 -652058 + 1086143 -665811 + 1086143 -760357 + 1030000 -816500 + ) + ) + ) ) ) ) \ No newline at end of file diff --git a/test_history/__pycache__/pcb_dxf_importer.cpython-36.pyc b/test_history/__pycache__/pcb_dxf_importer.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1ddecbb7f7c41efebe2fb7e7d43c63695171e1e0 GIT binary patch literal 1763 zcmZvcOK%)S5P<tJFOS!TEFma?L&S+i$cqwT5JJd;fQ4i&mN;095;f!L_IfAta`&w4 zwPsIiuKbVurM_~?U*JSlPrTklnN?NS_N%JDuCAv$JMpW7{TF}vg#1f3J`VN)h<O4^ zl7vVqSwRyDEiYKf6Hfa+FYynF^rU}7q`zWGAlV;e6kPAd&7wW8tH)3G_V>PvU&B6R zGNP6@*=dG<ZojpwedtjHT#$sxfn<{3(1iC}C!P#scta9jMsf?<K*n+#+E7w(w_~GO z+0?pKdXm9e+=nd#`5DCg3aTYJ?dXbjM6izJEaxi%w%5Tw;ddN#(0P))<oc&J%%gm( z^W5whW^b<uoS1+!IvEYDude0QSrTcL%ClLaAkfQc5|_19g=x}ESzemP`bD}>+WMC> z*`8~R#`5Fr)NY;Wx)iw3`lofOrH!OcF9pCE`PMV4fW5(io1z0)r$baRs8>YqK=a@8 z@p)aUaXzc2i?kX)tFw8js@9CnyeyR#vkGujqEO{rk9D2ZLKP}&^(;$^ajQ%#&S$2r z^<oTO1v<NBxYsOfBw&MCE5rbNnO#tX4d{RdG~f~4rPue?vu|f+6lcMQEs7(59}M6} zkRP;klOwZnF{_lwiqsezH+8Y-?Ge@J*B!K17=h(!QG5c1@jww4(d)rF3K&`kfUFRj z3*a9xresM$7zn>Qz;JR%<rRHKUVOduI-0Z2%Xto$FWKMhAz4ufmc8lqH+wH0osg^V z+n^0GmD~<rF8vmhg?9c!SmiXy`=s%fLC0aA0C&82enL79Da0p<cl6ujm)DpPqk+a$ zwf@Ci>4go_rcsrIgt|JjzG+k4S`Ho7*J(9{yed@HXHsyekAU7?dW=FxE!lFb3b@@Q zgq6<Na-h+)R9QN+w0MWE{t%-06vW__5$fTO4e0~=2=r%kmtB9frhRv9Yv>3Z58|LF zVBA8#`ur{6!zFjXIle!K<pCi5qQlF0y!2Wx_d5?(1R&vxFMW3rzMJ_30AhV%lO#Sm zIsX0VPsBKi96^n7>yJSt@l>^<so@Ejp4HZ&K8Ea?*3|~CpvM(8tq~4V)Ib8FrIAAt z;($>=ta+E!Js2N>7=+fd8qy()>F{k%cPYK*gfD}GI8I-Ifpk2qO;D3o<Xb3O0&VPr znv{EQ`uJ`2@m(2!+5(qv+^yLN{lMXjc7eV3_2_Nz^$ke>dg%SlH@vPsY%&=|`1-4~ zR6^KT2q<dv0_}ki7xT2}NAw4<l^&u(2F|f_v4INfl*X5<@xbWcU<He4yd8PbZZvTH zqtJ#z$T|~3<HNRLvv>(rO7>UhSMw4I5~~_F`+eKn=!ZVYA29(<1j>WzFrX3pA0uRp A-T(jq literal 0 HcmV?d00001 diff --git a/test_history/kicad_python.py b/test_history/kicad_python.py index 5b08dfe..56927b6 100644 --- a/test_history/kicad_python.py +++ b/test_history/kicad_python.py @@ -115,7 +115,7 @@ class pcb_editor(): -lib_path='libraries/kicad-ESP8266' +lib_path='/home/jingyan/Documents/summer_intern_lemur/roco_electrical/libraries/kicad-ESP8266' # net_generator=schematic(lib_path) pcb_generator=pcb_editor(lib_path) diff --git a/pcb_dxf_importer.py b/test_history/pcb_dxf_importer.py similarity index 100% rename from pcb_dxf_importer.py rename to test_history/pcb_dxf_importer.py -- GitLab