Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
using GerberLibrary;
using GerberLibrary.Core;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PnP_Processor
{
public partial class Actions : WeifenLuo.WinFormsUI.Docking.DockContent
{
public string GetReg(string name)
{
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("TiNRS_PnP_Proc");
var res = key.GetValue(name) as string;
key.Close();
return (res!=null)?res:"";
}
public bool GetRegBool(string name)
{
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("TiNRS_PnP_Proc");
var res = key.GetValue(name) as string;
key.Close();
return (res != null) ? (res=="true"):false;
}
public void SetReg(string name, string value)
{
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("TiNRS_PnP_Proc");
key.SetValue(name, value);
key.Close();
}
public void SetRegBool(string name, bool value)
{
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("TiNRS_PnP_Proc");
key.SetValue(name, value ? "true" : "false");
key.Close();
}
public PnPMain pnp;
bool blocksave = false;
public Actions(PnPMain parent)
{
InitializeComponent();
blocksave = true;
stockbox.Text = GetReg("StockFile");
pnpbox.Text = GetReg("PnPFile");
bombox.Text = GetReg("BOMFile");
gerberzipbox.Text = GetReg("GerberZip");
topsilk.Checked = GetRegBool("topsilkvisible");
bottomsilk.Checked = GetRegBool("bottomsilkvisible");
string fmode = GetReg("flipmode");
int idx = FlipModeBox.Items.IndexOf(fmode);
if (idx <= 0) idx = 0;
FlipModeBox.SelectedIndex = idx;
blocksave = false;
pnp = parent;
pnp.flipboard = MakeFlipMode(FlipModeBox.SelectedItem);
pnp.topsilkvisible = topsilk.Checked;
pnp.bottomsilkvisible = bottomsilk.Checked;
}
private PnPProcDoc.FlipMode MakeFlipMode(object selectedItem)
{
var s = selectedItem as string;
if (s == null) return PnPProcDoc.FlipMode.NoFlip;
switch(s)
{
case "None":
return PnPProcDoc.FlipMode.NoFlip;
case "Diagonal":
return PnPProcDoc.FlipMode.FlipDiagonal;
case "Horizontal":
return PnPProcDoc.FlipMode.FlipHorizontal;
}
return PnPProcDoc.FlipMode.NoFlip;
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = GetReg("lastfolder");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
bombox.Text = openFileDialog1.FileName;
SaveRegs();
}
}
private void button2_Click(object sender, EventArgs e)
{
// rotate 90
pnp.Rotate();
}
internal void RefreshDisplay()
{
pictureBox2.Invalidate();
pictureBox1.Invalidate();
}
private void button3_Click(object sender, EventArgs e)
{
// switch sides
pnp.Flip();
}
private void selectpnp_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = GetReg("lastfolder");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pnpbox.Text = openFileDialog1.FileName;
SaveRegs();
}
}
private void selectstock_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = GetReg("lastfolder");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
stockbox.Text = openFileDialog1.FileName;
SaveRegs();
}
}
public void SaveRegs()
{
if (blocksave) return;
SetReg("lastfolder", Path.GetDirectoryName(openFileDialog1.FileName));
SetReg("StockFile", stockbox.Text);
SetReg("PnPFile", pnpbox.Text);
SetReg("BOMFile", bombox.Text);
SetReg("GerberZip", gerberzipbox.Text);
SetReg("diprotate", diprotatefile.Text);
}
private void gerberzipbutton_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = GetReg("lastfolder");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
gerberzipbox.Text = openFileDialog1.FileName;
SaveRegs();
}
}
private void gerberzipbox_TextChanged(object sender, EventArgs e)
{
SaveRegs();
}
private void silkbox_TextChanged(object sender, EventArgs e)
{
SaveRegs();
}
private void outlinebox_TextChanged(object sender, EventArgs e)
{
SaveRegs();
}
private void stockbox_TextChanged(object sender, EventArgs e)
{
SaveRegs();
}
private void pnpbox_TextChanged(object sender, EventArgs e)
{
SaveRegs();
}
private void bombox_TextChanged(object sender, EventArgs e)
{
SaveRegs();
}
private void ProcessButton_Click(object sender, EventArgs e)
{
var d = new PnPProcDoc()
{
stock = stockbox.Text,
pnp = pnpbox.Text,
bom = bombox.Text,
gerberzip = gerberzipbox.Text,
loaded = false
};
pnp.AddDoc(d);
}
private void topsilk_CheckedChanged(object sender, EventArgs e)
{
if (blocksave) return;
SetRegBool("topsilkvisible", topsilk.Checked);
pnp.topsilkvisible = topsilk.Checked;
pnp.UpdateBoard(null);
}
private void bottomsilk_CheckedChanged(object sender, EventArgs e)
{
if (blocksave) return;
SetRegBool("bottomsilkvisible", bottomsilk.Checked);
pnp.bottomsilkvisible = bottomsilk.Checked;
pnp.UpdateBoard(null);
}
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
var G = e.Graphics;
var P = pictureBox2;
Bounds TheBox = new Bounds();
TheBox.FitPoint(-10, -10);
TheBox.FitPoint(10, 10);
var Bb = TheBox;
G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
G.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
G.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
if (pnp.ActiveDoc == null) return;
var D = pnp.ActiveDoc;
float S = Helpers.SetupMatrixForExtends(G, P, Bb, 2);
Pen Ppp = new Pen(Color.FromArgb(30, 0, 0, 255), 1.0f / S);
Pen Ppp2 = new Pen(Color.FromArgb(50, 0, 0, 255), 1.0f / S);
e.Graphics.Clear(Color.FromArgb(220, 220, 210));
for (int i = -10; i <= 10; i++)
{
var theP = Ppp;
if (i % 5 == 0)
{
theP = Ppp2;
}
e.Graphics.DrawLine(theP, -10, i, 10, i);
e.Graphics.DrawLine(theP, i, -10, i, 10);
}
if (pnp.selectedrefdes.Count > 0)
{
var BomEntry = D.B.GetBOMEntry(pnp.selectedrefdes[0]);
if (BomEntry != null) BOM.RenderPackage(G, 0, 0, 0, BomEntry.PackageName, BoardSide.Top);
}
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
var G = e.Graphics;
var P = pictureBox2;
Bounds TheBox = new Bounds();
TheBox.FitPoint(-10, -10);
TheBox.FitPoint(10, 10);
var Bb = TheBox;
G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
G.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
G.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
if (pnp.ActiveDoc == null) return;
var D = pnp.ActiveDoc;
float S = Helpers.SetupMatrixForExtends(G, P, Bb, 2);
Pen Ppp = new Pen(Color.FromArgb(30, 0, 0, 255), 1.0f / S);
Pen Ppp2 = new Pen(Color.FromArgb(50, 0, 0, 255), 1.0f / S);
e.Graphics.Clear(Color.FromArgb(220,220,210));
for (int i = -10; i <= 10; i++)
{
var theP = Ppp;
if (i % 5 == 0)
{
theP = Ppp2;
}
e.Graphics.DrawLine(theP, -10, i, 10, i);
e.Graphics.DrawLine(theP, i, -10, i, 10);
}
if (pnp.selectedrefdes.Count > 0)
{
var BomEntry = D.B.GetBOMEntry(pnp.selectedrefdes[0]);
if (BomEntry != null)
{
BOM.RenderPackage(G, 0, 0, 0, BomEntry.PackageName, BoardSide.Top);
}
}
}
private void pictureBox2_Resize(object sender, EventArgs e)
{
pictureBox2.Invalidate();
}
private void pictureBox1_Resize(object sender, EventArgs e)
{
pictureBox1.Invalidate();
}
private void diprotatebutton_click(object sender, EventArgs e)
{
SaveRegs();
}
private void FlipModeBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (blocksave) return;
SetReg("flipmode", FlipModeBox.SelectedItem as string);
pnp.flipboard = MakeFlipMode(FlipModeBox.SelectedItem);
pnp.RebuildPost();
}
}
}
5203ce801This file is pinned to the selected release. Download the original to open it in your design tool.