Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
908f6d93
Commit
908f6d93
authored
Aug 24, 2007
by
g_harland
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Option now provided for Gerber files to exclude contents of Edges Pcb layer
parent
c92e9e93
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
245 additions
and
187 deletions
+245
-187
change_log.txt
change_log.txt
+8
-0
pcbplot.cpp
pcbnew/pcbplot.cpp
+178
-153
pcbplot.h
pcbnew/pcbplot.h
+6
-0
plot_rtn.cpp
pcbnew/plot_rtn.cpp
+13
-10
plotgerb.cpp
pcbnew/plotgerb.cpp
+16
-10
plothpgl.cpp
pcbnew/plothpgl.cpp
+12
-7
plotps.cpp
pcbnew/plotps.cpp
+12
-7
No files found.
change_log.txt
View file @
908f6d93
...
...
@@ -5,6 +5,14 @@ Please add newer entries at the top, list the date and your name with
email address.
2007-Aug-24 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
A new option has now been provided which permits Gerber files to be generated
in which the contents of the Edges Pcb layer are not also included with the
contents of each other layer.
2007-Aug-23 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+ eeschema & pcbnew
...
...
pcbnew/pcbplot.cpp
View file @
908f6d93
...
...
@@ -16,12 +16,12 @@
#define PLOT_DEFAULT_MARGE 300 // mils
/
* variables locale : */
/
/ variables locale :
static
long
s_SelectedLayers
=
CUIVRE_LAYER
|
CMP_LAYER
|
SILKSCREEN_LAYER_CMP
|
SILKSCREEN_LAYER_CU
;
static
bool
s_PlotOriginIsAuxAxis
=
FALSE
;
/
* Routines Locales */
/
/ Routines Locales
enum
id_plotps
{
...
...
@@ -37,6 +37,7 @@ enum id_plotps
ID_SEL_PLOT_FORMAT
,
ID_SEL_GERBER_FORMAT
,
ID_SAVE_OPT_PLOT
,
ID_EXCLUDE_EDGES_PCB
,
ID_PRINT_REF
,
ID_PRINT_VALUE
,
ID_PRINT_MODULE_TEXTS
,
...
...
@@ -66,6 +67,7 @@ public:
wxCheckBox
*
m_PlotMirorOpt
;
wxCheckBox
*
m_PlotNoViaOnMaskOpt
;
wxCheckBox
*
m_HPGL_PlotCenter_Opt
;
wxCheckBox
*
m_Exclude_Edges_Pcb
;
wxCheckBox
*
m_Plot_Sheet_Ref
;
wxCheckBox
*
m_Plot_Invisible_Text
;
wxCheckBox
*
m_Plot_Text_Value
;
...
...
@@ -105,10 +107,11 @@ BEGIN_EVENT_TABLE(WinEDA_PlotFrame, wxDialog)
END_EVENT_TABLE
()
const
int
UNITS_MILS
=
1000
;
const
int
H_SIZE
=
640
;
const
int
V_SIZE
=
430
;
#define UNITS_MILS 1000
#define H_SIZE 640
#define V_SIZE 430
/********************************************************************/
WinEDA_PlotFrame
::
WinEDA_PlotFrame
(
WinEDA_BasePcbFrame
*
parent
)
:
wxDialog
(
parent
,
-
1
,
_
(
"Plot"
),
...
...
@@ -146,35 +149,35 @@ wxString fmtmsg[4] = { wxT("HPGL"), wxT("Gerber"), wxT("Postscript"), wxT("Posts
MidRightBoxSizer
->
Add
(
m_PlotFormatOpt
,
0
,
wxGROW
|
wxALL
,
5
);
switch
(
m_PlotFormat
)
{
case
PLOT_FORMAT_HPGL
:
m_PlotFormatOpt
->
SetSelection
(
0
);
break
;
case
PLOT_FORMAT_GERBER
:
m_PlotFormatOpt
->
SetSelection
(
1
);
break
;
default
:
// ( PLOT_FORMAT_POST or PLOT_FORMAT_POST_A4 )
// As m_PlotFormat is never set to a value of PLOT_FORMAT_POST_A4,
// use the value of g_ForcePlotPS_On_A4 to determine whether the
// "Postscript" or "Postscipt A4" radiobutton had been selected
// previously (and thus which button should be reselected now).
if
(
g_ForcePlotPS_On_A4
)
m_PlotFormatOpt
->
SetSelection
(
3
);
else
m_PlotFormatOpt
->
SetSelection
(
2
);
break
;
case
PLOT_FORMAT_HPGL
:
m_PlotFormatOpt
->
SetSelection
(
0
);
break
;
case
PLOT_FORMAT_GERBER
:
m_PlotFormatOpt
->
SetSelection
(
1
);
break
;
default
:
// ( PLOT_FORMAT_POST or PLOT_FORMAT_POST_A4 )
// As m_PlotFormat is never set to a value of PLOT_FORMAT_POST_A4,
// use the value of g_ForcePlotPS_On_A4 to determine whether the
// "Postscript" or "Postscipt A4" radiobutton had been selected
// previously (and thus which button should be reselected now).
if
(
g_ForcePlotPS_On_A4
)
m_PlotFormatOpt
->
SetSelection
(
3
);
else
m_PlotFormatOpt
->
SetSelection
(
2
);
break
;
}
/
* Creation des menus d'option du format GERBER */
/
/ Creation des menus d'option du format GERBER
m_GerbSpotSizeMinOpt
=
new
WinEDA_ValueCtrl
(
this
,
_
(
"Spot min"
),
spot_mini
,
g_UnitMetric
,
MidRightBoxSizer
,
UNITS_MILS
);
/
* Creation des menus d'option du format HPGL */
/
/ Creation des menus d'option du format HPGL
m_HPGLPenSizeOpt
=
new
WinEDA_ValueCtrl
(
this
,
_
(
"Pen Size"
),
g_HPGL_Pen_Diam
,
g_UnitMetric
,
MidRightBoxSizer
,
UNITS_MILS
);
/
* unites standards = cm pour vitesse plume en HPLG */
/
/ unites standards = cm pour vitesse plume en HPGL
m_HPGLPenSpeedOpt
=
new
WinEDA_ValueCtrl
(
this
,
_
(
"Pen Speed (cm/s)"
),
g_HPGL_Pen_Speed
,
CENTIMETRE
,
MidRightBoxSizer
,
1
);
m_HPGLPenSpeedOpt
->
SetToolTip
(
_
(
"Set pen speed in cm/s"
));
...
...
@@ -187,14 +190,15 @@ wxString fmtmsg[4] = { wxT("HPGL"), wxT("Gerber"), wxT("Postscript"), wxT("Posts
g_PlotLine_Width
,
g_UnitMetric
,
MidRightBoxSizer
,
PCB_INTERNAL_UNIT
);
m_LinesWidth
->
SetToolTip
(
_
(
"Set width for lines in Line plot mode"
));
/
* Create the right column commands */
/
/ Create the right column commands
wxString
choice_plot_offset_msg
[]
=
{
_
(
"Absolute"
),
_
(
"Auxiliary axis"
)};
m_Choice_Plot_Offset
=
new
wxRadioBox
(
this
,
ID_SEL_PLOT_OFFSET_OPTION
,
_
(
"Plot Origin"
),
wxDefaultPosition
,
wxSize
(
-
1
,
-
1
),
2
,
choice_plot_offset_msg
,
1
,
wxRA_SPECIFY_COLS
);
if
(
s_PlotOriginIsAuxAxis
)
m_Choice_Plot_Offset
->
SetSelection
(
1
);
if
(
s_PlotOriginIsAuxAxis
)
m_Choice_Plot_Offset
->
SetSelection
(
1
);
RightBoxSizer
->
Add
(
m_Choice_Plot_Offset
,
0
,
wxGROW
|
wxALL
,
5
);
/* Add a spacer for a better look */
RightBoxSizer
->
Add
(
5
,
5
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
20
);
...
...
@@ -216,10 +220,9 @@ wxString choice_plot_offset_msg[] =
Button
->
SetForegroundColour
(
wxColour
(
0
,
80
,
80
)
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
// Create scale adjust option
m_XScaleAdjust
=
m_YScaleAdjust
=
1.0
;
if
(
m_Parent
->
m_Parent
->
m_EDA_Config
)
if
(
m_Parent
->
m_Parent
->
m_EDA_Config
)
{
m_Parent
->
m_Parent
->
m_EDA_Config
->
Read
(
wxT
(
"PlotXFineScaleAdj"
),
&
m_XScaleAdjust
);
m_Parent
->
m_Parent
->
m_EDA_Config
->
Read
(
wxT
(
"PlotYFineScaleAdj"
),
&
m_YScaleAdjust
);
...
...
@@ -233,32 +236,41 @@ wxString choice_plot_offset_msg[] =
m_Plot_PS_Negative
->
SetValue
(
g_Plot_PS_Negative
);
RightBoxSizer
->
Add
(
m_Plot_PS_Negative
,
0
,
wxGROW
|
wxALL
,
5
);
/
* Creation de la liste des layers */
/
/ Creation de la liste des layers
int
mask
=
1
;
wxBoxSizer
*
OneColonLayerBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
LayersBoxSizer
->
Add
(
OneColonLayerBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
for
(
ii
=
0
;
ii
<
NB_LAYERS
;
ii
++
,
mask
<<=
1
)
{
if
(
ii
==
16
)
if
(
ii
==
16
)
{
OneColonLayerBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
LayersBoxSizer
->
Add
(
OneColonLayerBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
}
m_BoxSelecLayer
[
ii
]
=
new
wxCheckBox
(
this
,
-
1
,
ReturnPcbLayerName
(
ii
));
if
(
mask
&
s_SelectedLayers
)
m_BoxSelecLayer
[
ii
]
->
SetValue
(
true
);
m_BoxSelecLayer
[
ii
]
=
new
wxCheckBox
(
this
,
-
1
,
ReturnPcbLayerName
(
ii
));
if
(
mask
&
s_SelectedLayers
)
m_BoxSelecLayer
[
ii
]
->
SetValue
(
true
);
OneColonLayerBoxSizer
->
Add
(
m_BoxSelecLayer
[
ii
],
0
,
wxGROW
|
wxALL
,
1
);
}
// Option for excluding contents of "Edges Pcb" layer
m_Exclude_Edges_Pcb
=
new
wxCheckBox
(
this
,
ID_EXCLUDE_EDGES_PCB
,
_
(
"Exclude Edges Pcb layer"
)
);
m_Exclude_Edges_Pcb
->
SetValue
(
Exclude_Edges_Pcb
);
m_Exclude_Edges_Pcb
->
SetToolTip
(
_
(
"Exclude contents of Edges Pcb layer from all other layers"
)
);
LeftBoxSizer
->
Add
(
m_Exclude_Edges_Pcb
,
0
,
wxGROW
|
wxALL
,
1
);
// Option d'impression du cartouche:
if
(
m_Parent
->
m_Print_Sheet_Ref
)
if
(
m_Parent
->
m_Print_Sheet_Ref
)
{
m_Plot_Sheet_Ref
=
new
wxCheckBox
(
this
,
ID_PRINT_REF
,
_
(
"Print Sheet Ref"
)
);
m_Plot_Sheet_Ref
->
SetValue
(
Plot_Sheet_Ref
);
LeftBoxSizer
->
Add
(
m_Plot_Sheet_Ref
,
0
,
wxGROW
|
wxALL
,
1
);
}
else
Plot_Sheet_Ref
=
false
;
else
Plot_Sheet_Ref
=
false
;
// Option d'impression des pads sur toutes les couches
m_Plot_Pads_on_Silkscreen
=
new
wxCheckBox
(
this
,
...
...
@@ -349,20 +361,24 @@ wxCommandEvent event;
GetSizer
()
->
SetSizeHints
(
this
);
}
/***************************************************************/
void
WinEDA_PlotFrame
::
OnQuit
(
wxCommandEvent
&
WXUNUSED
(
event
))
/***************************************************************/
/* Called by the close button
*/
*/
{
Close
(
true
);
// true is to force the frame to close
}
/****************************************************/
void
WinEDA_PlotFrame
::
OnClose
(
wxCloseEvent
&
event
)
/****************************************************/
/* called when WinEDA_PlotFrame is closed
*/
/* Called when WinEDA_PlotFrame is closed
*/
{
EndModal
(
0
);
}
...
...
@@ -371,17 +387,20 @@ void WinEDA_PlotFrame::OnClose(wxCloseEvent & event)
/*********************************************************/
void
WinEDA_PlotFrame
::
CreateDrillFile
(
wxCommandEvent
&
event
)
/*********************************************************/
/* Create the board drill file used with gerber documents
*/
*/
{
((
WinEDA_PcbFrame
*
)
m_Parent
)
->
InstallDrillFrame
(
event
);
}
/*********************************************************/
void
WinEDA_PlotFrame
::
SetCommands
(
wxCommandEvent
&
event
)
/*********************************************************/
/* active ou dsactive les diffrents menus d'option selon le standard choisi
*/
*/
{
int
format
;
int
format_list
[]
=
...
...
@@ -390,76 +409,82 @@ int format_list[] =
format
=
format_list
[
m_PlotFormatOpt
->
GetSelection
()];
switch
(
format
)
{
case
PLOT_FORMAT_POST_A4
:
case
PLOT_FORMAT_POST
:
m_Drill_Shape_Opt
->
Enable
(
true
);
m_PlotModeOpt
->
Enable
(
true
);
m_PlotMirorOpt
->
Enable
(
true
);
m_GerbSpotSizeMinOpt
->
Enable
(
false
);
m_Choice_Plot_Offset
->
Enable
(
false
);
m_LinesWidth
->
Enable
(
true
);
m_HPGLPenSizeOpt
->
Enable
(
false
);
m_HPGLPenSpeedOpt
->
Enable
(
false
);
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_HPGL_PlotCenter_Opt
->
Enable
(
false
);
m_Plot_Sheet_Ref
->
Enable
(
true
);
m_Scale_Opt
->
Enable
(
true
);
m_FineAdjustXscaleOpt
->
Enable
(
true
);
m_FineAdjustYscaleOpt
->
Enable
(
true
);
m_PlotFormat
=
PLOT_FORMAT_POST
;
if
(
format
==
PLOT_FORMAT_POST_A4
)
g_ForcePlotPS_On_A4
=
true
;
else
g_ForcePlotPS_On_A4
=
false
;
m_Plot_PS_Negative
->
Enable
(
true
);
break
;
case
PLOT_FORMAT_GERBER
:
m_Drill_Shape_Opt
->
Enable
(
false
);
m_PlotModeOpt
->
Enable
(
false
);
m_PlotMirorOpt
->
Enable
(
false
);
m_GerbSpotSizeMinOpt
->
Enable
(
true
);
m_Choice_Plot_Offset
->
Enable
(
true
);
m_LinesWidth
->
Enable
(
true
);
m_HPGLPenSizeOpt
->
Enable
(
false
);
m_HPGLPenSpeedOpt
->
Enable
(
false
);
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_HPGL_PlotCenter_Opt
->
Enable
(
false
);
m_Plot_Sheet_Ref
->
Enable
(
false
);
m_Scale_Opt
->
Enable
(
false
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
m_FineAdjustYscaleOpt
->
Enable
(
false
);
m_PlotFormat
=
PLOT_FORMAT_GERBER
;
m_Plot_PS_Negative
->
Enable
(
false
);
break
;
case
PLOT_FORMAT_HPGL
:
m_PlotMirorOpt
->
Enable
(
true
);
m_Drill_Shape_Opt
->
Enable
(
false
);
m_PlotModeOpt
->
Enable
(
true
);
m_GerbSpotSizeMinOpt
->
Enable
(
false
);
m_Choice_Plot_Offset
->
Enable
(
false
);
m_LinesWidth
->
Enable
(
false
);
m_HPGLPenSizeOpt
->
Enable
(
true
);
m_HPGLPenSpeedOpt
->
Enable
(
true
);
m_HPGLPenOverlayOpt
->
Enable
(
true
);
m_HPGL_PlotCenter_Opt
->
Enable
(
true
);
m_Plot_Sheet_Ref
->
Enable
(
true
);
m_Scale_Opt
->
Enable
(
true
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
m_FineAdjustYscaleOpt
->
Enable
(
false
);
m_PlotFormat
=
PLOT_FORMAT_HPGL
;
m_Plot_PS_Negative
->
Enable
(
false
);
break
;
}
switch
(
format
)
{
case
PLOT_FORMAT_POST_A4
:
case
PLOT_FORMAT_POST
:
default
:
m_Drill_Shape_Opt
->
Enable
(
true
);
m_PlotModeOpt
->
Enable
(
true
);
m_PlotMirorOpt
->
Enable
(
true
);
m_GerbSpotSizeMinOpt
->
Enable
(
false
);
m_Choice_Plot_Offset
->
Enable
(
false
);
m_LinesWidth
->
Enable
(
true
);
m_HPGLPenSizeOpt
->
Enable
(
false
);
m_HPGLPenSpeedOpt
->
Enable
(
false
);
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_HPGL_PlotCenter_Opt
->
Enable
(
false
);
m_Exclude_Edges_Pcb
->
Enable
(
false
);
m_Plot_Sheet_Ref
->
Enable
(
true
);
m_Scale_Opt
->
Enable
(
true
);
m_FineAdjustXscaleOpt
->
Enable
(
true
);
m_FineAdjustYscaleOpt
->
Enable
(
true
);
m_PlotFormat
=
PLOT_FORMAT_POST
;
g_ForcePlotPS_On_A4
=
(
format
==
PLOT_FORMAT_POST_A4
);
m_Plot_PS_Negative
->
Enable
(
true
);
break
;
case
PLOT_FORMAT_GERBER
:
m_Drill_Shape_Opt
->
Enable
(
false
);
m_PlotModeOpt
->
Enable
(
false
);
m_PlotMirorOpt
->
Enable
(
false
);
m_GerbSpotSizeMinOpt
->
Enable
(
true
);
m_Choice_Plot_Offset
->
Enable
(
true
);
m_LinesWidth
->
Enable
(
true
);
m_HPGLPenSizeOpt
->
Enable
(
false
);
m_HPGLPenSpeedOpt
->
Enable
(
false
);
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_HPGL_PlotCenter_Opt
->
Enable
(
false
);
m_Exclude_Edges_Pcb
->
Enable
(
true
);
m_Plot_Sheet_Ref
->
Enable
(
false
);
m_Scale_Opt
->
Enable
(
false
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
m_FineAdjustYscaleOpt
->
Enable
(
false
);
m_PlotFormat
=
PLOT_FORMAT_GERBER
;
m_Plot_PS_Negative
->
Enable
(
false
);
break
;
case
PLOT_FORMAT_HPGL
:
m_PlotMirorOpt
->
Enable
(
true
);
m_Drill_Shape_Opt
->
Enable
(
false
);
m_PlotModeOpt
->
Enable
(
true
);
m_GerbSpotSizeMinOpt
->
Enable
(
false
);
m_Choice_Plot_Offset
->
Enable
(
false
);
m_LinesWidth
->
Enable
(
false
);
m_HPGLPenSizeOpt
->
Enable
(
true
);
m_HPGLPenSpeedOpt
->
Enable
(
true
);
m_HPGLPenOverlayOpt
->
Enable
(
true
);
m_HPGL_PlotCenter_Opt
->
Enable
(
true
);
m_Exclude_Edges_Pcb
->
Enable
(
false
);
m_Plot_Sheet_Ref
->
Enable
(
true
);
m_Scale_Opt
->
Enable
(
true
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
m_FineAdjustYscaleOpt
->
Enable
(
false
);
m_PlotFormat
=
PLOT_FORMAT_HPGL
;
m_Plot_PS_Negative
->
Enable
(
false
);
break
;
}
format_plot
=
m_PlotFormat
;
}
/*********************************************************/
void
WinEDA_PlotFrame
::
SaveOptPlot
(
wxCommandEvent
&
event
)
/*********************************************************/
{
if
(
m_Plot_Sheet_Ref
)
Exclude_Edges_Pcb
=
m_Exclude_Edges_Pcb
->
GetValue
();
if
(
m_Plot_Sheet_Ref
)
Plot_Sheet_Ref
=
m_Plot_Sheet_Ref
->
GetValue
();
PlotPadsOnSilkLayer
=
m_Plot_Pads_on_Silkscreen
->
GetValue
();
...
...
@@ -475,8 +500,10 @@ void WinEDA_PlotFrame::SaveOptPlot(wxCommandEvent & event)
g_PlotScaleOpt
=
m_Scale_Opt
->
GetSelection
();
g_DrillShapeOpt
=
m_Drill_Shape_Opt
->
GetSelection
();
Plot_Set_MIROIR
=
m_PlotMirorOpt
->
GetValue
();
if
(
Plot_Set_MIROIR
)
g_PlotOrient
=
PLOT_MIROIR
;
else
g_PlotOrient
=
0
;
if
(
Plot_Set_MIROIR
)
g_PlotOrient
=
PLOT_MIROIR
;
else
g_PlotOrient
=
0
;
Plot_Mode
=
m_PlotModeOpt
->
GetSelection
();
g_DrawViaOnMaskLayer
=
m_PlotNoViaOnMaskOpt
->
GetValue
();
spot_mini
=
m_GerbSpotSizeMinOpt
->
GetValue
();
...
...
@@ -488,7 +515,8 @@ void WinEDA_PlotFrame::SaveOptPlot(wxCommandEvent & event)
m_XScaleAdjust
=
m_FineAdjustXscaleOpt
->
GetValue
();
m_YScaleAdjust
=
m_FineAdjustYscaleOpt
->
GetValue
();
if
(
m_Parent
->
m_Parent
->
m_EDA_Config
)
if
(
m_Parent
->
m_Parent
->
m_EDA_Config
)
{
m_Parent
->
m_Parent
->
m_EDA_Config
->
Write
(
wxT
(
"PlotXFineScaleAdj"
),
m_XScaleAdjust
);
m_Parent
->
m_Parent
->
m_EDA_Config
->
Write
(
wxT
(
"PlotYFineScaleAdj"
),
m_YScaleAdjust
);
...
...
@@ -497,6 +525,7 @@ void WinEDA_PlotFrame::SaveOptPlot(wxCommandEvent & event)
g_Plot_PS_Negative
=
m_Plot_PS_Negative
->
GetValue
();
}
/***************************************************/
void
WinEDA_PlotFrame
::
Plot
(
wxCommandEvent
&
event
)
/***************************************************/
...
...
@@ -507,75 +536,72 @@ wxString ext;
SaveOptPlot
(
event
);
switch
(
g_PlotScaleOpt
)
{
default
:
Scale_X
=
Scale_Y
=
1
;
break
;
case
2
:
Scale_X
=
Scale_Y
=
1.5
;
break
;
switch
(
g_PlotScaleOpt
)
{
default
:
Scale_X
=
Scale_Y
=
1
;
break
;
case
3
:
Scale_X
=
Scale_Y
=
2
;
break
;
case
2
:
Scale_X
=
Scale_Y
=
1.5
;
break
;
case
4
:
Scale_X
=
Scale_Y
=
3
;
break
;
case
3
:
Scale_X
=
Scale_Y
=
2
;
break
;
}
case
4
:
Scale_X
=
Scale_Y
=
3
;
break
;
}
Scale_X
*=
m_XScaleAdjust
;
Scale_Y
*=
m_YScaleAdjust
;
Scale_X
*=
m_XScaleAdjust
;
Scale_Y
*=
m_YScaleAdjust
;
BaseFileName
=
m_Parent
->
GetScreen
()
->
m_FileName
;
ChangeFileNameExt
(
BaseFileName
,
wxT
(
"-"
)
);
switch
(
m_PlotFormat
)
{
case
PLOT_FORMAT_POST
:
ext
=
wxT
(
".ps"
);
break
;
switch
(
m_PlotFormat
)
{
case
PLOT_FORMAT_POST
:
ext
=
wxT
(
".ps"
);
break
;
case
PLOT_FORMAT_GERBER
:
ext
=
wxT
(
".pho"
);
break
;
case
PLOT_FORMAT_GERBER
:
ext
=
wxT
(
".pho"
);
break
;
case
PLOT_FORMAT_HPGL
:
ext
=
wxT
(
".plt"
);
break
;
}
case
PLOT_FORMAT_HPGL
:
ext
=
wxT
(
".plt"
);
break
;
}
int
mask
=
1
;
s_SelectedLayers
=
0
;
for
(
layer_to_plot
=
0
;
layer_to_plot
<
29
;
layer_to_plot
++
,
mask
<<=
1
)
for
(
layer_to_plot
=
0
;
layer_to_plot
<
29
;
layer_to_plot
++
,
mask
<<=
1
)
{
if
(
m_BoxSelecLayer
[
layer_to_plot
]
->
GetValue
()
)
if
(
m_BoxSelecLayer
[
layer_to_plot
]
->
GetValue
()
)
{
s_SelectedLayers
|=
mask
;
/
* Calcul du nom du fichier */
/
/ Calcul du nom du fichier
FullFileName
=
BaseFileName
+
ReturnPcbLayerName
(
layer_to_plot
,
true
)
+
ext
;
switch
(
m_PlotFormat
)
{
case
PLOT_FORMAT_POST
:
m_Parent
->
Genere_PS
(
FullFileName
,
layer_to_plot
);
break
;
case
PLOT_FORMAT_POST
:
m_Parent
->
Genere_PS
(
FullFileName
,
layer_to_plot
);
break
;
case
PLOT_FORMAT_GERBER
:
m_Parent
->
Genere_GERBER
(
FullFileName
,
layer_to_plot
,
s_PlotOriginIsAuxAxis
);
break
;
case
PLOT_FORMAT_HPGL
:
m_Parent
->
Genere_HPGL
(
FullFileName
,
layer_to_plot
);
break
;
case
PLOT_FORMAT_GERBER
:
m_Parent
->
Genere_GERBER
(
FullFileName
,
layer_to_plot
,
s_PlotOriginIsAuxAxis
);
break
;
case
PLOT_FORMAT_HPGL
:
m_Parent
->
Genere_HPGL
(
FullFileName
,
layer_to_plot
);
break
;
}
}
}
// Close(true);
}
...
...
@@ -588,4 +614,3 @@ void WinEDA_BasePcbFrame::ToPlotter(wxCommandEvent& event)
frame
->
ShowModal
();
frame
->
Destroy
();
}
pcbnew/pcbplot.h
View file @
908f6d93
...
...
@@ -18,6 +18,11 @@
#define SCALE_HPGL 0.102041
/* Options : */
eda_global
bool
Exclude_Edges_Pcb
// True to exclude contents of Edges Pcb layer
#ifdef MAIN
=
TRUE
#endif
;
eda_global
bool
Plot_Sheet_Ref
;
eda_global
bool
g_DrawViaOnMaskLayer
;
// True if vias are drawn on Mask layer (ie protected by mask)
eda_global
int
Plot_Mode
// = FILAIRE, FILL ou SKETCH
...
...
@@ -190,3 +195,4 @@ void trace_1_pad_TRAPEZE_POST(wxPoint centre, wxSize size, wxSize delta,
#endif
/* #define PCBPLOT_H */
pcbnew/plot_rtn.cpp
View file @
908f6d93
...
...
@@ -47,23 +47,24 @@ wxString msg;
switch
(
PtStruct
->
m_StructType
)
{
case
TYPEDRAWSEGMENT
:
PlotDrawSegment
(
(
DRAWSEGMENT
*
)
PtStruct
,
format_plot
,
EDGE_LAYER
|
masque_layer
);
PlotDrawSegment
(
(
DRAWSEGMENT
*
)
PtStruct
,
format_plot
,
masque_layer
);
// (Following line has been superceded by new commands elsewhere.)
// EDGE_LAYER | masque_layer );
break
;
case
TYPETEXTE
:
PlotTextePcb
(
(
TEXTE_PCB
*
)
PtStruct
,
format_plot
,
EDGE_LAYER
|
masque_layer
);
PlotTextePcb
(
(
TEXTE_PCB
*
)
PtStruct
,
format_plot
,
masque_layer
);
// EDGE_LAYER | masque_layer
);
break
;
case
TYPECOTATION
:
PlotCotation
(
(
COTATION
*
)
PtStruct
,
format_plot
,
EDGE_LAYER
|
masque_layer
);
PlotCotation
(
(
COTATION
*
)
PtStruct
,
format_plot
,
masque_layer
);
// EDGE_LAYER | masque_layer
);
break
;
case
TYPEMIRE
:
PlotMirePcb
(
(
MIREPCB
*
)
PtStruct
,
format_plot
,
EDGE_LAYER
|
masque_layer
);
PlotMirePcb
(
(
MIREPCB
*
)
PtStruct
,
format_plot
,
masque_layer
);
// EDGE_LAYER | masque_layer
);
break
;
case
TYPEMARQUEUR
:
...
...
@@ -285,7 +286,8 @@ DRAWSEGMENT *DrawTmp;
DrawTmp
=
new
DRAWSEGMENT
(
NULL
);
masque_layer
|=
EDGE_LAYER
;
// (Following command has been superceded by new commands elsewhere.)
// masque_layer |= EDGE_LAYER;
DrawTmp
->
m_Width
=
Cotation
->
m_Width
;
DrawTmp
->
SetLayer
(
Cotation
->
GetLayer
()
);
...
...
@@ -334,7 +336,8 @@ int dx1,dx2, dy1, dy2, rayon;
DrawTmp
=
new
DRAWSEGMENT
(
NULL
);
masque_layer
|=
EDGE_LAYER
;
// (Following command has been superceded by new commands elsewhere.)
// masque_layer |= EDGE_LAYER;
DrawTmp
->
m_Width
=
Mire
->
m_Width
;
DrawTmp
->
SetLayer
(
Mire
->
GetLayer
()
);
...
...
pcbnew/plotgerb.cpp
View file @
908f6d93
...
...
@@ -87,6 +87,11 @@ int tracevia = 1;
nb_plot_erreur
=
0
;
int
layer_mask
=
g_TabOneLayerMask
[
Layer
];
// Specify that the contents of the "Edges Pcb" layer are also to be
// plotted, unless the option of excluding that layer has been selected.
if
(
!
Exclude_Edges_Pcb
)
layer_mask
|=
EDGE_LAYER
;
switch
(
Layer
)
{
case
CUIVRE_N
:
...
...
@@ -105,7 +110,7 @@ int tracevia = 1;
case
LAYER_N_14
:
case
LAYER_N_15
:
case
CMP_N
:
Plot_Layer_GERBER
(
dest
,
layer_mask
,
0
,
1
);
Plot_Layer_GERBER
(
dest
,
layer_mask
,
0
,
1
);
break
;
case
SOLDERMASK_N_CU
:
...
...
@@ -121,7 +126,7 @@ int tracevia = 1;
break
;
default
:
Plot_Serigraphie
(
PLOT_FORMAT_GERBER
,
dest
,
layer_mask
);
Plot_Serigraphie
(
PLOT_FORMAT_GERBER
,
dest
,
layer_mask
);
break
;
}
...
...
@@ -145,7 +150,8 @@ TRACK * track ;
EDA_BaseStruct
*
PtStruct
;
wxString
msg
;
masque_layer
|=
EDGE_LAYER
;
/* Les elements de la couche EDGE sont tj traces */
// (Following command has been superceded by new command on lines 92 and 93.)
// masque_layer |= EDGE_LAYER; /* Les elements de la couche EDGE sont tj traces */
/* trace des elements type Drawings Pcb : */
PtStruct
=
m_Pcb
->
m_Drawings
;
...
...
@@ -155,22 +161,22 @@ wxString msg;
{
case
TYPEDRAWSEGMENT
:
PlotDrawSegment
(
(
DRAWSEGMENT
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
masque_layer
);
break
;
case
TYPETEXTE
:
PlotTextePcb
(
(
TEXTE_PCB
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
PlotTextePcb
(
(
TEXTE_PCB
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
break
;
case
TYPECOTATION
:
PlotCotation
((
COTATION
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
PlotCotation
(
(
COTATION
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
break
;
case
TYPEMIRE
:
PlotMirePcb
((
MIREPCB
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
PlotMirePcb
(
(
MIREPCB
*
)
PtStruct
,
PLOT_FORMAT_GERBER
,
masque_layer
);
break
;
case
TYPEMARQUEUR
:
...
...
pcbnew/plothpgl.cpp
View file @
908f6d93
...
...
@@ -48,7 +48,7 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
// Compute pen_dim (from g_HPGL_Pen_Diam in mils) in pcb units,
// with plot scale (if Scale is 2, pen diametre is always g_HPGL_Pen_Diam
// so apparent pen diam is real pen diam / Scale
pen_diam
=
(
int
)
round
(
(
g_HPGL_Pen_Diam
*
10.0
)
/
Scale_X
);
// Assume Scale_X # Scale_Y
pen_diam
=
(
int
)
round
(
(
g_HPGL_Pen_Diam
*
U_PCB
)
/
Scale_X
);
// Assume Scale_X # Scale_Y
pen_rayon
=
pen_diam
/
2
;
nb_plot_erreur
=
0
;
...
...
@@ -130,6 +130,10 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
InitPlotParametresHPGL
(
g_PlotOffset
,
scale_x
,
scale_y
,
g_PlotOrient
);
// Specify that the contents of the "Edges Pcb" layer are to be plotted
// in addition to the contents of the currently specified layer.
int
layer_mask
=
g_TabOneLayerMask
[
Layer
]
|
EDGE_LAYER
;
switch
(
Layer
)
{
case
CUIVRE_N
:
...
...
@@ -148,12 +152,12 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
case
LAYER_N_14
:
case
LAYER_N_15
:
case
CMP_N
:
Plot_Layer_HPGL
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
0
,
1
,
modetrace
);
Plot_Layer_HPGL
(
dest
,
layer_mask
,
0
,
1
,
modetrace
);
break
;
case
SILKSCREEN_N_CU
:
case
SILKSCREEN_N_CMP
:
Plot_Serigraphie
(
PLOT_FORMAT_HPGL
,
dest
,
g_TabOneLayerMask
[
Layer
]
);
Plot_Serigraphie
(
PLOT_FORMAT_HPGL
,
dest
,
layer_mask
);
break
;
case
SOLDERMASK_N_CU
:
...
...
@@ -164,18 +168,18 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
tracevia
=
1
;
else
tracevia
=
0
;
Plot_Layer_HPGL
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
Plot_Layer_HPGL
(
dest
,
layer_mask
,
g_DesignSettings
.
m_MaskMargin
,
tracevia
,
modetrace
);
}
break
;
case
SOLDERPASTE_N_CU
:
case
SOLDERPASTE_N_CMP
:
/* Trace du masque de pate de soudure */
Plot_Layer_HPGL
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
0
,
0
,
modetrace
);
Plot_Layer_HPGL
(
dest
,
layer_mask
,
0
,
0
,
modetrace
);
break
;
default
:
/* Trace des autres couches (dessin, adhesives,eco,comment) */
Plot_Serigraphie
(
PLOT_FORMAT_HPGL
,
dest
,
g_TabOneLayerMask
[
Layer
]
);
Plot_Serigraphie
(
PLOT_FORMAT_HPGL
,
dest
,
layer_mask
);
break
;
}
...
...
@@ -202,7 +206,8 @@ void WinEDA_BasePcbFrame::Plot_Layer_HPGL( FILE* File, int masque_layer,
BOARD_ITEM
*
PtStruct
;
wxString
msg
;
masque_layer
|=
EDGE_LAYER
;
/* Les elements de la couche EDGE sont tj traces */
// (Following command has been superceded by new command on line 135.)
// masque_layer |= EDGE_LAYER; /* Les elements de la couche EDGE sont tj traces */
/* trace des elements type Drawings Pcb : */
PtStruct
=
m_Pcb
->
m_Drawings
;
...
...
pcbnew/plotps.cpp
View file @
908f6d93
...
...
@@ -168,10 +168,14 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer )
SetColorMapPS
(
WHITE
);
}
// Specify that the contents of the "Edges Pcb" layer are to be plotted
// in addition to the contents of the currently specified layer.
int
layer_mask
=
g_TabOneLayerMask
[
Layer
]
|
EDGE_LAYER
;
switch
(
Layer
)
{
case
-
1
:
Plot_Layer_PS
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
0
,
1
,
modetrace
);
Plot_Layer_PS
(
dest
,
layer_mask
,
0
,
1
,
modetrace
);
break
;
case
CUIVRE_N
:
...
...
@@ -190,12 +194,12 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer )
case
LAYER_N_14
:
case
LAYER_N_15
:
case
CMP_N
:
Plot_Layer_PS
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
0
,
1
,
modetrace
);
Plot_Layer_PS
(
dest
,
layer_mask
,
0
,
1
,
modetrace
);
break
;
case
SILKSCREEN_N_CU
:
case
SILKSCREEN_N_CMP
:
Plot_Serigraphie
(
PLOT_FORMAT_POST
,
dest
,
g_TabOneLayerMask
[
Layer
]
);
Plot_Serigraphie
(
PLOT_FORMAT_POST
,
dest
,
layer_mask
);
break
;
case
SOLDERMASK_N_CU
:
...
...
@@ -204,17 +208,17 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer )
tracevia
=
1
;
else
tracevia
=
0
;
Plot_Layer_PS
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
g_DesignSettings
.
m_MaskMargin
,
Plot_Layer_PS
(
dest
,
layer_mask
,
g_DesignSettings
.
m_MaskMargin
,
tracevia
,
modetrace
);
break
;
case
SOLDERPASTE_N_CU
:
case
SOLDERPASTE_N_CMP
:
// Trace du masque de pate de soudure
Plot_Layer_PS
(
dest
,
g_TabOneLayerMask
[
Layer
]
,
0
,
0
,
modetrace
);
Plot_Layer_PS
(
dest
,
layer_mask
,
0
,
0
,
modetrace
);
break
;
default
:
Plot_Serigraphie
(
PLOT_FORMAT_POST
,
dest
,
g_TabOneLayerMask
[
Layer
]
);
Plot_Serigraphie
(
PLOT_FORMAT_POST
,
dest
,
layer_mask
);
break
;
}
...
...
@@ -240,7 +244,8 @@ void WinEDA_BasePcbFrame::Plot_Layer_PS( FILE* File, int masque_layer,
BOARD_ITEM
*
PtStruct
;
wxString
msg
;
masque_layer
|=
EDGE_LAYER
;
// Les elements de la couche EDGE sont tj traces
// (Following command has been superceded by new command on line 173.)
// masque_layer |= EDGE_LAYER; // Les elements de la couche EDGE sont tj traces
// trace des elements type Drawings Pcb :
PtStruct
=
m_Pcb
->
m_Drawings
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment