Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread Markus Hitter


Am 11.11.2010 um 05:11 schrieb d...@umich.edu:

I like that the gound plane outline is machined. The circular pads  
could use some more lines to round them out. Have you thought about  
programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this  
(see below).


Using G02/G03 isn't trivial, as the isolation milling paths aren't  
calculated by offseting all the existing lines and pads by some  
geometric calculation, but by drawing all the traces, widened by the  
tool radius, to a pixel-based intermediate image, then figuring the  
required paths from there. All this algorithm was done by Alberto  
Maccioni and some research brought up the statement, this is the only  
reliable way for offseting all the traces. Doing exact offsets is  
said to fail in edge cases.


If you want more precision, you can raise the accuracy, which is set  
to 600 dpi = 1.7 mil by default.


Having a dxf file allows people to tweak all of the milling  
variables (depths of cut, jogs, feed rates, number of passes,  
pocketing, drilling, etc) in a CAM program, rather than go through  
the g-code by hand.


Except for multiple passes and clearing out pockets completely, this  
functionality exists already. Feed rates have to be hand-edited in  
the resulting file currently - a single spot near the top of the file  
- but this is a subject to change soon.


A few tests with Eagle's G-code exporter using multiple passes show  
results worse than with a single pass, but your mileage may vary  
here. You need a really stiff and precise machine for such things, as  
the typical engraving tips are more pressing the copper aside than  
really cutting it.


An DXF exporter would be an entirely different exporter and good luck  
finding an algorithm to connect all the lines and circles together.


That said, you can use the PostScript exporter and load that into  
Inkscape. Create an outline path for all the lines there, stitch  
everything together and export it to G-code with Inkscape's G-code  
functionality (an add-on) - and you'll soon be happy with pcb's G- 
code exporter als any attempt via the DXF route is a lot more work. :-)



Markus

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.jump-ing.de/







___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread dfro

Markus,

Thanks for the reply. I tried the 'gEDA - Inkscape - pstoedit - dxf' 
route and was not happy with the round-off errors that Inkscape 
introduced into the image.


In 'pcb', I tried a dpi of 2000 in the g-code exporter and the resulting 
pcb image is beautiful! FOSS pcb milling has arrived!


With a dxf file, in a CAM program, you can program your fine line 
cutting with a tiny v bit, then program a pocket operation with a larger 
bit to remove the remaining copper.


I have started trying to find the specifications for the dxf file format 
on the web to study. Here are my initial thoughts on adding a dxf 
exporter that builds on the pcb g-code exporter:


You could have a process that first produces g-code with a mill bit of 
0.000 diameter and 0.000 depth of cut. Take out all of the G0-rapid 
positioning code and the G1 code with Z information. Then, take the 
g-code line plots and do a (fairly simple, I think) conversion of all 
the line plots to dxf format. Save the file. Now you have a dxf with all 
the lines at 0 on the Z axis. What do you think?


Other thoughts on the g-code exporter (which I am sure you have thought 
about, and are in the works);


The drill xxx.gcode.drill.cnc file goes through the board drilling all 
of the holes without differentiating the different drill sizes (found in 
the xxx.fab.gbr file). And, there are no tool change g-codes for 
changing between drill sizes.


I think it is important to at least organize the drilling operations by 
drill size - generate g-code for one drill size, then the next, ext. 
Also, it would be helpful if the exporter generated some notes in each 
g-code drilling block specifying which drill size is being drilled. The 
cnc machinist can find those spots easily and add the tool change codes 
as needed, by hand.


If tool change options are added to the g-code exporter, you would 
probably want to read and write to a tool table file, so all of the tool 
numbers match the tool table for a particular machine. You could 
possibly code it to directly read EMC2's tool table file. (example 
location: ~/emc2/configs/sim/sim.tbl). The emc2 users manual explains 
the format.


Thanks,
Dave

On 11/11/2010 04:28 AM, Markus Hitter wrote:


Am 11.11.2010 um 05:11 schrieb d...@umich.edu:


I like that the gound plane outline is machined. The circular pads
could use some more lines to round them out. Have you thought about
programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this
(see below).


Using G02/G03 isn't trivial, as the isolation milling paths aren't
calculated by offseting all the existing lines and pads by some
geometric calculation, but by drawing all the traces, widened by the
tool radius, to a pixel-based intermediate image, then figuring the
required paths from there. All this algorithm was done by Alberto
Maccioni and some research brought up the statement, this is the only
reliable way for offseting all the traces. Doing exact offsets is said
to fail in edge cases.

If you want more precision, you can raise the accuracy, which is set to
600 dpi = 1.7 mil by default.


Having a dxf file allows people to tweak all of the milling variables
(depths of cut, jogs, feed rates, number of passes, pocketing,
drilling, etc) in a CAM program, rather than go through the g-code by
hand.


Except for multiple passes and clearing out pockets completely, this
functionality exists already. Feed rates have to be hand-edited in the
resulting file currently - a single spot near the top of the file - but
this is a subject to change soon.

A few tests with Eagle's G-code exporter using multiple passes show
results worse than with a single pass, but your mileage may vary here.
You need a really stiff and precise machine for such things, as the
typical engraving tips are more pressing the copper aside than really
cutting it.

An DXF exporter would be an entirely different exporter and good luck
finding an algorithm to connect all the lines and circles together.

That said, you can use the PostScript exporter and load that into
Inkscape. Create an outline path for all the lines there, stitch
everything together and export it to G-code with Inkscape's G-code
functionality (an add-on) - and you'll soon be happy with pcb's G-code
exporter als any attempt via the DXF route is a lot more work. :-)


Markus

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.jump-ing.de/







___
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


Re: gEDA-user: Ben mode feature request

2010-11-11 Thread John Doty

On Nov 1, 2010, at 2:01 PM, Vanessa Ezekowitz wrote:

 On Mon, 1 Nov 2010 10:05:17 -0600
 John Doty j...@noqsi.com wrote:
 
 What you want doesn't matter. What the *job* needs is the thing that
 matters.
 
 Suppose the user can't get the job done *at all* without whatever feature is 
 being proposed?  That is the crux of my argument here.

The key to problem-solving ... is to identify the right primitive operations 
and to put them at the right place. ... Merely adding features does not make it 
easier for users to do things — it just makes the manual thicker. -- Brian 
Kernighan and Rob Pike

So, if the job can't be done, asking for a feature is the wrong approach. The 
first step is to figure out what primitive operation is missing from the 
toolkit. Sometimes when you ask that question, the answer is nothing, because 
merely asking that question focuses your attention on the tools, and you find a 
way. Other times, the necessary primitive operation is best implemented with a 
separate tool. Piling everything into a single tool as features leads to 
inflexibility and low productivity. It might be okay for a tool with limited 
horizons, but it is important to preserve toolkits like gEDA that serve wide 
horizons with minimal complexity.

 
 This is not to say that I am not intelligent enough to use a simulator 
 outside of a GUI environment - I defy anyone to make that argument.  Rather, 
 it means I am not necessarily *skilled* enough to use one.  The thing is, I 
 shouldn't need to learn any special skills just to simulate a simple circuit.
 
 Indeed. But in fact, I bet if you did a time and motion study you'd find
 that typing commands is much faster than point and click. Point and click
 is a seductive time waster *except* for inherently graphical parts of the
 job.
 
 For some things, the command line is a little faster, but for some stuff, it 
 doesn't make any sense.  It also depends on how the interface in question is 
 implemented and whether you are a particularly fast and accurate typist.  I, 
 for example, can barely manage 40 words a minute.

I'm slower than that. But unlike button pushes, commands don't have to be 
retyped much. Any time I find myself doing the same thing repeatedly, I can 
make an alias, script, or makefile rule. And these approaches can be combined 
to automate very complex operations triggered by simple commands. But GUI 
operations generally depend on having a human guide them (by selecting 
something, filling out a form, etc.), so they are much less friendly to 
automation.

 
 In the case of the little script I mentioned, to run it I must open a 
 terminal via a hotkey I already have set up for that purpose, hit ctrl-r and 
 a few keys to find the command, hit Enter, and then supply my password.  All 
 told, it takes about 15 seconds and about 20 keypresses.

Why do you tolerate such barriers?

For one gEDA project, I recently had a simple change request. I hadn't worked 
on the project in months, but a quick grep for the refdes found the page, five 
minutes with gschem made the change (GUI *in its place* is great), then typing 
make rebuilt 50 pages of documentation, a 600 part BOM, and the netlist in 
the customer's requested format. The project's structure is specific to the 
customer's requirements, but I don't have to remember those details: the 
makefile remembers them for me. That's ease and productivity. No need to 
remember some complicated path through incomprehensible menus.

 
 On a bad day, my own inability to type accurately can inflate those figures 
 significantly.  Hell, just getting past the login prompt can take that long 
 on a particularly bad day.
 
 On the other hand, I could just set up sudo to allow that script to run 
 without my password, in which case a single click of the mouse would start 
 the backup.  It would undoubtedly save time, and save a lot of typing, but 
 it's also insecure, as far as I'm concerned.
 
 Any other command line function I do is generally slowed down by the same 
 problems, as are things such as this email.

All you're saying is that you don't use the command line functions effectively. 
That's OK: work however you want. But then please don't ask that gEDA, an 
unusually effective toolkit for a different approach than yours, be changed to 
reflect a less flexible and scalable approach. You want a different tool.

 
 Your implication here is that these tools are and
 should be reserved only for experts,
 
 Absolutely not. However, there should exist tools that serve needs of
 experts. There are lots of tools out there that sacrifice productivity and
 flexibility for user comfort. 
 
 Fair enough, but it doesn't have to be that way.  The stupidity of some 
 programmers' design decisions does not imply that *all* programmers make 
 stupid decisions. The existence of a feature does not imply the requirement 
 to *use* that feature, or the requirement to discard whatever feature(s) it 
 is capable of replacing.

Part 

Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread Alberto Maccioni
 All this algorithm was done by Alberto Maccioni and some research brought up
 the statement, this is the only reliable way for offseting all the traces.
Actually the algorithm is not mine, it comes from potrace, a tracing
program by Peter Selinger (as you can see in the source code copyright
notice).
Tracing involves a fair amount of mathematical analyses and his code
gives excellent results with equally great efficiency.
I just took the algorithm, stopped the tracing process before bezier
curves extraction, and adapted it to the png exporter.
HeeksCNC algorithm in comparison is extremely primitive and naive, and
it doesn't even work in many conditions, for example very sharp edges
cause it to crash completely.

With a dxf file, in a CAM program, you can program your fine line cutting with 
a tiny v bit, then program a pocket operation with a larger bit to remove the 
remaining copper.
Are you sure you want to do this? Is it for aesthetic reasons or
because of better isolation?
Besides thrashing large amounts of bits and requiring hours of work it
won't make your pcb's work better; if you need good isolation it's
better to insert several traces between the ones you want to isolate.

Have you thought about programming g-code arcs (G02, G03) for them? 
HeeksCAD/CNC does this
Once your resolution is high enough there's no difference between a
line path and an arc.
Detecting arcs would be extremely complicated; you can't describe a
generic curve with arcs, so the original tracing algorithm uses bezier
curves; you would need to check when a series of beziers are close
enough to an arc. Does this make your end product better? Not at all,
so it's not even worth to try, in my opinion.
A dxf export could however be useful.

The drill xxx.gcode.drill.cnc file goes through the board drilling all of the 
holes without differentiating the different drill sizes (found in the 
xxx.fab.gbr file). And, there are no tool change g-codes for changing between 
drill sizes.
The drill file generation is being improved with separation between
different sizes and better comments; if you have in mind a good
sequence of commands for switching between drill bits please  let us
know.

Best regards,
Alberto


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: PCB+GL Testers (please test)

2010-11-11 Thread Frank Bergmann

On 11.11.2010 00:13, Peter Clifton wrote:

On Wed, 2010-11-10 at 21:34 +0100, Frank Bergmann wrote:

And on my Intel system I have disturbances comming like rays from the
middle of the viewport/drawing area, see:

http://www.frajasalo.de/frank/projekt/pcb/pcb.local_customisation_no_pours-20101110_intel.ogv


Interesting.. I have no idea what is going on there. It could well be a
driver bug. Please let me know what mesa and kernel version you're
using.


$ aptitude show libgl1-mesa-dri | grep Version
Version: 7.7.1-1ubuntu3

$ cat /proc/version
Linux version 2.6.32-25-generic (bui...@palmer) (gcc version 4.4.3 
(Ubuntu 4.4.3-4ubuntu5) ) #45-Ubuntu SMP Sat Oct 16 19:48:22 UTC 2010



I THINK I know what it might be, but I'm not certain. Please let me
know what graphics chipset you have. (Again, glxinfo output would help).


$ lspci -s $(lspci | grep VGA | awk '{print $1;}') -vvv -nn
00:02.0 VGA compatible controller [0300]: Intel Corporation Core 
Processor Integrated Graphics Controller [8086:0046] (rev 12)

Subsystem: Toshiba America Info Systems Device [1179:0002]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast TAbort- TAbort- 
MAbort- SERR- PERR- INTx-

Latency: 0
Interrupt: pin A routed to IRQ 34
Region 0: Memory at d000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at c000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 2050 [size=8]
Capabilities: access denied
Kernel driver in use: i915
Kernel modules: i915

glxinfo output in appendix.


I just had a fix committed upstream to mesa master which gets around a
corruption when uploading data to the card. (An alignment issue).

Let me know what mesa version, and if the bug still applies, I'll see if
I can knock up up a patch. Are you on a Debian / Ubuntu system? (If so,
which version?)


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:Ubuntu 10.04.1 LTS
Release:10.04
Codename:   lucid


Does it go away with certain layers disabled?


Yes - with all disabled :)
Serious, with power board and only (!) silk enabled on zoom max (full 
board in window) I have no disturbance. But if I zoom in it appear. 
pins/pads, vias, far side and solder mask seems to be resist.



What is the minimum board which exhibits the problem? Does it relate to
certain objects on the board, or is it general?


I'll try it at the weekend.

Frank.
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control, 
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
GLX_SGIX_visual_select_group
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory, 
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control, 
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control, 
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, 
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_make_current_read, 
GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, 
GLX_EXT_texture_from_pixmap
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) IGDNG_M GEM 20091221 2009Q4 
x86/MMX/SSE2
OpenGL version string: 2.1 Mesa 7.7.1
OpenGL shading language version string: 1.20
OpenGL extensions:
GL_EXT_compiled_vertex_array, GL_EXT_texture_env_add, GL_ARB_copy_buffer, 
GL_ARB_depth_texture, GL_ARB_depth_clamp, GL_ARB_draw_buffers, 
GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_program, 
GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, 
GL_ARB_framebuffer_object, GL_ARB_half_float_pixel, 
GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture, 
GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object, 
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_provoking_vertex, 
GL_ARB_seamless_cube_map, GL_ARB_shader_objects, 
GL_ARB_shading_language_100, GL_ARB_shading_language_120, GL_ARB_shadow, 
GL_ARB_sync, GL_ARB_texture_border_clamp, 

Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread dfro

Alberto,

Thanks for the comments.

On 11/11/2010 04:24 PM, Alberto Maccioni wrote:

All this algorithm was done by Alberto Maccioni and some research brought up
the statement, this is the only reliable way for offseting all the traces.

Actually the algorithm is not mine, it comes from potrace, a tracing
program by Peter Selinger (as you can see in the source code copyright
notice).
Tracing involves a fair amount of mathematical analyses and his code
gives excellent results with equally great efficiency.
I just took the algorithm, stopped the tracing process before bezier
curves extraction, and adapted it to the png exporter.
HeeksCNC algorithm in comparison is extremely primitive and naive, and
it doesn't even work in many conditions, for example very sharp edges
cause it to crash completely.



For me, HeeksCAD/CNC crashes on everything but the most simple gerber 
artwork files. They have a ways to go on the conversion. Maybe Dan Heeks 
could take some code from the (sweet!) pcb g-code exporter.




With a dxf file, in a CAM program, you can program your fine line cutting with a 
tiny v bit, then program apocket operation with a larger bit to remove the 
remaining copper.

Are you sure you want to do this? Is it for aesthetic reasons or
because of better isolation?
Besides thrashing large amounts of bits and requiring hours of work it
won't make your pcb's work better; if you need good isolation it's
better to insert several traces between the ones you want to isolate.



I would like to remove floating copper for RF and static electricity 
reasons. The 'pcb' program thinks that floating copper is enough of an 
issue to have code to detect and remove it.


I have seen blogs where guys take tweezers and rip the floating copper 
off the boards they have isolation milled. I would like to have the cnc 
machine do it. I agree that it will destroy lots of bits, though. It is 
a trade-off between disposable etching chemicals and disposable bits.


A company called LPKF make very nice (and expensive I am sure) pcb 
mills, bundled with software that pockets out all of the unwanted copper:


http://www.lpkfusa.com/protomat/s-series.htm
http://www.lpkfusa.com/datasheets/prototyping/rp_brochure.pdf

They are beautiful machines that make beautiful pcb's.

I am going to make a very rigid, accurate pcb milling machine out of 
epoxy-granite. Here is my build blog (with pics) on a cnc lathe that is 
part E-G:


http://www.cnczone.com/forums/vertical_mill_lathe_project_log/42308-diy_benchtop_lathe_project-2.html


Have you thought about programming g-code arcs (G02, G03) for them? 
HeeksCAD/CNC does this

Once your resolution is high enough there's no difference between a
line path and an arc.
Detecting arcs would be extremely complicated; you can't describe a
generic curve with arcs, so the original tracing algorithm uses bezier
curves; you would need to check when a series of beziers are close
enough to an arc. Does this make your end product better? Not at all,
so it's not even worth to try, in my opinion.
A dxf export could however be useful.



I think the 2000 dpi output is great!

You coding wizards can do in a minute what would take me a month, but I 
would like to try writing a g-code to dxf conversion program in C. 
Thanks, Stephen Ecob for the jump start!


Stephen,
Some of the function calls seem to be missing from your dxf.c program, 
like DxfStart(); and DxfFinish();.

Do you feel like posting those, also?


The drill xxx.gcode.drill.cnc file goes through the board drilling all of the holes 
without differentiating thedifferent drill sizes (found in the xxx.fab.gbr file). 
And, there are no tool change g-codes for changingbetween drill sizes.

The drill file generation is being improved with separation between
different sizes and better comments; if you have in mind a good
sequence of commands for switching between drill bits please  let us
know.



I will organize my thoughts on how tool changing might be implemented in 
'pcb' g-code export.


Thanks,
Dave


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: PCB+GL Testers (please test)

2010-11-11 Thread Frank Bergmann

On 11.11.2010 00:58, Peter Clifton wrote:

On Wed, 2010-11-10 at 23:13 +, Peter Clifton wrote:


On my AMD Mobility Radeon HD3450 (driver: radeonhd) system (debian,
stable but old!) and your local_customisation_no_pours branch (without
the recent patches) the line ends look wrong

http://www.frajasalo.de/frank/projekt/pcb/pcb.local_customisation_no_pours-20101110_amd4core.png


The pixel shader which draws the rounded line ends (and vias / holes
etc..) isn't working. Your hardware might not support that GL extension,


I misread.. the card isn't that old.. but Debian stable is ;)


Yes and therefore its a production system so unfortunately I can not 
play with drivers and/or mesa.



I still want to see the glxinfo output. I'm not quite sure how new a
mesa you need to get R600 series cards working properly. It might need
gallium drivers.


glxinfo comes here, but know, it dies with segmentation fault - so I 
suppose all my current available hardware are buggy in context with open-gl:


$ glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: No (If you want to find out why, try setting 
LIBGL_DEBUG=verbose)

server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
GLX_OML_swap_method,

GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe,
GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method,
GLX_OML_sync_control, GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_EXT_texture_from_pixmap
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.4 (2.1 Mesa 7.0.4)
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_point_sprite,
GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,
GL_ARB_texture_compression, GL_ARB_texture_cube_map,
GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, 
GL_ARB_vertex_program,

GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_clip_volume_hint, GL_EXT_copy_texture, 
GL_EXT_draw_range_elements,

GL_EXT_fog_coord, GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays,
GL_EXT_packed_pixels, GL_EXT_paletted_texture, GL_EXT_point_parameters,
GL_EXT_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
GL_EXT_shared_texture_palette, GL_EXT_stencil_wrap, GL_EXT_subtexture,
GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3, GL_EXT_texture_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels,
GL_ATI_draw_buffers, GL_ATI_texture_env_combine3,
GL_ATI_texture_mirror_once, GL_ATIX_texture_env_combine3,
GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_NV_blend_square,
GL_NV_fragment_program, GL_NV_light_max_exponent, GL_NV_point_sprite,
GL_NV_texgen_reflection, GL_NV_texture_rectangle, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_SGI_color_matrix, GL_SGI_color_table,
GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
GL_SGIX_shadow, GL_SGIX_shadow_ambient, GL_SUN_multi_draw_arrays

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
--
0x23 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  0 0 None
0x24 

Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread Stephen Ecob
On Fri, Nov 12, 2010 at 9:31 AM,  d...@umich.edu wrote:

 I think the 2000 dpi output is great!

 You coding wizards can do in a minute what would take me a month, but I
 would like to try writing a g-code to dxf conversion program in C. Thanks,
 Stephen Ecob for the jump start!

 Stephen,
 Some of the function calls seem to be missing from your dxf.c program, like
 DxfStart(); and DxfFinish();.
 Do you feel like posting those, also?

Oh yes, you'll need those!  I'll send them to you off list.
Stephen


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread Markus Hitter


Am 11.11.2010 um 20:28 schrieb d...@umich.edu:

The drill xxx.gcode.drill.cnc file goes through the board drilling  
all of the holes without differentiating the different drill sizes  
(found in the xxx.fab.gbr file). And, there are no tool change g- 
codes for changing between drill sizes.


You have an old version of the G-code exporter. Ths sorting is done  
already, just the T command is missing. See:


http://sourceforge.net/tracker/index.php? 
func=detailaid=3100354group_id=73743atid=538813


That said, I plan to mill bigger holes with the mill bit: drill with  
a 0.8 mm bit, do an outline mill with an 1.0 mm bit and everything is  
appropriate with just one tool change.



Markus

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.jump-ing.de/







___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread dfro

Markus,

That is good news.

Could someone tell be how to add these files to the current pcb-20100929 
source download and recompile? Otherwise, I will have to wait on the 
next source snapshot, which is fine. I would love to see the latest 
patches, though.


I do not know how your '0023-board outline milling' patch works, but I 
would like to share a thought:


On page 1 of the LPKF brochure 
(http://www.lpkfusa.com/datasheets/prototyping/rp_brochure.pdf ), it 
shows a screenshot of their pcb artwork software. The thick grey traces 
are used to route the border of the part. I noticed the breaks in the 
trace in order to create attachment tabs, which you can see in the 
picture to the right of the mill making some boards.


You could have a field in the g-code export window where you can choose 
a layer from pcb, which contains the traces for the border routing 
operation. The user can customize with a simple series of thick (or 
thin) traces exactly what shape they want the pcb border to be, i.e. 
with or without tabs, what diameter endmill to use, etc.


Thanks,
Dave


On 11/11/2010 07:14 PM, Markus Hitter wrote:


Am 11.11.2010 um 20:28 schrieb d...@umich.edu:


The drill xxx.gcode.drill.cnc file goes through the board drilling all
of the holes without differentiating the different drill sizes (found
in the xxx.fab.gbr file). And, there are no tool change g-codes for
changing between drill sizes.


You have an old version of the G-code exporter. Ths sorting is done
already, just the T command is missing. See:

http://sourceforge.net/tracker/index.php?func=detailaid=3100354group_id=73743atid=538813


That said, I plan to mill bigger holes with the mill bit: drill with a
0.8 mm bit, do an outline mill with an 1.0 mm bit and everything is
appropriate with just one tool change.


Markus

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.jump-ing.de/







___
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


Re: gEDA-user: Comments on pcb's g-code exporter HeeksCAD/HeeksCNC FOSS program for pcb milling

2010-11-11 Thread Rick Collins

At 05:31 PM 11/11/2010, you wrote:

Alberto,

Thanks for the comments.

On 11/11/2010 04:24 PM, Alberto Maccioni wrote:

With a dxf file, in a CAM program, you can program your fine line 
cutting with a tiny v bit, then program apocket operation with a 
larger bit to remove the remaining copper.

Are you sure you want to do this? Is it for aesthetic reasons or
because of better isolation?
Besides thrashing large amounts of bits and requiring hours of work it
won't make your pcb's work better; if you need good isolation it's
better to insert several traces between the ones you want to isolate.


I would like to remove floating copper for RF and static electricity 
reasons. The 'pcb' program thinks that floating copper is enough of 
an issue to have code to detect and remove it.


I have seen blogs where guys take tweezers and rip the floating 
copper off the boards they have isolation milled. I would like to 
have the cnc machine do it. I agree that it will destroy lots of 
bits, though. It is a trade-off between disposable etching chemicals 
and disposable bits.


My understanding is that the bits tend to break just at the tip of 
the conical bit.  The broken bits can still be used for removing the 
floating copper perhaps.  This may not apply to your machine as this 
was a very old machine I saw being used.



Rick  




___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: NGspice and GNUcap Non-Linerar Dependent Sources

2010-11-11 Thread John Doty

On Nov 10, 2010, at 4:09 PM, c...@eugeneweb.com wrote:

 Hi Gang,
 
 I've been playing with ngspice and gnucap and have gotten good results with 
 the Non-Linerar Dependent Sources eg ASRC B devices in ngspice. I mostly 
 use those with VC-Switches to make full wave bridges, SCRs, Triacs, etc...

Why not use the semiconductor models for semiconductor devices? Make full wave 
bridges from diodes, SCR's from cross-coupled transistors, etc. A great deal of 
effort has gone into accurately modeling semiconductor physics in these 
simulators: why not exploit it? A Google search for spice scr model turns up 
quite a few subcircuit models of this sort. If you can't find exactly the model 
you need, it's probably better to tweak one of these than make one up.

  Though I see that they are not supported in gnucap. I guess the alternative 
 is to use POLYs. I've looked around and except for a short description in the 
 gnucap manual I haven't found a comprehensive howto on how to use them.

A common way to go from data sheets to model parameters is to model test 
circuits and then tweak the parameters until there's a decent resemblance.

 I sapose you would want a curve fitting program to help you generate the 
 coeficents like grace, or simfit, or you could use the fit function in 
 gnucap. However this isn't supported in ngspice, so you couldn't use that 
 model in both.

You can configure ngspice to support POLY. See 
http://www.brorson.com/gEDA/SPICE/x496.html.

 
 Are POLYs really that much better at solving convergence problems to be worth 
 the extra trouble? Is there a good into or howto on how to use them?

There is a vast literature on the subject of constructing polynomial 
approximations to functions. Google for polynomial approximation. You'll 
never be able to digest it all.

 Are negitive coeficents even legal?

Sure, why not?

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: geda-user Digest, Vol 54, Issue 32

2010-11-11 Thread clif





On Nov 10, 2010, at 4:09 PM, c...@eugeneweb.com wrote:


Hi Gang,

I've been playing with ngspice and gnucap and have gotten good results 
with the Non-Linerar Dependent Sources eg ASRC B devices in 
ngspice. I mostly use those with VC-Switches to make full wave bridges, 
SCRs, Triacs, etc...


Why not use the semiconductor models for semiconductor devices? Make 
full wave bridges from diodes, SCR's from cross-coupled transistors, 
etc. A great deal of effort has gone into accurately modeling 
semiconductor physics in these simulators: why not exploit it? A Google 
search for spice scr model turns up quite a few subcircuit models of 
this sort. If you can't find exactly the model you need, it's probably 
better to tweak one of these than make one up.


I do try to use models that I find out there when I can, though some are 
overkill for anything more then just a few devices, and can really bog 
down the simulation. At other times I've had problems with the diodes in a 
full wave bridge breaking down not at the peak reverse voltage but in the 
middle range somewhere. I wasn't sure if this was a bug or some esoteric 
behavior that my circuit was tickleing. Either way I wanted to get on with 
designing my circuit so I switched to a voltage controled switch model.


I relize that it's not advisable to brut force a simulation to what you 
think it should be... but I had to move on. Maybe I'll go back later to 
see if I can figure out why it behaves that way.


 Though I see that they are not supported in gnucap. I guess the 
alternative is to use POLYs. I've looked around and except for a short 
description in the gnucap manual I haven't found a comprehensive howto 
on how to use them.


A common way to go from data sheets to model parameters is to model test 
circuits and then tweak the parameters until there's a decent 
resemblance.


Yes and I've done this too.

I sapose you would want a curve fitting program to help you generate 
the coeficents like grace, or simfit, or you could use the fit function 
in gnucap. However this isn't supported in ngspice, so you couldn't use 
that model in both.


You can configure ngspice to support POLY. See 
http://www.brorson.com/gEDA/SPICE/x496.html.


Yes but there isn't much in the way of examples on how to use them.

Are POLYs really that much better at solving convergence problems to be 
worth the extra trouble? Is there a good into or howto on how to use 
them?


There is a vast literature on the subject of constructing polynomial 
approximations to functions. Google for polynomial approximation. 
You'll never be able to digest it all.


True, but that dosn't help with for exmaple how to make models for 
multiple variables. Apparently you can say something like POLY(2) or 
POLY(3) but then how do you list the values? In Gnucap it seems you list 
the coeficent of X^0 (1) but a lot of models start with X^1. It would be 
helpfull to have a howto that described the best practices for all of this 
with some example problems.


Also some discussion on when to use them vs arbituray expressions as in 
B sources. Naively one might assume that becuase they should be well 
behaived functions that each point would have a usable first or even 
second derivative, and this would help convergance. Though here is a quote 
from the NGspice manual Chapt 12.2.7 BSIM1 model (level 4):


A known problem of this model is the negative output conductance and the 
convergence problems, both related to poor behavior of the polynomial 
equations.


So it's not even obvious that they will perform better. Are they there
just to support legacy models, or are there times when they are the best 
tool we have?




Are negitive coeficents even legal?


Sure, why not?


Sorry, I thought I read somewhere that they weren't, can't find it now.


John Doty  Noqsi Aerospace, Ltd.
http://www.noqsi.com/
j...@noqsi.com


Thanks,
Clif


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user