Producing PCB's from .dxf files

Hi Gents and Ladies

I’m a newbie to Fritzing, and I’m hoping to eventually use it to help me produce some PCB’s that at the moment I am struggling to make.

Some backgound, I am one of those home bodgers who is always making some crackpot project and as a result is always learning. The current project is a homemade flight simulator rig to work with the DCS A10-C program. There is a whole forum dedicated to it that has loads of information and help with the individual panels, plus a clever guy came up with a program called DCS BIOS which outputs the game info to switches, LED’s, LCD displays and stepper motors for gauges using Arduino Nano boards.

It’s a fantastic job that they have done, and as a result I now have really professional looking ‘cockpit’ panels that interact with the game. Along the way I have learned how to use a 3D printer, CNC engraver, Co2 laser cutter and of course the programs that design the parts and convert them into files that can be used to drive the machines mentioned above, namely Solidworks, Qcad, Inkscape, CamBam, Universal Gcode sender and K40 Whisperer.

All in all I’m quite proud of what this old brain has managed to learn and produce.

As part of all this I am having to produce a load of PCB’s. Most are one-offs, as each is designed for a very specific job, and fit in very specific places and spaces. As they (generally) are not very sophisticated, I have been using a combination of Solidworks for designing them, then convert to .dxf files and so onto the the CNC engraver via CamBam where I am able to engrave blank PCB sheet with the circuit lines (don’t know what the proper word is) plus the solder pads for the switches, LED’s, rotary encoders and headers, and the CNC machine makes short work of drilling the holes and cutouts and the often irregular external profile.

For small, low density single sided PCB’s this is fine. I can even make double sided PCB’s again with the caveat that they are small and low density.

However the big issue is that the PCB board is very often warped, which when it comes to larger boards means that the circuitry cannot be cut evenly across the board, despite leveling software. As a result the circuits can end up breaking through or pulling up, so I have to use a minimum of 1.5 mm for any contact lines in order to have a chance of them not getting ruined, and of course ruining the boards. Plenty have ended up that way.

Additionally when I need higher density of ‘lines’ due to constrictions in the board or the need to avoid components, it means that often the copper ends up being machined through at some point due to the uneven surface.

I tried the method I found on the internet of using paint and the laser engraver to expose the copper for etching, with 100% failure rate. Even if it did work, the warpage that it gives the boards would make them unusable.

The irony is that with the .dxf file I can make absolutely ideal PCB’s, even double sided ones, I just can’t convert them into reality.

I have looked at various forum posts that use inkscape to make SVG files, and have struggled with it despite using inkscape quite a lot. The idea that I can take the .dxf file with the exact position of the solder pads and terminals, plus the outside profile of the board with all the necessary cut outs, mounting holes and contact holes all exactly placed, and then import that into Fritzing where I can then put in the contact lines and through holes (vias, i believe?) so that I can get one of those PCB manufacturers to make it for me really appeals.

So that is what I need, a workflow that takes me from a dxf file to a Fritzing PCB output file.

If any of you kind people can advise or direct me to somewhere that shows how to do this is a logical manner, preferably with explanations so I can understand the concept rather than just repeat parrot fashion, I would be eternally grateful!

If you need me to show example files or anything, let me know

Cheers

Les

I’m not aware of a conversion program from dxf files to Fritzing. There is one for eagle files to Fritzing, if Eagle will import dxf files though (I don’t use Eagle enough to know if that is possible, if no one here answers, possibly ask in the Eagle forums?) A quick google search indicates that Eagle will import dxf files so if you upload an example dxf file you need (you will probably have to append a .fzp to the end of it as I doubt the forum will allow the upload of a dxf, file although I could be wrong), I’ll try and run it through Eagle2Fritzing (which is non trivial to install) and see what comes out. That would probably be your best bet for an automated solution. A manual conversion is likely to be a fair amount of work. If the dxf files are the entire board this probably won’t work as Eagle2Fritzing expects parts not entire boards, but we can try it and see.

Peter

You can succeed using .DXF and Inkscape. But, there are better approaches to consider.

As a ’Partial’ example of DXF/Inkscape success, below is screenshot of Opening a DXF in Inkscape and using the Gcode Extension to create the Gcode for machining.

It’s been a few years - old memory suggests you’ll need to dig into it but, it was fairly easy after headaches of learning the tricks (mostly with Inkscape).

Better Option(s):

Option 1) I do it this way.
Create the PCB design in Fritzing, Export Gerber files and load into CopperCam. Export the Gcode for machining. Simple. See comments below…

Option 2) Using a DXF, import into FreeCad, Export the Gcode. I have done this many times (mostly for non-PCB work) but don’t recommend it as it requires learning FreeCad.
Pretty easy for a SolidWorks user (the Part Design Workbench is similar enough to SolidWorks to make it Very doable in a couple of hours. I no longer use SolidWorks or ProE as FreeCad has matured to Professional usage.
It will be confusing, especially learning/working between the various Workbenches (Part_Design, Draft, Part, Path. Think of them as Individual Programs under one Umbrella called FreeCad).

Option 3) Using Eagle and plugin, you can do it all but, steeper learning curve.

Option 4) KiCad is like Eagle - but, has it’s own Stand-Alone programs (PCB, Schematic… etc) under the one umbrella called KiCad. I’m not sure about KiCad and Gcode, though in the past few months I’ve gotten quite familiar with KiCad. I use it to create the Gerbers and CopperCam for the Gcode.

The UpShot…
The most efficient and 100% success rate (without steep learning curve) will come from using Fritzing and CopperCam (or other Gcode from Gerber making program).

CopperCam has a Free download good for small projects. Link

Regarding Bowing/Non-Flat PCB’s:

I used 3M double-sided Tape. That worked well but eventually machined some holding frames… screenshot below…

20170716_133406

Hi guys, thanks for the responses, and apologies for the delay in getting back to you, I had issues logging in

If you take a look at the pictures below you will see how I have to use an engineering approach to the PCB’s, as many are multi layered due to the positioning and sizes of the connected devices. For small PCB’s it’s not a problem, but you can see the last picture is the type of thing that causes issues. (Edit, only one picture allowed per post, will have to span across a number of them)

It is so large that it is impossible to keep flat with the tools I have and also is larger in area than the engraver I have. As a result it is a multi part machining process, and during machining it will continue to flex as it is impossible to hold without the clamps getting in the way of the work. This causes tool wander and a lot of loss of accuracy.

However the design in DXF form allows me to accurately place the switches, SMD LED’s, header pin holes plus all the necessary cutouts that are required to clear the rest of the assembly.

Like I said before, the ability to put a DXF file onto the design and copy the entities or transfer parts to Fritzing is what I need

Cheers

Les

Me too, I thought it may just be my account since no one else is complaining. I’ll alert the web maintainer that there looks to be a problem. It took me 4 attempts (various errors on the first three) to log in just now.

If you will upload a dxf file (as noted you likely will need to add a .fzp extension to upload it) I’ll try it in Eagle2Fritzing, otherwise one of the solutions that @opera_night suggested above may work but Eagle2Fritzing is all I’m equipped to try.

Peter

Forward Summary:
• Can Copy, Paste and Position many circuits into one Fritzing (and KiCad) PCB’s
• Can add/delete circuit elements…

Regarding Multi Circuits (same or different):
• Can copy a circuit from one PCB to a different PCB.
• Can connect new traces from one to the other.
• See video below

Regarding Bowing:
• Have done many boards using double-sided tape.
(Don’t use the Black-thick tape, will never get PCB off machine. The White-thin tape is perfect.)

Regarding DXF:
• For a Quick Test I created some Lines (in FreeCad) and Exported as DXF.
• I Imported the DXF into KiCad (into a PCB) Bingo! No problems. No special attention to doing it. Screenshot below. Expand the photo to fully see it…

Hi guys, I’m afraid illness kept me away so I have only just come back to this.

Thanks for the answers, I need to try the suggestions mentioned above, it looks like there may be a way through.

In the meantime I have attached a DXF file renamed with the .FZP extension as requested. The file is just an exemplar one, the red is for cutouts and holes, the white / black is the outline of the ‘wiring’ (what is the proper name for the copper lines between two contacts?). As you can see it is very low density, so I imagine I can improve that

Interested to see what I can do with it

LesMFCD PCBDXF.fzp (421.3 KB)

After importing to KiCad did you import into Fritzing?

Cheers

Looks like eagle2fritzing is a bust. The dxf file won’t import (eagle says lines are too big) and even if it did, it appears it will create a footprint not a board (as is needed for eagle2fritzing to work.) I’d guess that you are down to one of @opera_night 's methods to convert if it can be done.

Peter

“No”
Unfortunately:
Not able to use .DXF with Fritzing.
Not able to use .DXF in KiCad for other than a Graphic, such as for Silkscreen and Mask.

I Loaded the .DXF into CopperCam and generated Gcode for CNC but, without spending far too much time cleaning DXF and doing what’s needed to get usable results (which could be ‘Hit&Miss’), results were not impressive.

It might be worth your time to completely Remake the design in Fritzing - just use the PCB panel (can follow-up with the Schematic afterwards).
Then, you can copy&paste sections for smaller regions for milling…

That is my experience too, I had thought a dxf file was like a .fzz file or a .brd file for eagle, but it appears to be closer to a svg, just the image with no interconnections or net which means it isn’t possible to make a part out of it very likely. To redo the boards in Fritzing would mean being able to find all the parts in use (and I don’t know what parts are in use.) I haven’t looked at Autocad in 30 or 40 years, but does it not have a board output format of some kind (other then dxf?) I would expect it to be a full EDA package by now, but perhaps not.

Peter

I’ve made dozens of PCB’s without having Fritzing Part models (actually, perhaps 50 pcb’s).

Pretty simple: Knowing how many pads for a part (that Fritz doesn’t have), I simply use the Part called “Generic Female Header” set it to the number desired along with hole size.
Can do single, multiple… etc.
For the graphic aspect, I use a silkscreen part.
See my post: Make a Pretend Part

Once placed on the board, add traces!