Re: gEDA-user: PCB+GL resistor p0rn
Hi, I compiled the latest version of FreeCAD and OpenCASCADE on my machine (with NVidia 8600 195.36.15, Debian 5.0.6). The compile worked reasonable and FreeCAD starts, but when I try to model something, e.g. cut a sphere out of a cube or chamfer and fillet the cube the screen-output is rubbish. Otherwise your general path appears reasonable to me. As it's only free as in beer, I don't fully suggest it, but gCAD3D seems to produce stable results - How about forging the script in a way to have the 3D-CAD program select the model it likes and really emit only XYRS, the footprint and ev. provide a table that correlates the footprint with a (choice of) 3D-model(s)? BTW. gCAD3D can read/write IGES, STEP and it's own documented ascii-format. Matthew Wilkins wrote: If it was me, I think I'd make a script for some 3D modelling package like FreeCAD to generate a 3D model using PCB's XY place file output. The process would be: 1. make FreeCAD 3D models for each of the components 2. generate an XY place file, board outline file and drill file in PCB 3. run a python script in FreeCAD that generates a model of the board based on the outline gerber file. Make holes using data from the drill file. 4. Run a script that makes an assembly by placing components based on the XY place file. At this point you should have a 3D model of the board, right in a 3D CAD program that can be used to model enclosures and other parts. ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: current working file name in gschemrc
Peter Brett wrote: What is the prupose of ~A in this line? It's a Scheme format specifier. I think in this case I will invite you to RTF Guile Manual, since it explains the operation of the 'format' function quite well. :-) http://www.gnu.org/software/guile/manual/html_node/Writing.html#index-simple_002dformat-2052 Ok, I get a faint idea, what is going on. Now, I got stuck with the next step: Copy the pdf produced by cups-pdf in $HOME/PDF to the working directory of the current project. Seems like adding bash commands to the print command works. E.g. lp -d PDF -t mosfet-node; echo foobar or even lp -d PDF -t mosfet-node; ls -l $HOME Output is on stdout. The dot expands correctly to the current working directory. But if I try to access the produced pdf file with lp -d PDF -t mosfet-node; mv $HOME/PDF/mosfet-node.pdf . the second command seems to act on the state before the print command. If there was no PDF file before, I get: mv: cannot stat `/home/kmk/mosfet-node.pdf': No such file or directory If there was such a file, then this file gets copied rather then the newly produced one. It acts, as if the shell that executes the command string does not wait for the lp command to terminate before it proceeds with the mv. Is there anything I can do about this? What kind of shell is the command string executed by? ---)kaimartin(--- -- Kai-Martin Knaak tel: +49-511-762-2895 Universität Hannover, Inst. für Quantenoptik fax: +49-511-762-2211 Welfengarten 1, 30167 Hannover http://www.iqo.uni-hannover.de GPG key:http://pgp.mit.edu:11371/pks/lookup?search=Knaak+kmkop=get ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: current working file name in gschemrc
(Apologies for top-posting) Postscript is passed to the standard input of the print command, which is run using popen(). It uses the default shell 'sh' to run the command. I think that the sort of behaviour you're looking for might be best achieved by writing some sort of wrapper program that accepts Postscript on stdin and a destination filename as its argument. Peter -- Peter Brett pe...@peter-b.co.uk Remote Sensing Research Group Surrey Space Centre - Original message - Now, I got stuck with the next step: Copy the pdf produced by cups-pdf in $HOME/PDF to the working directory of the current project. Seems like adding bash commands to the print command works. E.g. lp -d PDF -t mosfet-node; echo foobar or even lp -d PDF -t mosfet-node; ls -l $HOME Output is on stdout. The dot expands correctly to the current working directory. But if I try to access the produced pdf file with lp -d PDF -t mosfet-node; mv $HOME/PDF/mosfet-node.pdf . the second command seems to act on the state before the print command. If there was no PDF file before, I get: mv: cannot stat `/home/kmk/mosfet-node.pdf': No such file or directory If there was such a file, then this file gets copied rather then the newly produced one. It acts, as if the shell that executes the command string does not wait for the lp command to terminate before it proceeds with the mv. Is there anything I can do about this? What kind of shell is the command string executed by? ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: current working file name in gschemrc
Kai-Martin Knaak kn...@iqo.uni-hannover.de writes: But if I try to access the produced pdf file with lp -d PDF -t mosfet-node; mv $HOME/PDF/mosfet-node.pdf . the second command seems to act on the state before the print command. If there was no PDF file before, I get: mv: cannot stat `/home/kmk/mosfet-node.pdf': No such file or directory If there was such a file, then this file gets copied rather then the newly produced one. It acts, as if the shell that executes the command string does not wait for the lp command to terminate before it proceeds with the mv. The lp terminates, but the printer spooler did not finish the job. A sleep may help. Why don't you print from gschem directly into a ps file, and ps2pdf the result? Is there anything I can do about this? What kind of shell is the command string executed by? ---)kaimartin(--- -- Stephan Böttcher FAX: +49-431-880-3968 Extraterrestrische PhysikTel: +49-431-880-2508 I.f.Exp.u.Angew.Physik mailto:boettc...@physik.uni-kiel.de Leibnizstr. 11, 24118 Kiel, Germany ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Inkscape text-pstoedit-pcb and importing PostScript/PDF/EPS vector graphics with holes
On 11/22/2010 11:47 PM, Colin D Bennett wrote: On Mon, 22 Nov 2010 23:21:17 +0100 Jan Martinekho...@dp.fce.vutbr.cz wrote: I really wanted to create a logo/description label in Inkscape and put it on a board I recently made, but after trying for an hour or two to get pstoedit to import text elements properly (holes in letters like 'B' or 'o' were getting filled in when exported to the 'pcb' file format), I gave up. I tried the '-ssp' option to pstoedit but it crashed every time an assertion failure. Have you had better luck with converting text or graphics to pcb format? I am not sure if this can help you, but I usualy do the other way. Export PCB board into ps, then open in inkscape. In inkscape you can do whatever you like - mirror the PCB, do some post-processing (try ungroup before), add text, logos, cutting guidelines, place several PCBs on one page etc. Ah, thinking outside the box. Sounds like a very manual process, though. I have tried using Inkscape to panelize PCBs before in this manner and I found it tedious, and in particular you lose the ability to have the assembly drawing, drill files, etc. to be synchronized with the layout... at least the way I was doing it. I mean that if you modify the board layout in pcb at all, you'll have to re-export and re-modify the postscript output. Also, how would you make gerbers using this process? I guess it would work best for quick-and-dirty one-off boards made at home rather than sent out for fab? Also, if you are editing the silkscreen layer in Inkscape, wouldn't it be hard to make sure you put the graphics/text/etc. in a place that doesn't conflict with elements on other layers? Unless you load each PCB layer into an Inkscape layer... that would help. Regards, Colin Yes, you are right, it is quick and dirty and lots of information is lost. I was thinking about home-made boards. regards, Jan ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: current working file name in gschemrc
On Nov 23, 2010, at 6:20 AM, Kai-Martin Knaak wrote: Still, I'd like to have a one touch PDF output. Or, even better, non-GUI printing from a script. The following Makefile rules do the job for me, using the print.scm distributed with gEDA. S2PS=gschem -p -o $@ -s print.scm $ PS2PDF=ps2pdf -sPAPERSIZE=a4 %.sym.ps : %.sym $(S2PS) %.ps : %.sch $(S2PS) %.pdf : %.ps $(PS2PDF) $ With these in a Makefile, all you have to do to turn whatever.sch to whatever.pdf is execute make whatever.pdf. John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ j...@noqsi.com ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Cant find footprint
Luis Palombo wrote: Some idea??? Maybe the elements-dir variable does not point to where the footprint library lives. Do you use a project file? Footprints that are in the same folder are visible I do not think that is the problem, i tryed to change the name, Lower case, upercase, without numbers, and with .fp extension and without. I dont know HelP mEeEE! ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: mirrored footprint
Kai-Martin Knaak kn...@iqo.uni-hannover.de writes: Hi. I just hit a legitimate use case for mirrored footprints: A layout sketch for dead-bug-prototyping. That is, glue the component with its back to the board and do the wires manually. However, there seems to be no way to mirror a footprint. I guess it is safest to make a mirrored footprint, thus clearly labeln in the name. Anything else will lead to inevitable desaster down the road, when a board may end up with a mirrored footprint acidentally. To make a mirrored footprint in the GUI is sufficiently easy. -- Stephan Böttcher FAX: +49-431-880-3968 Extraterrestrische PhysikTel: +49-431-880-2508 I.f.Exp.u.Angew.Physik mailto:boettc...@physik.uni-kiel.de Leibnizstr. 11, 24118 Kiel, Germany ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Cant find footprint
Luis Palombo wrote: Some idea??? Maybe the elements-dir variable does not point to where the footprint library lives. Do you use a project file? Footprints that are in the same folder are visible visible in pcb? Where do the footprints live, you can't find? How do you try to import schematics data to pcb? a) gsch2pcb + project_file on the command line -- load_layout_data_to_paste_buffer in pcb b) gsch2pcb + command line options -- load_layout_data_to_paste_buffer in pcb c) xgsch2pcb -- update pcb ? d) import schematics in pcb? These different work-flows require different ways to configure the location of the library. ---)kaimartin(--- PS: Did you read the tutorial? -- Kai-Martin Knaak tel: +49-511-762-2895 Universität Hannover, Inst. für Quantenoptik fax: +49-511-762-2211 Welfengarten 1, 30167 Hannover http://www.iqo.uni-hannover.de GPG key:http://pgp.mit.edu:11371/pks/lookup?search=Knaak+kmkop=get ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Cant find footprint
Helloo... Everytime i was used GUIs. First make a directory for project. Copy gschemrc and gafrc to directory. By a terminal, go to this folder, and type gschem. Draw and make the schematic, put all labels. Save and close. Open xgsch2pcb, make new project, import schematic, and update pcb. 2010/11/23 Kai-Martin Knaak [1]kn...@iqo.uni-hannover.de Luis Palombo wrote: Some idea??? Maybe the elements-dir variable does not point to where the footprint library lives. Do you use a project file? Footprints that are in the same folder are visible visible in pcb? Where do the footprints live, you can't find? How do you try to import schematics data to pcb? a) gsch2pcb + project_file on the command line -- load_layout_data_to_paste_buffer in pcb b) gsch2pcb + command line options -- load_layout_data_to_paste_buffer in pcb c) xgsch2pcb -- update pcb ? d) import schematics in pcb? These different work-flows require different ways to configure the location of the library. ---)kaimartin(--- PS: Did you read the tutorial? -- Kai-Martin Knaak tel: +49-511-762-2895 Universität Hannover, Inst. für Quantenoptik fax: +49-511-762-2211 Welfengarten 1, 30167 Hannover [2]http://www.iqo.uni-hannover.de GPG key: [3]http://pgp.mit.edu:11371/pks/lookup?search=Knaak+kmkop=get ___ geda-user mailing list [4]geda-u...@moria.seul.org [5]http://www.seul.org/cgi-bin/mailman/listinfo/geda-user References 1. mailto:kn...@iqo.uni-hannover.de 2. http://www.iqo.uni-hannover.de/ 3. http://pgp.mit.edu:11371/pks/lookup?search=Knaak+kmkop=get 4. mailto:geda-user@moria.seul.org 5. http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Cant find footprint
On Tue, 2010-11-23 at 13:39 -0300, Luis Palombo wrote: Helloo... Everytime i was used GUIs. First make a directory for project. Copy gschemrc and gafrc to directory. By a terminal, go to this folder, and type gschem. Draw and make the schematic, put all labels. Save and close. Open xgsch2pcb, make new project, import schematic, and update pcb. I do not think that above will really work fine. Please try to follow the fine tutorials first, later you may try other work flows: http://www.delorie.com/pcb/docs/gs/gs.html http://geda.seul.org/wiki/geda:gsch2pcb_tutorial And if your English is as bad a mine, you may try to use an email client with spell checking. That will not improve grammar, but catch typos like Helloo. ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Cant find footprint
On Tue, 23 Nov 2010 17:50:50 +0100 Stefan Salewski m...@ssalewski.de wrote: On Tue, 2010-11-23 at 13:39 -0300, Luis Palombo wrote: Helloo... Everytime i was used GUIs. First make a directory for project. Copy gschemrc and gafrc to directory. By a terminal, go to this folder, and type gschem. Draw and make the schematic, put all labels. Save and close. Open xgsch2pcb, make new project, import schematic, and update pcb. And if your English is as bad a mine, you may try to use an email client with spell checking. That will not improve grammar, but catch typos like Helloo. Luis, Personally I don't care if you make some typos and misspellings in English, since you are communicating meaning just fine. The only language I can speak or understand to a useful degree is English and I have great respect for anyone who can successfully communicate in two or more languages! Regards, Colin ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: If you also think the PCB lower-case letter 's' is ugly, here's a replacement
As fonts are required from all CAD systems, here a posting from Varkon list ;-) Hi. I created free ISO 3098 compatible ttf font for use in free CAD programs. The project page is http://code.google.com/p/osifont/, you can check it out and eventually included in your CAD project. hikikomori82 at gmail dot com mailto:hikikomor...@gmail.com This font is required for drawings by certain institutions. Ineiev wrote: On 11/22/10, Mark Rages markra...@gmail.com wrote: On Mon, Nov 22, 2010 at 1:29 PM, Colin D Bennett co...@gibibit.com wrote: How hard would it be to make use of the freetype library to handle all vector-based fonts? I imagine the font outlines could be converted to line elements fairly easily... ? pcb's fonts are special: they are a single line wide. When you need the smallest letters that a given silk process can print legibly, you want those single-line fonts. For larger fonts, freetype would be great, and save us the machinations of creating the text in inkscape or something and importing it with pstoedit. Discuss also using QCAD fonts, please. Cheers, Ineiev ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: DRC check workaround for outline layer
This is probably not something we'd commit as is to PCB, as for some cases, DRC warnings on the outline layer could be useful, but Bdale was looking for something along these lines on IRC yesterday. I'm not sure if I've caught all cases, but a simple test suggested it might have the desired effect. NB: You WONT get warnings if your outline touches / cuts off any parts! Best regards, -- Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!) Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me) From 4c8090947c43d3fa0a04cc47d4115cc20b534586 Mon Sep 17 00:00:00 2001 From: Peter Clifton pc...@cam.ac.uk Date: Tue, 23 Nov 2010 15:32:47 + Subject: [PATCH] Disable DRC checks on outline and route layers --- src/find.c |8 src/misc.c |8 src/misc.h |2 ++ 3 files changed, 18 insertions(+), 0 deletions(-) diff --git a/src/find.c b/src/find.c index c478f7f..efd3ebf 100644 --- a/src/find.c +++ b/src/find.c @@ -826,6 +826,9 @@ LookupLOConnectionsToPVList (bool AndRats) /* now all lines, arcs and polygons of the several layers */ for (layer = 0; layer max_copper_layer; layer++) { + if (is_layer_mechanical (LAYER_PTR (layer))) +continue; + info.layer = layer; /* add touching lines */ if (setjmp (info.env) == 0) @@ -3994,6 +3997,9 @@ DRCAll (void) { COPPERLINE_LOOP (PCB-Data); { +if (is_layer_mechanical (layer)) + continue; + /* check line clearances in polygons */ PlowsPolygon (PCB-Data, LINE_TYPE, layer, line, drc_callback); if (IsBad) @@ -4039,6 +4045,8 @@ DRCAll (void) { COPPERARC_LOOP (PCB-Data); { +if (is_layer_mechanical (layer)) + continue; PlowsPolygon (PCB-Data, ARC_TYPE, layer, arc, drc_callback); if (IsBad) break; diff --git a/src/misc.c b/src/misc.c index faeefa8..86866b2 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2214,6 +2214,14 @@ ElementOrientation (ElementType *e) return dy 0 ? 3 : 1; } +bool is_layer_mechanical (LayerType *layer) +{ + if (strcmp (layer-Name, outline) == 0 || + strcmp (layer-Name, route) == 0) +return true; + return false; +} + int ActionListRotations(int argc, char **argv, int x, int y) { diff --git a/src/misc.h b/src/misc.h index bb88a21..b11db0b 100644 --- a/src/misc.h +++ b/src/misc.h @@ -123,6 +123,8 @@ char * GetInfoString (void); comparing two similar footprints. */ int ElementOrientation (ElementType *e); +bool is_layer_mechanical (LayerType *layer); + /* These are in netlist.c */ void NetlistChanged (int force_unfreeze); -- 1.7.1 ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: New autorouter high effort mode
Hi all, I've just pushed an update to my branch of PCB which provides a new autorouter high effort mode. What does it achieve? It wrings a few extra drops of goodness out of the autorouters. Typically it will route a few extra tracks. Useful if the autorouter is almost doing the job, but leaving a handful of tracks unrouted. Very useful if you're finishing work for the day and your computer has nothing better to do all night. How does it work? It's a brute force hack. It sits in an infinite loop repeatedly running the autorouters, but each run it slightly tweaks the cost function so that the routing ends up different. You can use it to burn CPU cycles to get slightly better autorouting. Quality ? No. It's a brute force hack. Make copies of your board before using the hack. If the hack produces useful results it's safe to take them back to a stable version of PCB. What's the work flow ? 0. Back up your PCB. WARNING: At the end of this work flow you will manually kill PCB (ctrl-C) without an opportunity to save. 1. Start PCB from a command shell, you'll need it to read status information 2. Set Settings - Autorouter high effort 3. Select at least one autorouter with Settings - Disable 2008 autorouter and Settings - Disable default autorouter 4. Start autorouting (from the Connects menu) 5. Wait for status messages in the shell. They look something like this: 2008FFF routed 208 nets and 332.681560. 2008AFF best yet with 208 nets and 329.589900. 2008BFF best yet with 208 nets and 328.583180. 2008CFF best yet with 208 nets and 328.471335. 2008DFF 208 nets and 328.515675. 2008EFF best yet with 208 nets and 328.347530. 2008GFF 207 nets and 330.267000. 2008HFF 207 nets and 337.805590. 2008IFF 206 nets and 327.564940. 2008JFF 206 nets and 328.720400. 2008KFF 207 nets and 328.265705. 2008EAF 207 nets and 325.139955. 2008EBF best yet with 209 nets and 326.294555. 2008ECF 208 nets and 329.716525. 2008EDF 207 nets and 327.660495. [...] 2008EBHGHFF 209 nets and 335.422395. 2008EBHGIFF 208 nets and 328.476840. 2008EBHGJFF best yet with 210 nets and 331.878480. 6. Each time is says best yet ... a routed copy of your PCB will be saved with a matching file name, eg myboard-2008EBHGJCF.pcb 7. Ctrl-C in the shell to kill PCB when you're happy with the results or have run out of patience. What is this 2008 autorouter ? PCB's autorouter underwent a major rewrite in 2009. This made it work better in many cases, but in some cases the older version works better. My branch of PCB includes both versions. I often try both autorouters and keep the best results. How to get it? git clone git://repo.or.cz/geda-pcb/see.git cd see ./autogen.sh ./configure make src/pcb Enjoy! Stephen Ecob ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: PCB+GL - Stable (eventually...)
Hi geda-users, Kai-Martin, Since I know some people have expressed an interest in why PCB+GL hasn't hit stable yet, I realised earlier that there was another step which is necessary... (besides cleaning up the hacks I made on top of the code I took from cairo). The polygon_speedup branch on which the GL code sits might seem unrelated, but in fact there are changes in that branch which are relied upon when rendering polygons. The polygon_speedup branch should mostly be a success, but I'm fairly sure it does increase CPU cycles for some operations. I've not had a chance to test it very scientifically, and I'm hesitant to push it to git HEAD without having at least made a few checks to see that it isn't penalising too many general cases. If necessary I could re-write the polygon rendering routines to NOT rely on the fact the polygon_speedup branch creates a spatial datastructure of all the contours within a polygon. -- Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!) Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me) ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: current working file name in gschemrc
John Doty wrote: S2PS=gschem -p -o $@ -s print.scm $ Thanks! I completely missed the existence of that simple scheme script. I wasn't even aware of the possibility to do this kind of scripting. You can call me stupid, now... There is a similar image.scm one for PNG output, too :-) ---)kaimartin(--- ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user