diff --git a/GenFixture.py b/GenFixture.py index 670580c..69da385 100755 --- a/GenFixture.py +++ b/GenFixture.py @@ -83,7 +83,7 @@ def __str__(self): self.min_y) def SetOptional(self, rev=None, washer_th=None, nut_f2f=None, nut_c2c=None, nut_th=None, - pivot_d=None, border=None): + pivot_d=None, border=None, logosize=(50,50)): self.rev = rev self.washer_th = washer_th self.nut_f2f = nut_f2f @@ -91,6 +91,8 @@ def SetOptional(self, rev=None, washer_th=None, nut_f2f=None, nut_c2c=None, nut_ self.nut_th = nut_th self.pivot_d = pivot_d self.border = border + self.logosize = logosize + def SetParams(self, pcb_th, screw_len, screw_d): if pcb_th is not None: @@ -191,6 +193,8 @@ def Generate(self, path): args += " -D\'pcb_outline=\"%s\"\'" % (path + "/" + self.prj_name + "-outline.dxf") args += " -D\'screw_thr_len=%.02f\'" % self.screw_len args += " -D\'screw_d=%.02f\'" % self.screw_d + args += " -D\'logo_w=%s\'" % self.logosize[0] + args += " -D\'logo_h=%s\'" % self.logosize[1] # Set optional args if self.rev != None: @@ -335,6 +339,9 @@ def GetOriginDimensions(self): parser.add_argument ('--nut_th', help='hex nut thickness (mm)') parser.add_argument ('--pivot_d', help='Pivot diameter (mm)') parser.add_argument ('--border', help='Board (ledge) under pcb (mm)') + parser.add_argument ('--logo-w', help='Set logo width, mm', default=50) + parser.add_argument ('--logo-h', help='Set logo height, mm', default=50) + # Get args args = parser.parse_args () @@ -377,7 +384,8 @@ def GetOriginDimensions(self): nut_c2c=args.nut_c2c, nut_th=args.nut_th, pivot_d=args.pivot_d, - border=args.border) + border=args.border, + logosize=(args.logo_w, args.logo_h)) # Generate fixture fixture.Generate (out_dir) diff --git a/genfixture.sh b/genfixture.sh index de510b9..ef460ab 100755 --- a/genfixture.sh +++ b/genfixture.sh @@ -9,7 +9,7 @@ OUTPUT="fixture-v10" # PCB thickness PCB=0.8 -LAYER='B.Cu' +LAYER='F.Cu' REV='rev.10' # Nearest opposite side component to border @@ -24,6 +24,15 @@ NUT_TH=2.4 NUT_F2F=5.45 NUT_C2C=6.10 +# convert logo +rm logo.dxf +inkscape logo.svg -E logo.eps +pstoedit -dt -f "dxf:-polyaslines -mm" logo.eps logo.dxf +rm logo.eps + +LOGO_WIDTH=$(echo "scale = 4; $(inkscape logo.svg -W 2>/dev/null) / 90.0 * 25.4" | bc) +LOGO_HEIGHT=$(echo "scale = 4; $(inkscape logo.svg -H 2>/dev/null) / 90.0 * 25.4" | bc) + # Call python wrapper -python GenFixture.py --board $BOARD --layer $LAYER --rev $REV --mat_th $MAT --pcb_th $PCB --out $OUTPUT --screw_len $SCREW_LEN --screw_d $SCREW_D --washer_th $WASHER_TH --nut_th $NUT_TH --nut_f2f $NUT_F2F --nut_c2c $NUT_C2C --border $BORDER +python GenFixture.py --board $BOARD --layer $LAYER --rev $REV --mat_th $MAT --pcb_th $PCB --out $OUTPUT --screw_len $SCREW_LEN --screw_d $SCREW_D --washer_th $WASHER_TH --nut_th $NUT_TH --nut_f2f $NUT_F2F --nut_c2c $NUT_C2C --border $BORDER --logo-w $LOGO_WIDTH --logo-h $LOGO_HEIGHT diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..c9bab7b --- /dev/null +++ b/logo.svg @@ -0,0 +1,67 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/ohw_logo.svg b/ohw_logo.svg deleted file mode 100644 index 1cf95b8..0000000 --- a/ohw_logo.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/openfixture.scad b/openfixture.scad index a5d53ec..6b37789 100644 --- a/openfixture.scad +++ b/openfixture.scad @@ -31,7 +31,7 @@ tp_min_y = 13.7; // DXF outline of pcb pcb_outline = "./rfid_fob-outline.dxf"; -osh_logo = "./osh_logo.dxf"; +logo = "./logo.dxf"; // PCB revision rev = "rev.0"; @@ -41,6 +41,9 @@ pcb_x = 27.14; pcb_y = 45; pcb_support_border = 2; +logo_w = 50; +logo_h = 50; + // Work area of PCB // Must be >= PCB size // If you make this as big as any of the PCBs you work @@ -385,11 +388,10 @@ module head_base () } } -module osh_logo () { +module logo () { linear_extrude (height = mat_th) - scale ([0.15, 0.15, 1]) - translate ([-72, -66, 0]) - import (osh_logo); + translate ([-logo_w / 2, -logo_h / 2, 0]) + import (logo); } module head_top () @@ -414,7 +416,7 @@ module head_top () // Add osh logo translate ([head_x / 2, head_y - 30, 0]) - osh_logo (); + logo (); // Remove cable relief holes translate ([mat_th * 3 + screw_d, head_y - (5 * mat_th) - screw_r, 0]) diff --git a/osh_logo.dxf b/osh_logo.dxf deleted file mode 100644 index df39371..0000000 --- a/osh_logo.dxf +++ /dev/null @@ -1,1316 +0,0 @@ - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1014 - 9 -$HANDSEED - 5 -FFFF - 9 -$MEASUREMENT - 70 - 1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -330 -0 -100 -AcDbSymbolTable - 70 - 4 - 0 -VPORT - 5 -2E -330 -8 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*ACTIVE - 70 - 0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -210.0 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -341.0 - 41 -1.24 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 - 0 - 72 - 100 - 73 - 1 - 74 - 3 - 75 - 0 - 76 - 0 - 77 - 0 - 78 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -LTYPE - 5 -14 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BYBLOCK - 70 - 0 - 3 - - 72 - 65 - 73 - 0 - 40 -0.0 - 0 -LTYPE - 5 -15 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BYLAYER - 70 - 0 - 3 - - 72 - 65 - 73 - 0 - 40 -0.0 - 0 -LTYPE - 5 -16 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 - 0 - 3 -Solid line - 72 - 65 - 73 - 0 - 40 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -50 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 6 -CONTINUOUS - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -STYLE - 5 -11 -330 -3 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -STANDARD - 70 - 0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 - 0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -330 -0 -100 -AcDbSymbolTable - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -330 -0 -100 -AcDbSymbolTable - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -330 -0 -100 -AcDbSymbolTable - 70 - 2 - 0 -APPID - 5 -12 -330 -9 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -DIMSTYLE -105 -27 -330 -A -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -ISO-25 - 70 - 0 - 3 - - 4 - - 5 - - 6 - - 7 - - 40 -1.0 - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 -140 -2.5 -141 -2.5 -142 -0.0 -143 -0.03937007874016 -144 -1.0 -145 -0.0 -146 -1.0 -147 -0.625 - 71 - 0 - 72 - 0 - 73 - 0 - 74 - 0 - 75 - 0 - 76 - 0 - 77 - 1 - 78 - 8 -170 - 0 -171 - 3 -172 - 1 -173 - 0 -174 - 0 -175 - 0 -176 - 0 -177 - 0 -178 - 0 -270 - 2 -271 - 2 -272 - 2 -273 - 2 -274 - 3 -340 -11 -275 - 0 -280 - 0 -281 - 0 -282 - 0 -283 - 0 -284 - 8 -285 - 0 -286 - 0 -287 - 3 -288 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -BLOCK_RECORD - 5 -1F -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*MODEL_SPACE - 0 -BLOCK_RECORD - 5 -1B -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*PAPER_SPACE - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -330 -1F -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*MODEL_SPACE - 70 - 0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*MODEL_SPACE - 1 - - 0 -ENDBLK - 5 -21 -330 -1F -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -330 -1B -100 -AcDbEntity - 67 - 1 - 8 -0 -100 -AcDbBlockBegin - 2 -*PAPER_SPACE - 1 - - 0 -ENDBLK - 5 -1D -330 -1B -100 -AcDbEntity - 67 - 1 - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LWPOLYLINE - 5 -100 -100 -AcDbEntity - 8 -0 - 62 -7 -100 -AcDbPolyline - 90 -110 - 70 -0 - 10 -137.680888 - 20 -74.740980 - 30 -0.0 - 10 -121.365776 - 20 -77.774943 - 30 -0.0 - 10 -120.400104 - 20 -78.605635 - 30 -0.0 - 10 -115.399080 - 20 -90.273044 - 30 -0.0 - 10 -115.478440 - 20 -91.534466 - 30 -0.0 - 10 -124.984296 - 20 -105.389265 - 30 -0.0 - 10 -125.124981 - 20 -105.970477 - 30 -0.0 - 10 -124.880088 - 20 -106.516704 - 30 -0.0 - 10 -113.007240 - 20 -118.389553 - 30 -0.0 - 10 -112.461509 - 20 -118.635188 - 30 -0.0 - 10 -111.880792 - 20 -118.493762 - 30 -0.0 - 10 -97.782840 - 20 -108.819221 - 30 -0.0 - 10 -96.515464 - 20 -108.727914 - 30 -0.0 - 10 -85.205344 - 20 -113.357759 - 30 -0.0 - 10 -84.371672 - 20 -114.312510 - 30 -0.0 - 10 -81.230520 - 20 -131.187378 - 30 -0.0 - 10 -80.919632 - 20 -131.698373 - 30 -0.0 - 10 -80.360128 - 20 -131.910884 - 30 -0.0 - 10 -63.567641 - 20 -131.910884 - 30 -0.0 - 10 -63.009007 - 20 -131.698373 - 30 -0.0 - 10 -62.698242 - 20 -131.187378 - 30 -0.0 - 10 -59.558086 - 20 -114.312510 - 30 -0.0 - 10 -58.724416 - 20 -113.357759 - 30 -0.0 - 10 -47.413302 - 20 -108.727914 - 30 -0.0 - 10 -46.145926 - 20 -108.819221 - 30 -0.0 - 10 -32.048965 - 20 -118.493762 - 30 -0.0 - 10 -31.467008 - 20 -118.635188 - 30 -0.0 - 10 -30.921526 - 20 -118.389553 - 30 -0.0 - 10 -19.047685 - 20 -106.516704 - 30 -0.0 - 10 -18.802422 - 20 -105.970477 - 30 -0.0 - 10 -18.943476 - 20 -105.389265 - 30 -0.0 - 10 -28.450290 - 20 -91.534466 - 30 -0.0 - 10 -28.528698 - 20 -90.273044 - 30 -0.0 - 10 -23.526678 - 20 -78.605635 - 30 -0.0 - 10 -22.561011 - 20 -77.774943 - 30 -0.0 - 10 -6.246882 - 20 -74.740980 - 30 -0.0 - 10 -5.735515 - 20 -74.428851 - 30 -0.0 - 10 -5.523376 - 20 -73.869597 - 30 -0.0 - 10 -5.524368 - 20 -57.078096 - 30 -0.0 - 10 -5.736879 - 20 -56.517724 - 30 -0.0 - 10 -6.247874 - 20 -56.206712 - 30 -0.0 - 10 -22.162037 - 20 -53.245200 - 30 -0.0 - 10 -23.106863 - 20 -52.408552 - 30 -0.0 - 10 -28.075138 - 20 -39.997784 - 30 -0.0 - 10 -27.980854 - 20 -38.730408 - 30 -0.0 - 10 -18.941491 - 20 -25.557432 - 30 -0.0 - 10 -18.800809 - 20 -24.975723 - 30 -0.0 - 10 -19.045700 - 20 -24.429000 - 30 -0.0 - 10 -30.920533 - 20 -12.556152 - 30 -0.0 - 10 -31.466016 - 20 -12.312003 - 30 -0.0 - 10 -32.047972 - 20 -12.451944 - 30 -0.0 - 10 -44.987720 - 20 -21.333504 - 30 -0.0 - 10 -46.228300 - 20 -21.376144 - 30 -0.0 - 10 -51.934969 - 20 -18.329280 - 30 -0.0 - 10 -52.481320 - 20 -18.292427 - 30 -0.0 - 10 -52.872847 - 20 -18.674656 - 30 -0.0 - 10 -64.639502 - 20 -47.105784 - 30 -0.0 - 10 -64.654761 - 20 -47.698286 - 30 -0.0 - 10 -64.294124 - 20 -48.168712 - 30 -0.0 - 10 -62.865969 - 20 -49.043072 - 30 -0.0 - 10 -61.962826 - 20 -49.734824 - 30 -0.0 - 10 -58.450325 - 20 -52.646463 - 30 -0.0 - 10 -55.745907 - 20 -56.328504 - 30 -0.0 - 10 -54.007466 - 20 -60.624262 - 30 -0.0 - 10 -53.392898 - 20 -65.377049 - 30 -0.0 - 10 -53.770207 - 20 -69.119608 - 30 -0.0 - 10 -54.852332 - 20 -72.605413 - 30 -0.0 - 10 -56.564572 - 20 -75.759798 - 30 -0.0 - 10 -58.832222 - 20 -78.508094 - 30 -0.0 - 10 -61.580582 - 20 -80.775634 - 30 -0.0 - 10 -64.734949 - 20 -82.487751 - 30 -0.0 - 10 -68.220621 - 20 -83.569777 - 30 -0.0 - 10 -71.962894 - 20 -83.947046 - 30 -0.0 - 10 -75.705125 - 20 -83.569777 - 30 -0.0 - 10 -79.190684 - 20 -82.487751 - 30 -0.0 - 10 -82.344891 - 20 -80.775634 - 30 -0.0 - 10 -85.093069 - 20 -78.508094 - 30 -0.0 - 10 -87.360537 - 20 -75.759798 - 30 -0.0 - 10 -89.072617 - 20 -72.605413 - 30 -0.0 - 10 -90.154630 - 20 -69.119608 - 30 -0.0 - 10 -90.531896 - 20 -65.377049 - 30 -0.0 - 10 -89.917468 - 20 -60.624262 - 30 -0.0 - 10 -88.179262 - 20 -56.328504 - 30 -0.0 - 10 -85.474891 - 20 -52.646463 - 30 -0.0 - 10 -81.961968 - 20 -49.734824 - 30 -0.0 - 10 -81.060808 - 20 -49.043072 - 30 -0.0 - 10 -79.632658 - 20 -48.168712 - 30 -0.0 - 10 -79.273139 - 20 -47.698286 - 30 -0.0 - 10 -79.287282 - 20 -47.105784 - 30 -0.0 - 10 -91.052944 - 20 -18.673664 - 30 -0.0 - 10 -91.444100 - 20 -18.291816 - 30 -0.0 - 10 -91.990824 - 20 -18.328288 - 30 -0.0 - 10 -97.697488 - 20 -21.375152 - 30 -0.0 - 10 -98.938072 - 20 -21.332512 - 30 -0.0 - 10 -111.878808 - 20 -12.450952 - 30 -0.0 - 10 -112.460269 - 20 -12.311011 - 30 -0.0 - 10 -113.005256 - 20 -12.555160 - 30 -0.0 - 10 -124.880088 - 20 -24.428008 - 30 -0.0 - 10 -125.125725 - 20 -24.974731 - 30 -0.0 - 10 -124.984296 - 20 -25.556440 - 30 -0.0 - 10 -115.943944 - 20 -38.729416 - 30 -0.0 - 10 -115.850648 - 20 -39.996792 - 30 -0.0 - 10 -120.818928 - 20 -52.407560 - 30 -0.0 - 10 -121.762760 - 20 -53.244208 - 30 -0.0 - 10 -137.676920 - 20 -56.205720 - 30 -0.0 - 10 -138.187545 - 20 -56.516744 - 30 -0.0 - 10 -138.400432 - 20 -57.077104 - 30 -0.0 - 10 -138.402032 - 20 -73.868604 - 30 -0.0 - 10 -138.190440 - 20 -74.428726 - 30 -0.0 - 10 -137.680504 - 20 -74.740980 - 30 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -330 -0 -100 -AcDbDictionary - 3 -ACAD_GROUP -350 -D - 3 -ACAD_MLINESTYLE -350 -17 - 0 -DICTIONARY - 5 -D -330 -C -100 -AcDbDictionary - 0 -DICTIONARY - 5 -1A -330 -C -100 -AcDbDictionary - 0 -DICTIONARY - 5 -17 -330 -C -100 -AcDbDictionary - 3 -STANDARD -350 -18 - 0 -DICTIONARY - 5 -19 -330 -C -100 -AcDbDictionary - 0 -ENDSEC - 0 -EOF