Dieses Beispiel zeigt, wie ein mit PCB-Investigator oder in ODB++ erstelltes Projekt mit einem bekannten Dateipfad in Gerberdateien umgewandelt werden kann. Es ist einfach den Code abzuwandeln, um einen automatisierten Konverter für ODB++, GenCAD 1.4, IPC-2581 oder einige andere Dateiformate zu erhalten.
{
/// <summary>
/// Select the outputdirectory and save all layer as gerberfiles.
/// </summary>
/// <param name="window">The main PCB-Investigator window.</param>
public void SaveJobAsGerber(IPCBIWindow window)
{
FolderBrowserDialog dirDLG = new FolderBrowserDialog();
//select the output directory
dirDLG.Description = "Select directroy for layerfiles as gerber274x.";
if (dirDLG.ShowDialog() != DialogResult.OK)
return;
//here is possible to select your own directories
ConvertODBToGerber(window.GetODBJobDirectory(), dirDLG.SelectedPath, window);
}
/// <summary>
/// Converts all layers (without the component layers) to gerber files and save it in one directory.
/// </summary>
/// <param name="JobPath">The job who should be loaded.</param>
/// <param name="GerberDirectory">Output directory for the new files.</param>
/// <param name="window">PCB-Investigator to convert the files.</param>
public void ConvertODBToGerber(string JobPath, string GerberDirectory, IPCBIWindow window)
{
//check is a job loaded, if not load an job!
if (!window.JobIsLoaded && !window.LoadODBJob(JobPath))
return;
IStep stepCurrent = window.GetCurrentStep();
if (stepCurrent == null) return;
foreach (string layername in stepCurrent.GetAllLayerNames()) //check each layer and save gerber files for it.
{
ILayer layer = stepCurrent.GetLayer(layername);
if (layer is IODBLayer)
{
((IODBLayer)layer).SaveLayerAsGerber(GerberDirectory+"\\"+layername+".ger");
}
}
}
}
Um beispielsweise eine IPC-2581-Datei zu laden, müssen Sie die Referenz PCBI_IPC2581.dll zu Ihrem Projekt hinzufügen. Danach können Sie das Interface des Plug-ins dazu nutzen IPC-2581-Dateien zu laden. Nachstehend finden Sie eine Methode, um eine IPC-2581-Datei im PCB-Investigator zu laden und die ConvertODBToGerber Methode von vorher dazu zu nutzen, alle Lagen als Gerber274x-Dateien zu speichern.
private string tempDir = @"C:\Tests\converterTemp\";
public void ConvertIPC2581FilesToGerber(IPCBIWindow window)
{
PCBI_IPC2581.IFilterIPC2581 FilterIPC = new PCBI_IPC2581.IFilterIPC2581(window);
OpenFileDialog openDLG = new OpenFileDialog();
openDLG.Filter = "IPC2581 files (*.cvg)|*.cvg|All files (*.*)|*.*";
openDLG.Title = "Select an IPC2581 File to convert it in gerber274x";
if (openDLG.ShowDialog() != DialogResult.OK)
return;
if (!FilterIPC.Load(openDLG.FileName, tempDir, true))
{
System.Diagnostics.Debug.WriteLine("Error, check the PCBI error log!");
return;
}
//start converter with loaded job
ConvertODBToGerber("", globalOutputDirectory, window);
}
Hier finden Sie den Beispielcode in C#, VB und managed C++: