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
e9f557e6
Commit
e9f557e6
authored
Dec 11, 2010
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pcbnew plot functions: code cleanup, coding policy fixes and minor enhancements
parent
dd5386db
Changes
23
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
318 additions
and
317 deletions
+318
-317
build_version.cpp
common/build_version.cpp
+1
-1
class_plotter.cpp
common/class_plotter.cpp
+2
-2
common_plotDXF_functions.cpp
common/common_plotDXF_functions.cpp
+3
-4
common_plotGERBER_functions.cpp
common/common_plotGERBER_functions.cpp
+4
-5
common_plotHPGL_functions.cpp
common/common_plotHPGL_functions.cpp
+4
-4
common_plotPS_functions.cpp
common/common_plotPS_functions.cpp
+4
-4
plot_common.h
include/plot_common.h
+40
-44
dialog_gendrill.cpp
pcbnew/dialogs/dialog_gendrill.cpp
+4
-4
dialog_plot_base.cpp
pcbnew/dialogs/dialog_plot_base.cpp
+5
-5
dialog_plot_base.fbp
pcbnew/dialogs/dialog_plot_base.fbp
+2
-2
dialog_plot_base.h
pcbnew/dialogs/dialog_plot_base.h
+2
-2
dialog_print_for_modedit.cpp
pcbnew/dialogs/dialog_print_for_modedit.cpp
+3
-3
dialog_print_using_printer.cpp
pcbnew/dialogs/dialog_print_using_printer.cpp
+3
-3
gen_drill_report_files.cpp
pcbnew/gen_drill_report_files.cpp
+2
-4
pcbnew_config.cpp
pcbnew/pcbnew_config.cpp
+23
-16
pcbplot.cpp
pcbnew/pcbplot.cpp
+121
-121
pcbplot.h
pcbnew/pcbplot.h
+37
-31
plot_rtn.cpp
pcbnew/plot_rtn.cpp
+17
-20
plotdxf.cpp
pcbnew/plotdxf.cpp
+1
-1
plotgerb.cpp
pcbnew/plotgerb.cpp
+4
-4
plothpgl.cpp
pcbnew/plothpgl.cpp
+21
-22
plotps.cpp
pcbnew/plotps.cpp
+13
-13
version.txt
version.txt
+2
-2
No files found.
common/build_version.cpp
View file @
e9f557e6
...
...
@@ -6,7 +6,7 @@
#endif
#ifndef KICAD_BUILD_VERSION
#define KICAD_BUILD_VERSION "(2010-
04-19 BZR 23
xx)"
#define KICAD_BUILD_VERSION "(2010-
12-10 BZR 26
xx)"
#endif
//#define VERSION_STABILITY "stable"
...
...
common/class_plotter.cpp
View file @
e9f557e6
...
...
@@ -28,7 +28,7 @@ PLOTTER::PLOTTER( PlotFormat aPlotType )
default_pen_width
=
0
;
current_pen_width
=
-
1
;
/* To-be-set marker */
pen_state
=
'Z'
;
/* End-of-path idle */
plot
_orient_options
=
0
;
/* Mirror flag */
plot
Mirror
=
0
;
/* Mirror flag */
output_file
=
0
;
color_mode
=
false
;
/* Start as a BW plot */
negative_mode
=
false
;
...
...
@@ -43,7 +43,7 @@ void PLOTTER::user_to_device_coordinates( wxPoint& pos )
{
pos
.
x
=
(
int
)
(
(
pos
.
x
-
plot_offset
.
x
)
*
plot_scale
*
device_scale
);
if
(
plot
_orient_options
==
PLOT_MIROIR
)
if
(
plot
Mirror
)
pos
.
y
=
(
int
)
(
(
pos
.
y
-
plot_offset
.
y
)
*
plot_scale
*
device_scale
);
else
pos
.
y
=
(
int
)
(
(
paper_size
.
y
-
(
pos
.
y
-
plot_offset
.
y
)
...
...
common/common_plotDXF_functions.cpp
View file @
e9f557e6
...
...
@@ -14,15 +14,14 @@
/* Set the plot offset for the current plotting
*/
void
DXF_PLOTTER
::
set_viewport
(
wxPoint
offset
,
double
aScale
,
int
orient
)
void
DXF_PLOTTER
::
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
)
{
wxASSERT
(
!
output_file
);
plot_offset
=
o
ffset
;
plot_offset
=
aO
ffset
;
plot_scale
=
aScale
;
device_scale
=
1
;
set_default_line_width
(
0
);
/* No line width on DXF */
plot
_orient_options
=
0
;
/* No mirroring on DXF */
plot
Mirror
=
false
;
/* No mirroring on DXF */
current_color
=
BLACK
;
}
...
...
common/common_plotGERBER_functions.cpp
View file @
e9f557e6
...
...
@@ -21,13 +21,12 @@
* @param aOffset = plot offset
* @param aScale = coordinate scale (scale coefficient for coordinates)
*/
void
GERBER_PLOTTER
::
set_viewport
(
wxPoint
offset
,
double
aScale
,
int
orient
)
void
GERBER_PLOTTER
::
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
)
{
wxASSERT
(
!
output_file
);
wxASSERT
(
orient
==
0
);
plot
_orient_options
=
0
;
plot_offset
=
o
ffset
;
wxASSERT
(
aMirror
==
false
);
plot
Mirror
=
false
;
plot_offset
=
aO
ffset
;
wxASSERT
(
aScale
==
1
);
plot_scale
=
1
;
device_scale
=
1
;
...
...
common/common_plotHPGL_functions.cpp
View file @
e9f557e6
...
...
@@ -17,14 +17,14 @@ const double SCALE_HPGL = 0.102041;
/* Set the plot offset for the current plotting
*/
void
HPGL_PLOTTER
::
set_viewport
(
wxPoint
offset
,
double
aScale
,
int
orient
)
void
HPGL_PLOTTER
::
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
)
{
wxASSERT
(
!
output_file
);
plot_offset
=
o
ffset
;
plot_offset
=
aO
ffset
;
plot_scale
=
aScale
;
device_scale
=
SCALE_HPGL
;
set_default_line_width
(
100
);
/* default line width in 1 / 1000 inch */
plot
_orient_options
=
orient
;
plot
Mirror
=
aMirror
;
}
...
...
@@ -213,7 +213,7 @@ void HPGL_PLOTTER::arc( wxPoint centre, int StAngle, int EndAngle, int rayon,
cpos
=
centre
;
user_to_device_coordinates
(
cpos
);
if
(
plot
_orient_options
==
PLOT_MIROIR
)
if
(
plot
Mirror
)
angle
=
(
StAngle
-
EndAngle
)
/
10.0
;
else
angle
=
(
EndAngle
-
StAngle
)
/
10.0
;
...
...
common/common_plotPS_functions.cpp
View file @
e9f557e6
...
...
@@ -13,11 +13,11 @@
/* Set the plot offset for the current plotting */
void
PS_PLOTTER
::
set_viewport
(
wxPoint
offset
,
double
aScale
,
int
orient
)
void
PS_PLOTTER
::
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
)
{
wxASSERT
(
!
output_file
);
plot
_orient_options
=
orient
;
plot_offset
=
o
ffset
;
plot
Mirror
=
aMirror
;
plot_offset
=
aO
ffset
;
plot_scale
=
aScale
;
device_scale
=
1
;
/* PS references in decimals */
set_default_line_width
(
100
);
/* default line width in 1/1000 inch */
...
...
@@ -157,7 +157,7 @@ void PS_PLOTTER::arc( wxPoint centre, int StAngle, int EndAngle, int radius,
// Calculate start point.
user_to_device_coordinates
(
centre
);
radius
=
wxRound
(
user_to_device_size
(
radius
)
);
if
(
plot
_orient_options
==
PLOT_MIROIR
)
if
(
plot
Mirror
)
fprintf
(
output_file
,
"%d %d %d %g %g arc%d
\n
"
,
centre
.
x
,
centre
.
y
,
radius
,
(
double
)
-
EndAngle
/
10
,
(
double
)
-
StAngle
/
10
,
fill
);
...
...
include/plot_common.h
View file @
e9f557e6
...
...
@@ -26,14 +26,11 @@ enum PlotFormat {
PLOT_FORMAT_DXF
};
const
int
PLOT_MIROIR
=
1
;
class
PLOTTER
{
public
:
PlotFormat
m_PlotType
;
// type of plot
public
:
PLOTTER
(
PlotFormat
aPlotType
);
public
:
PLOTTER
(
PlotFormat
aPlotType
);
virtual
~
PLOTTER
()
{
...
...
@@ -91,8 +88,7 @@ public:
}
virtual
void
set_viewport
(
wxPoint
offset
,
double
scale
,
int
orient
)
=
0
;
virtual
void
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
)
=
0
;
/* Standard primitives */
virtual
void
rect
(
wxPoint
p1
,
wxPoint
p2
,
FILL_T
fill
,
...
...
@@ -120,6 +116,7 @@ public:
GRTraceMode
trace_mode
)
=
0
;
virtual
void
flash_pad_rect
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
)
=
0
;
/** virtual function flash_pad_trapez
* flash a trapezoidal pad
* @param aPadPos = the position of the shape
...
...
@@ -175,7 +172,7 @@ public:
* by writing \%LPD*\% or \%LPC*\% to the Gerber file, respectively.
* param @aPositive = layer polarity, true for positive
*/
virtual
void
SetLayerPolarity
(
bool
aPositive
)
=
0
;
virtual
void
SetLayerPolarity
(
bool
aPositive
)
=
0
;
protected
:
/* These are marker subcomponents */
...
...
@@ -206,7 +203,7 @@ protected:
char
pen_state
;
wxPoint
pen_lastpos
;
/* Other stuff */
int
plot_orient_options
;
/* For now, mirror plot */
bool
plotMirror
;
wxString
creator
;
wxString
filename
;
Ki_PageDescr
*
sheet
;
...
...
@@ -215,11 +212,11 @@ protected:
class
HPGL_PLOTTER
:
public
PLOTTER
{
public
:
HPGL_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_HPGL
)
public
:
HPGL_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_HPGL
)
{
}
virtual
bool
start_plot
(
FILE
*
fout
);
virtual
bool
end_plot
();
...
...
@@ -261,8 +258,7 @@ public:
}
virtual
void
set_viewport
(
wxPoint
offset
,
double
scale
,
int
orient
);
virtual
void
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
);
virtual
void
rect
(
wxPoint
p1
,
wxPoint
p2
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
circle
(
wxPoint
pos
,
int
diametre
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
poly
(
int
nb_segm
,
int
*
coord
,
FILL_T
fill
,
int
width
=
-
1
);
...
...
@@ -277,13 +273,14 @@ public:
GRTraceMode
trace_mode
);
virtual
void
flash_pad_rect
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_trapez
(
wxPoint
aPadPos
,
wxPoint
aCorners
[
4
],
int
aPadOrient
,
GRTraceMode
aTrace_Mode
);
virtual
void
SetLayerPolarity
(
bool
aPositive
)
{};
protected
:
void
pen_control
(
int
plume
);
void
pen_control
(
int
plume
);
int
pen_speed
;
int
pen_number
;
...
...
@@ -293,13 +290,13 @@ protected:
class
PS_PLOTTER
:
public
PLOTTER
{
public
:
PS_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_POST
)
public
:
PS_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_POST
)
{
plot_scale_adjX
=
1
;
plot_scale_adjY
=
1
;
}
virtual
bool
start_plot
(
FILE
*
fout
);
virtual
bool
end_plot
();
virtual
void
set_current_line_width
(
int
width
);
...
...
@@ -314,8 +311,7 @@ public:
}
virtual
void
set_viewport
(
wxPoint
offset
,
double
scale
,
int
orient
);
virtual
void
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
);
virtual
void
rect
(
wxPoint
p1
,
wxPoint
p2
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
circle
(
wxPoint
pos
,
int
diametre
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
arc
(
wxPoint
centre
,
int
StAngle
,
int
EndAngle
,
int
rayon
,
...
...
@@ -328,6 +324,7 @@ public:
GRTraceMode
trace_mode
);
virtual
void
flash_pad_rect
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_trapez
(
wxPoint
aPadPos
,
wxPoint
aCorners
[
4
],
int
aPadOrient
,
GRTraceMode
aTrace_Mode
);
...
...
@@ -359,8 +356,7 @@ struct APERTURE
class
GERBER_PLOTTER
:
public
PLOTTER
{
public
:
GERBER_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_GERBER
)
public
:
GERBER_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_GERBER
)
{
work_file
=
0
;
final_file
=
0
;
...
...
@@ -368,28 +364,28 @@ public:
}
virtual
bool
start_plot
(
FILE
*
fout
);
virtual
bool
end_plot
();
virtual
void
set_current_line_width
(
int
width
);
virtual
void
set_default_line_width
(
int
width
);
virtual
bool
start_plot
(
FILE
*
fout
);
virtual
bool
end_plot
();
virtual
void
set_current_line_width
(
int
width
);
virtual
void
set_default_line_width
(
int
width
);
/* RS274X has no dashing, nor colours */
virtual
void
set_dash
(
bool
dashed
)
{};
virtual
void
set_color
(
int
color
)
{};
virtual
void
set_viewport
(
wxPoint
offset
,
double
scale
,
int
orient
);
virtual
void
rect
(
wxPoint
p1
,
wxPoint
p2
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
circle
(
wxPoint
pos
,
int
diametre
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
poly
(
int
nb_segm
,
int
*
coord
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
pen_to
(
wxPoint
pos
,
char
plume
);
virtual
void
flash_pad_circle
(
wxPoint
pos
,
int
diametre
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_oval
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_rect
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_trapez
(
wxPoint
aPadPos
,
wxPoint
aCorners
[
4
],
int
aPadOrient
,
GRTraceMode
aTrace_Mode
);
virtual
void
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
);
virtual
void
rect
(
wxPoint
p1
,
wxPoint
p2
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
circle
(
wxPoint
pos
,
int
diametre
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
poly
(
int
nb_segm
,
int
*
coord
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
pen_to
(
wxPoint
pos
,
char
plume
);
virtual
void
flash_pad_circle
(
wxPoint
pos
,
int
diametre
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_oval
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_rect
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_trapez
(
wxPoint
aPadPos
,
wxPoint
aCorners
[
4
],
int
aPadOrient
,
GRTraceMode
aTrace_Mode
);
virtual
void
SetLayerPolarity
(
bool
aPositive
);
...
...
@@ -400,10 +396,10 @@ protected:
std
::
vector
<
APERTURE
>::
iterator
get_aperture
(
const
wxSize
&
size
,
APERTURE
::
Aperture_Type
type
);
FILE
*
work_file
,
*
final_file
;
wxString
m_workFilename
;
FILE
*
work_file
,
*
final_file
;
wxString
m_workFilename
;
void
write_aperture_list
();
void
write_aperture_list
();
std
::
vector
<
APERTURE
>
apertures
;
std
::
vector
<
APERTURE
>::
iterator
current_aperture
;
...
...
@@ -411,11 +407,11 @@ protected:
class
DXF_PLOTTER
:
public
PLOTTER
{
public
:
DXF_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_DXF
)
public
:
DXF_PLOTTER
()
:
PLOTTER
(
PLOT_FORMAT_DXF
)
{
}
virtual
bool
start_plot
(
FILE
*
fout
);
virtual
bool
end_plot
();
...
...
@@ -434,8 +430,7 @@ public:
virtual
void
set_color
(
int
color
);
virtual
void
set_viewport
(
wxPoint
offset
,
double
scale
,
int
orient
);
virtual
void
set_viewport
(
wxPoint
aOffset
,
double
aScale
,
bool
aMirror
);
virtual
void
rect
(
wxPoint
p1
,
wxPoint
p2
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
circle
(
wxPoint
pos
,
int
diametre
,
FILL_T
fill
,
int
width
=
-
1
);
virtual
void
poly
(
int
nb_segm
,
int
*
coord
,
FILL_T
fill
,
int
width
=
-
1
);
...
...
@@ -450,6 +445,7 @@ public:
GRTraceMode
trace_mode
);
virtual
void
flash_pad_rect
(
wxPoint
pos
,
wxSize
size
,
int
orient
,
GRTraceMode
trace_mode
);
virtual
void
flash_pad_trapez
(
wxPoint
aPadPos
,
wxPoint
aCorners
[
4
],
int
aPadOrient
,
GRTraceMode
aTrace_Mode
);
...
...
pcbnew/dialogs/dialog_gendrill.cpp
View file @
e9f557e6
...
...
@@ -133,11 +133,11 @@ void DIALOG_GENDRILL::InitDisplayParams( void )
m_MicroViaDrillValue
->
SetLabel
(
_
(
"Use Netclasses values"
)
);
msg
.
Empty
();
msg
<<
g_
pcb_plot_options
.
HPGL_Pen_
Num
;
msg
<<
g_
PcbPlotOptions
.
m_HPGLPen
Num
;
m_PenNum
->
SetValue
(
msg
);
msg
.
Empty
();
msg
<<
g_
pcb_plot_options
.
HPGL_Pen_
Speed
;
msg
<<
g_
PcbPlotOptions
.
m_HPGLPen
Speed
;
m_PenSpeed
->
SetValue
(
msg
);
// See if we have some buried vias or/and microvias, and display
...
...
@@ -290,11 +290,11 @@ void DIALOG_GENDRILL::SetParams( void )
msg
=
m_PenSpeed
->
GetValue
();
if
(
msg
.
ToLong
(
&
ltmp
)
)
g_
pcb_plot_options
.
HPGL_Pen_
Speed
=
ltmp
;
g_
PcbPlotOptions
.
m_HPGLPen
Speed
=
ltmp
;
msg
=
m_PenNum
->
GetValue
();
if
(
msg
.
ToLong
(
&
ltmp
)
)
g_
pcb_plot_options
.
HPGL_Pen_
Num
=
ltmp
;
g_
PcbPlotOptions
.
m_HPGLPen
Num
=
ltmp
;
if
(
m_Choice_Drill_Offset
->
GetSelection
()
==
0
)
m_FileDrillOffset
=
wxPoint
(
0
,
0
);
else
...
...
pcbnew/dialogs/dialog_plot_base.cpp
View file @
e9f557e6
...
...
@@ -40,10 +40,10 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr
bLeftSizer
->
Add
(
m_Use_Gerber_Extensions
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_
Exclude_Edges_Pcb
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Exclude pcb edge layer"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_
Exclude_Edges_Pcb
->
SetToolTip
(
_
(
"Exclude contents of the pcb edge layer from all other layers"
)
);
m_
excludeEdgeLayerOpt
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Exclude pcb edge layer"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_
excludeEdgeLayerOpt
->
SetToolTip
(
_
(
"Exclude contents of the pcb edge layer from all other layers"
)
);
bLeftSizer
->
Add
(
m_
Exclude_Edges_Pcb
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
bLeftSizer
->
Add
(
m_
excludeEdgeLayerOpt
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_SubtractMaskFromSilk
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Subtract mask from silk"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_SubtractMaskFromSilk
->
SetToolTip
(
_
(
"Remove silkscreen from areas without soldermask"
)
);
...
...
@@ -147,8 +147,8 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr
wxStaticBoxSizer
*
sbSizerPSOpt
;
sbSizerPSOpt
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"PS Options:"
)
),
wxVERTICAL
);
m_
Plot_PS_Negative
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Plot negative"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbSizerPSOpt
->
Add
(
m_
Plot_PS_Negative
,
0
,
wxALL
,
5
);
m_
plotPSNegativeOpt
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Plot negative"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbSizerPSOpt
->
Add
(
m_
plotPSNegativeOpt
,
0
,
wxALL
,
5
);
bSizerFmtPlot
->
Add
(
sbSizerPSOpt
,
0
,
wxEXPAND
,
5
);
...
...
pcbnew/dialogs/dialog_plot_base.fbp
View file @
e9f557e6
...
...
@@ -218,7 +218,7 @@
<property
name=
"label"
>
Exclude pcb edge layer
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"name"
>
m_
Exclude_Edges_Pcb
</property>
<property
name=
"name"
>
m_
excludeEdgeLayerOpt
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"size"
></property>
...
...
@@ -1365,7 +1365,7 @@
<property
name=
"label"
>
Plot negative
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"name"
>
m_
Plot_PS_Negative
</property>
<property
name=
"name"
>
m_
plotPSNegativeOpt
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"size"
></property>
...
...
pcbnew/dialogs/dialog_plot_base.h
View file @
e9f557e6
...
...
@@ -54,7 +54,7 @@ class DIALOG_PLOT_BASE : public wxDialog
wxStaticBoxSizer
*
m_CopperLayersBoxSizer
;
wxStaticBoxSizer
*
m_TechnicalLayersBoxSizer
;
wxCheckBox
*
m_Use_Gerber_Extensions
;
wxCheckBox
*
m_
Exclude_Edges_Pcb
;
wxCheckBox
*
m_
excludeEdgeLayerOpt
;
wxCheckBox
*
m_SubtractMaskFromSilk
;
wxCheckBox
*
m_Plot_Sheet_Ref
;
wxCheckBox
*
m_Plot_Pads_on_Silkscreen
;
...
...
@@ -73,7 +73,7 @@ class DIALOG_PLOT_BASE : public wxDialog
wxTextCtrl
*
m_HPGLPenSpeedOpt
;
wxStaticText
*
m_textPenOvr
;
wxTextCtrl
*
m_HPGLPenOverlayOpt
;
wxCheckBox
*
m_
Plot_PS_Negative
;
wxCheckBox
*
m_
plotPSNegativeOpt
;
wxTextCtrl
*
m_OutputDirectory
;
wxButton
*
m_BrowseButton
;
wxCheckBox
*
m_PlotMirorOpt
;
...
...
pcbnew/dialogs/dialog_print_for_modedit.cpp
View file @
e9f557e6
...
...
@@ -194,9 +194,9 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintButtonClick( wxCommandEvent& event )
s_Parameters
.
m_Print_Black_and_White
=
m_ModeColorOption
->
GetSelection
();
s_Parameters
.
m_PrintScale
=
s_ScaleList
[
m_ScaleOption
->
GetSelection
()];
g_
pcb_plot_options
.
ScaleAdj
X
=
s_Parameters
.
m_XScaleAdjust
;
g_
pcb_plot_options
.
ScaleAdjX
=
s_Parameters
.
m_YScaleAdjust
;
g_
pcb_plot_options
.
Scale
=
s_Parameters
.
m_PrintScale
;
g_
PcbPlotOptions
.
m_FineScaleAdjust
X
=
s_Parameters
.
m_XScaleAdjust
;
g_
PcbPlotOptions
.
m_FineScaleAdjustY
=
s_Parameters
.
m_YScaleAdjust
;
g_
PcbPlotOptions
.
m_Plot
Scale
=
s_Parameters
.
m_PrintScale
;
wxPrintDialogData
printDialogData
(
*
g_PrintData
);
wxPrinter
printer
(
&
printDialogData
);
...
...
pcbnew/dialogs/dialog_print_using_printer.cpp
View file @
e9f557e6
...
...
@@ -383,7 +383,7 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( )
int
idx
=
m_ScaleOption
->
GetSelection
();
s_Parameters
.
m_PrintScale
=
s_ScaleList
[
idx
];
g_
pcb_plot_options
.
Scale
=
s_Parameters
.
m_PrintScale
;
g_
PcbPlotOptions
.
m_Plot
Scale
=
s_Parameters
.
m_PrintScale
;
if
(
m_FineAdjustXscaleOpt
)
{
...
...
@@ -400,8 +400,8 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( )
DisplayInfoMessage
(
NULL
,
_
(
"Warning: Scale option set to a very small value"
)
);
m_FineAdjustYscaleOpt
->
GetValue
().
ToDouble
(
&
s_Parameters
.
m_YScaleAdjust
);
}
g_
pcb_plot_options
.
ScaleAdj
X
=
s_Parameters
.
m_XScaleAdjust
;
g_
pcb_plot_options
.
ScaleAdjX
=
s_Parameters
.
m_YScaleAdjust
;
g_
PcbPlotOptions
.
m_FineScaleAdjust
X
=
s_Parameters
.
m_XScaleAdjust
;
g_
PcbPlotOptions
.
m_FineScaleAdjustY
=
s_Parameters
.
m_YScaleAdjust
;
SetPenWidth
();
}
...
...
pcbnew/gen_drill_report_files.cpp
View file @
e9f557e6
...
...
@@ -4,8 +4,6 @@
#include "fctsys.h"
using
namespace
std
;
#include <vector>
#include "common.h"
...
...
@@ -67,8 +65,8 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName,
scale
=
1
;
HPGL_PLOTTER
*
hpgl_plotter
=
new
HPGL_PLOTTER
;
plotter
=
hpgl_plotter
;
hpgl_plotter
->
set_pen_number
(
g_
pcb_plot_options
.
HPGL_Pen_
Num
);
hpgl_plotter
->
set_pen_speed
(
g_
pcb_plot_options
.
HPGL_Pen_
Speed
);
hpgl_plotter
->
set_pen_number
(
g_
PcbPlotOptions
.
m_HPGLPen
Num
);
hpgl_plotter
->
set_pen_speed
(
g_
PcbPlotOptions
.
m_HPGLPen
Speed
);
hpgl_plotter
->
set_pen_overlap
(
0
);
plotter
->
set_paper_size
(
aSheet
);
plotter
->
set_viewport
(
offset
,
scale
,
0
);
...
...
pcbnew/pcbnew_config.cpp
View file @
e9f557e6
...
...
@@ -388,18 +388,6 @@ PARAM_CFG_ARRAY& WinEDA_PcbFrame::GetConfigurationSettings()
m_configSettings
.
push_back
(
new
PARAM_CFG_SETCOLOR
(
true
,
wxT
(
"CoRatsN"
),
ITEM_COLOR
(
RATSNEST_VISIBLE
),
WHITE
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGLnum"
),
&
g_pcb_plot_options
.
HPGL_Pen_Num
,
1
,
1
,
16
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGdiam"
),
&
g_pcb_plot_options
.
HPGL_Pen_Diam
,
15
,
0
,
100
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGLSpd"
),
&
g_pcb_plot_options
.
HPGL_Pen_Speed
,
20
,
0
,
1000
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGLrec"
),
&
g_pcb_plot_options
.
HPGL_Pen_Recouvrement
,
2
,
0
,
0x100
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"TimeOut"
),
&
g_TimeOut
,
600
,
0
,
60000
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"DPolair"
),
...
...
@@ -411,14 +399,33 @@ PARAM_CFG_ARRAY& WinEDA_PcbFrame::GetConfigurationSettings()
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"TwoSegT"
),
&
g_TwoSegmentTrackBuild
,
TRUE
)
);
// Plot options:
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGLnum"
),
&
g_PcbPlotOptions
.
m_HPGLPenNum
,
1
,
1
,
16
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGdiam"
),
&
g_PcbPlotOptions
.
m_HPGLPenDiam
,
15
,
0
,
100
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGLSpd"
),
&
g_PcbPlotOptions
.
m_HPGLPenSpeed
,
20
,
0
,
1000
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"HPGLrec"
),
&
g_PcbPlotOptions
.
m_HPGLPenOvr
,
2
,
0
,
0x100
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"PlotOutputFormat"
),
&
g_
pcb_plot_options
.
PlotFormat
,
PLOT_FORMAT_GERBER
)
);
&
g_
PcbPlotOptions
.
m_
PlotFormat
,
PLOT_FORMAT_GERBER
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"EdgeLayerGerberOpt"
),
&
g_
pcb_plot_options
.
Exclude_Edges_Pcb
,
true
)
);
&
g_
PcbPlotOptions
.
m_ExcludeEdgeLayer
,
true
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"SubstractMasktoSilk"
),
&
g_
pcb_plot_o
ptions
.
m_SubtractMaskFromSilk
,
false
)
);
&
g_
PcbPlotO
ptions
.
m_SubtractMaskFromSilk
,
false
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"PlotPadsOnSilkscreen"
),
&
g_pcb_plot_options
.
PlotPadsOnSilkLayer
,
false
)
);
&
g_PcbPlotOptions
.
m_PlotPadsOnSilkLayer
,
false
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"PlotFrameRef"
),
&
g_PcbPlotOptions
.
m_PlotFrameRef
,
false
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"PlotViasOnMask"
),
&
g_PcbPlotOptions
.
m_PlotViaOnMaskLayer
,
false
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"PlotHolesOpt"
),
(
int
*
)
&
g_PcbPlotOptions
.
m_DrillShapeOpt
,
PCB_PLOT_PARAMS
::
SMALL_DRILL_SHAPE
)
);
return
m_configSettings
;
}
pcbnew/pcbplot.cpp
View file @
e9f557e6
This diff is collapsed.
Click to expand it.
pcbnew/pcbplot.h
View file @
e9f557e6
...
...
@@ -25,58 +25,64 @@
// Small drill marks diameter value (in internal value = 1/10000 inch)
#define SMALL_DRILL 150
/* Plot Options : */
class
PCB_Plot_Options
/* a helper class to handle plot parameters and options when plotting/printing a board
*/
class
PCB_PLOT_PARAMS
{
public
:
bool
Exclude_Edges_Pcb
;
int
PlotLine_Width
;
bool
Plot_Frame_Ref
;
// True to plot/print frame references
bool
DrawViaOnMaskLayer
;
// True if vias are drawn on Mask layer
// (ie protected by mask)
bool
m_ExcludeEdgeLayer
;
// True: do not plot edge layer when plotting other layers
// False: Edge layer always plotted (merged) when plotting other layers
int
m_PlotLineWidth
;
bool
m_PlotFrameRef
;
// True to plot/print frame references
bool
m_PlotViaOnMaskLayer
;
// True if vias are drawn on Mask layer
// (ie protected by mask)
GRTraceMode
Trace_Mode
;
bool
Plot_Set_MIROIR
;
int
HPGL_Pen_Num
;
int
HPGL_Pen_Speed
;
int
HPGL_Pen_Diam
;
int
HPGL_Pen_Recouvrement
;
int
PlotPSColorOpt
;
// True for color Postscript output
bool
Plot_PS_Negative
;
// True to create a negative board ps plot
int
m_HPGLPenNum
;
int
m_HPGLPenSpeed
;
int
m_HPGLPenDiam
;
int
m_HPGLPenOvr
;
int
m_PlotPSColorOpt
;
// True for color Postscript output
bool
m_PlotPSNegative
;
// True to create a negative board ps plot
/* Flags to enable or disable ploting of various PCB elements. */
bool
Sel_Texte_
Reference
;
bool
Sel_Texte_Valeur
;
bool
Sel_Texte_Divers
;
bool
Sel_Texte_Invisible
;
bool
PlotPadsOnSilkLayer
;
/* allows pads on silkscreen */
bool
m_Plot
Reference
;
bool
m_PlotValue
;
bool
m_PlotTextOther
;
bool
m_PlotInvisibleTexts
;
bool
m_PlotPadsOnSilkLayer
;
// allows pads outlines on silkscreen layer (when pads are also o, silk screen
bool
m_SubtractMaskFromSilk
;
/* id for plot format (see enum PlotFormat in plot_common.h) */
int
PlotFormat
;
int
PlotOrient
;
int
PlotScaleOpt
;
int
m_PlotFormat
;
// Gerber, HPGL ...
bool
m_PlotMirror
;
enum
DrillShapeOptT
{
NO_DRILL_SHAPE
=
0
,
SMALL_DRILL_SHAPE
=
1
,
FULL_DRILL_SHAPE
=
2
};
DrillShapeOptT
DrillShapeOpt
;
double
Scale
;
double
ScaleAdjX
;
double
ScaleAdjY
;
DrillShapeOptT
m_DrillShapeOpt
;
// For postscript output: holes can be not plotted,
// or have a small size or plotted with their actual size
bool
m_AutoScale
;
// If true, use the better scale to fit in page
double
m_PlotScale
;
// The global scale factor. a 1.0 scale factor plot a board
// with its actual size.
// These next two scale factors are intended to compensable plotters (and mainly printers) X and Y scale error.
// Therefore they are expected very near 1.0
// Only X and Y dimensions are adjusted: circles are plotted as circle, even if X and Y fine scale differ.
double
m_FineScaleAdjustX
;
// fine scale adjust X axis
double
m_FineScaleAdjustY
;
// dine scale adjust Y axis
private
:
wxString
outputDirectory
;
wxString
outputDirectory
;
public
:
PCB_Plot_Options
();
public
:
PCB_PLOT_PARAMS
();
void
SetOutputDirectory
(
wxString
aDir
)
{
outputDirectory
=
aDir
;
};
wxString
GetOutputDirectory
()
{
return
outputDirectory
;
};
void
SetSubtractMaskFromSilk
(
bool
aSubtract
)
{
m_SubtractMaskFromSilk
=
aSubtract
;
};
bool
GetSubtractMaskFromSilk
()
{
return
m_SubtractMaskFromSilk
;
};
};
extern
PCB_P
lot_Options
g_pcb_plot_o
ptions
;
extern
PCB_P
LOT_PARAMS
g_PcbPlotO
ptions
;
void
PlotTextePcb
(
PLOTTER
*
plotter
,
TEXTE_PCB
*
pt_texte
,
int
masque_layer
,
...
...
@@ -88,7 +94,7 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* PtSegm, int masque_layer,
GRTraceMode
trace_mode
);
void
PlotDimension
(
PLOTTER
*
plotter
,
DIMENSION
*
Dimension
,
int
masque_layer
,
GRTraceMode
trace_mode
);
GRTraceMode
trace_mode
);
void
PlotMirePcb
(
PLOTTER
*
plotter
,
MIREPCB
*
PtMire
,
int
masque_layer
,
GRTraceMode
trace_mode
);
...
...
pcbnew/plot_rtn.cpp
View file @
e9f557e6
...
...
@@ -67,7 +67,7 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( PLOTTER* plotter,
/* Plot pads (creates pads outlines, for pads on silkscreen layers) */
int
layersmask_plotpads
=
masque_layer
;
// Calculate the mask layers of allowed layers for pads
if
(
!
g_
pcb_plot_options
.
PlotPadsOnSilkLayer
)
// Do not plot pads on silk screen layers
if
(
!
g_
PcbPlotOptions
.
m_
PlotPadsOnSilkLayer
)
// Do not plot pads on silk screen layers
layersmask_plotpads
&=
~
(
SILKSCREEN_LAYER_BACK
|
SILKSCREEN_LAYER_FRONT
);
if
(
layersmask_plotpads
)
{
...
...
@@ -112,8 +112,8 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( PLOTTER* plotter,
for
(
MODULE
*
Module
=
m_Pcb
->
m_Modules
;
Module
;
Module
=
Module
->
Next
()
)
{
/* see if we want to plot VALUE and REF fields */
trace_val
=
g_
pcb_plot_options
.
Sel_Texte_Valeur
;
trace_ref
=
g_
pcb_plot_options
.
Sel_Texte_
Reference
;
trace_val
=
g_
PcbPlotOptions
.
m_PlotValue
;
trace_ref
=
g_
PcbPlotOptions
.
m_Plot
Reference
;
TEXTE_MODULE
*
text
=
Module
->
m_Reference
;
unsigned
textLayer
=
text
->
GetLayer
();
...
...
@@ -132,7 +132,7 @@ module\n %s's \"reference\" text." ),
if
(
(
(
1
<<
textLayer
)
&
masque_layer
)
==
0
)
trace_ref
=
FALSE
;
if
(
text
->
m_NoShow
&&
!
g_
pcb_plot_options
.
Sel_Texte_Invisible
)
if
(
text
->
m_NoShow
&&
!
g_
PcbPlotOptions
.
m_PlotInvisibleTexts
)
trace_ref
=
FALSE
;
text
=
Module
->
m_Value
;
...
...
@@ -152,7 +152,7 @@ module\n %s's \"value\" text." ),
if
(
(
(
1
<<
textLayer
)
&
masque_layer
)
==
0
)
trace_val
=
FALSE
;
if
(
text
->
m_NoShow
&&
!
g_
pcb_plot_options
.
Sel_Texte_Invisible
)
if
(
text
->
m_NoShow
&&
!
g_
PcbPlotOptions
.
m_PlotInvisibleTexts
)
trace_val
=
FALSE
;
/* Plot text fields, if allowed */
...
...
@@ -169,10 +169,10 @@ module\n %s's \"value\" text." ),
if
(
pt_texte
->
Type
()
!=
TYPE_TEXTE_MODULE
)
continue
;
if
(
!
g_
pcb_plot_options
.
Sel_Texte_Divers
)
if
(
!
g_
PcbPlotOptions
.
m_PlotTextOther
)
continue
;
if
(
(
pt_texte
->
m_NoShow
)
&&
!
g_
pcb_plot_options
.
Sel_Texte_Invisible
)
&&
!
g_
PcbPlotOptions
.
m_PlotInvisibleTexts
)
continue
;
textLayer
=
pt_texte
->
GetLayer
();
...
...
@@ -644,7 +644,7 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* pt_segm, int masque_layer,
return
;
if
(
trace_mode
==
FILAIRE
)
thickness
=
g_
pcb_plot_options
.
PlotLine_
Width
;
thickness
=
g_
PcbPlotOptions
.
m_PlotLine
Width
;
else
thickness
=
pt_segm
->
m_Width
;
...
...
@@ -697,7 +697,7 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer,
// in addition to the contents of the currently specified layer.
int
layer_mask
=
g_TabOneLayerMask
[
Layer
];
if
(
!
g_
pcb_plot_options
.
Exclude_Edges_Pcb
)
if
(
!
g_
PcbPlotOptions
.
m_ExcludeEdgeLayer
)
layer_mask
|=
EDGE_LAYER
;
switch
(
Layer
)
...
...
@@ -722,21 +722,19 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer,
// Adding drill marks, if required and if the plotter is able to plot
// them:
if
(
g_pcb_plot_options
.
DrillShapeOpt
!=
PCB_Plot_Options
::
NO_DRILL_SHAPE
)
if
(
g_PcbPlotOptions
.
m_DrillShapeOpt
!=
PCB_PLOT_PARAMS
::
NO_DRILL_SHAPE
)
{
if
(
plotter
->
GetPlotterType
()
==
PLOT_FORMAT_POST
)
PlotDrillMark
(
plotter
,
trace_mode
,
g_pcb_plot_options
.
DrillShapeOpt
==
PCB_Plot_Options
::
SMALL_DRILL_SHAPE
);
PlotDrillMark
(
plotter
,
trace_mode
,
g_PcbPlotOptions
.
m_DrillShapeOpt
==
PCB_PLOT_PARAMS
::
SMALL_DRILL_SHAPE
);
}
break
;
case
SOLDERMASK_N_BACK
:
case
SOLDERMASK_N_FRONT
:
Plot_Standard_Layer
(
plotter
,
layer_mask
,
g_
pcb_plot_options
.
Draw
ViaOnMaskLayer
,
trace_mode
);
g_
PcbPlotOptions
.
m_Plot
ViaOnMaskLayer
,
trace_mode
);
break
;
case
SOLDERPASTE_N_BACK
:
...
...
@@ -749,7 +747,7 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer,
// Gerber: Subtract soldermask from silkscreen if enabled
if
(
plotter
->
GetPlotterType
()
==
PLOT_FORMAT_GERBER
&&
g_
pcb_plot_o
ptions
.
GetSubtractMaskFromSilk
()
)
&&
g_
PcbPlotO
ptions
.
GetSubtractMaskFromSilk
()
)
{
if
(
Layer
==
SILKSCREEN_N_FRONT
)
{
...
...
@@ -763,7 +761,7 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer,
// Set layer polarity to negative
plotter
->
SetLayerPolarity
(
false
);
Plot_Standard_Layer
(
plotter
,
layer_mask
,
g_
pcb_plot_options
.
Draw
ViaOnMaskLayer
,
g_
PcbPlotOptions
.
m_Plot
ViaOnMaskLayer
,
trace_mode
);
}
break
;
...
...
@@ -1013,8 +1011,7 @@ void WinEDA_BasePcbFrame::PlotDrillMark( PLOTTER* aPlotter,
if
(
pts
->
Type
()
!=
TYPE_VIA
)
continue
;
pos
=
pts
->
m_Start
;
if
(
g_pcb_plot_options
.
DrillShapeOpt
==
PCB_Plot_Options
::
SMALL_DRILL_SHAPE
)
if
(
g_PcbPlotOptions
.
m_DrillShapeOpt
==
PCB_PLOT_PARAMS
::
SMALL_DRILL_SHAPE
)
diam
.
x
=
diam
.
y
=
SMALL_DRILL
;
else
diam
.
x
=
diam
.
y
=
pts
->
GetDrillValue
();
...
...
pcbnew/plotdxf.cpp
View file @
e9f557e6
...
...
@@ -32,7 +32,7 @@ bool WinEDA_BasePcbFrame::Genere_DXF( const wxString& FullFileName, int Layer,
plotter
->
set_filename
(
FullFileName
);
plotter
->
start_plot
(
output_file
);
if
(
g_
pcb_plot_options
.
Plot_Frame_
Ref
)
if
(
g_
PcbPlotOptions
.
m_PlotFrame
Ref
)
PlotWorkSheet
(
plotter
,
GetScreen
()
);
Plot_Layer
(
plotter
,
Layer
,
trace_mode
);
...
...
pcbnew/plotgerb.cpp
View file @
e9f557e6
...
...
@@ -42,7 +42,7 @@ bool WinEDA_BasePcbFrame::Genere_GERBER( const wxString& FullFileName, int Layer
wxPoint
offset
;
/* Calculate scaling from pcbnew units (in 0.1 mil or 0.0001 inch) to gerber units */
double
scale
=
g_
pcb_plot_options
.
Scale
;
double
scale
=
g_
PcbPlotOptions
.
m_Plot
Scale
;
if
(
PlotOriginIsAuxAxis
)
offset
=
m_Auxiliary_Axis_Position
;
...
...
@@ -56,17 +56,17 @@ bool WinEDA_BasePcbFrame::Genere_GERBER( const wxString& FullFileName, int Layer
PLOTTER
*
plotter
=
new
GERBER_PLOTTER
();
/* No mirror and scaling for gerbers! */
plotter
->
set_viewport
(
offset
,
scale
,
0
);
plotter
->
set_default_line_width
(
g_
pcb_plot_options
.
PlotLine_
Width
);
plotter
->
set_default_line_width
(
g_
PcbPlotOptions
.
m_PlotLine
Width
);
plotter
->
set_creator
(
wxT
(
"PCBNEW-RS274X"
)
);
plotter
->
set_filename
(
FullFileName
);
if
(
plotter
->
start_plot
(
output_file
)
)
{
// Sheet refs on gerber CAN be useful... and they're always 1:1
if
(
g_
pcb_plot_options
.
Plot_Frame_
Ref
)
if
(
g_
PcbPlotOptions
.
m_PlotFrame
Ref
)
PlotWorkSheet
(
plotter
,
GetScreen
()
);
Plot_Layer
(
plotter
,
Layer
,
trace_mode
);
Plot_Layer
(
plotter
,
Layer
,
trace_mode
);
plotter
->
end_plot
();
}
...
...
pcbnew/plothpgl.cpp
View file @
e9f557e6
...
...
@@ -29,26 +29,26 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer,
{
return
false
;
}
// Compute pen_dim (from g_
HPGL_Pen_
Diam in mils) in pcb units,
// with plot scale (if Scale is 2, pen diameter is always g_
HPGL_Pen_
Diam
// Compute pen_dim (from g_
m_HPGLPen
Diam in mils) in pcb units,
// with plot scale (if Scale is 2, pen diameter is always g_
m_HPGLPen
Diam
// so apparent pen diam is real pen diam / Scale
int
pen_diam
=
wxRound
(
(
g_
pcb_plot_options
.
HPGL_Pen_Diam
*
U_PCB
)
/
g_pcb_plot_options
.
Scale
);
int
pen_diam
=
wxRound
(
(
g_
PcbPlotOptions
.
m_HPGLPenDiam
*
U_PCB
)
/
g_PcbPlotOptions
.
m_Plot
Scale
);
// compute pen_
recouvrement (from g_HPGL_Pen_Recouvrement
in mils)
// compute pen_
overlay (from g_m_HPGLPenOvr
in mils)
// with plot scale
if
(
g_
pcb_plot_options
.
HPGL_Pen_Recouvrement
<
0
)
g_
pcb_plot_options
.
HPGL_Pen_Recouvrement
=
0
;
if
(
g_
pcb_plot_options
.
HPGL_Pen_Recouvrement
>=
g_pcb_plot_options
.
HPGL_Pen_
Diam
)
g_
pcb_plot_options
.
HPGL_Pen_Recouvrement
=
g_pcb_plot_options
.
HPGL_Pen_
Diam
-
1
;
int
pen_
recouvrement
=
wxRound
(
g_
pcb_plot_options
.
HPGL_Pen_Recouvrement
*
10.0
/
g_pcb_plot_options
.
Scale
);
if
(
g_
PcbPlotOptions
.
m_HPGLPenOvr
<
0
)
g_
PcbPlotOptions
.
m_HPGLPenOvr
=
0
;
if
(
g_
PcbPlotOptions
.
m_HPGLPenOvr
>=
g_PcbPlotOptions
.
m_HPGLPen
Diam
)
g_
PcbPlotOptions
.
m_HPGLPenOvr
=
g_PcbPlotOptions
.
m_HPGLPen
Diam
-
1
;
int
pen_
overlay
=
wxRound
(
g_
PcbPlotOptions
.
m_HPGLPenOvr
*
10.0
/
g_PcbPlotOptions
.
m_Plot
Scale
);
SetLocaleTo_C_standard
();
if
(
g_
pcb_plot_options
.
PlotScaleOpt
!=
1
)
Center
=
TRUE
;
// Scale != 1 so center PCB plot.
if
(
g_
PcbPlotOptions
.
m_PlotScale
!=
1.0
||
g_PcbPlotOptions
.
m_AutoScale
)
Center
=
true
;
// when scale != 1.0 we must calculate the position in page
// because actual position has no meaning
// Scale units from 0.0001" to HPGL plot units.
SheetSize
.
x
=
currentsheet
->
m_Size
.
x
*
U_PCB
;
...
...
@@ -59,7 +59,7 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer,
BoardSize
=
m_Pcb
->
m_BoundaryBox
.
GetSize
();
BoardCenter
=
m_Pcb
->
m_BoundaryBox
.
Centre
();
if
(
g_
pcb_plot_options
.
PlotScaleOpt
==
0
)
// Optimum scale
if
(
g_
PcbPlotOptions
.
m_AutoScale
)
// Optimum scale
{
double
Xscale
,
Yscale
;
...
...
@@ -69,7 +69,7 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer,
scale
=
MIN
(
Xscale
,
Yscale
);
}
else
scale
=
g_
pcb_plot_options
.
Scale
;
scale
=
g_
PcbPlotOptions
.
m_Plot
Scale
;
// Calculate the page size offset.
if
(
Center
)
...
...
@@ -87,20 +87,19 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer,
HPGL_PLOTTER
*
plotter
=
new
HPGL_PLOTTER
();
plotter
->
set_paper_size
(
currentsheet
);
plotter
->
set_viewport
(
offset
,
scale
,
g_pcb_plot_options
.
PlotOrient
);
plotter
->
set_default_line_width
(
g_pcb_plot_options
.
PlotLine_Width
);
plotter
->
set_viewport
(
offset
,
scale
,
g_PcbPlotOptions
.
m_PlotMirror
);
plotter
->
set_default_line_width
(
g_PcbPlotOptions
.
m_PlotLineWidth
);
plotter
->
set_creator
(
wxT
(
"PCBNEW-HPGL"
)
);
plotter
->
set_filename
(
FullFileName
);
plotter
->
set_pen_speed
(
g_
pcb_plot_options
.
HPGL_Pen_
Speed
);
plotter
->
set_pen_number
(
g_
pcb_plot_options
.
HPGL_Pen_
Num
);
plotter
->
set_pen_overlap
(
pen_
recouvrement
);
plotter
->
set_pen_speed
(
g_
PcbPlotOptions
.
m_HPGLPen
Speed
);
plotter
->
set_pen_number
(
g_
PcbPlotOptions
.
m_HPGLPen
Num
);
plotter
->
set_pen_overlap
(
pen_
overlay
);
plotter
->
set_pen_diameter
(
pen_diam
);
plotter
->
start_plot
(
output_file
);
/* The worksheet is not significant with scale!=1... It is with
* paperscale!=1, anyway */
if
(
g_
pcb_plot_options
.
Plot_Frame_
Ref
&&
!
Center
)
if
(
g_
PcbPlotOptions
.
m_PlotFrame
Ref
&&
!
Center
)
PlotWorkSheet
(
plotter
,
GetScreen
()
);
Plot_Layer
(
plotter
,
Layer
,
trace_mode
);
...
...
pcbnew/plotps.cpp
View file @
e9f557e6
...
...
@@ -37,12 +37,13 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer,
SetLocaleTo_C_standard
();
if
(
g_pcb_plot_options
.
PlotScaleOpt
!=
1
)
Center
=
TRUE
;
// Scale != 1 so center plot.
if
(
g_PcbPlotOptions
.
m_PlotScale
!=
1.0
||
g_PcbPlotOptions
.
m_AutoScale
)
Center
=
true
;
// when scale != 1.0 we must calculate the position in page
// because actual position has no meaning
// Set default line width
if
(
g_
pcb_plot_options
.
PlotLine_
Width
<
1
)
g_
pcb_plot_options
.
PlotLine_
Width
=
1
;
if
(
g_
PcbPlotOptions
.
m_PlotLine
Width
<
1
)
g_
PcbPlotOptions
.
m_PlotLine
Width
=
1
;
SheetSize
.
x
=
currentsheet
->
m_Size
.
x
*
U_PCB
;
SheetSize
.
y
=
currentsheet
->
m_Size
.
y
*
U_PCB
;
...
...
@@ -65,7 +66,7 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer,
BoardSize
=
m_Pcb
->
m_BoundaryBox
.
GetSize
();
BoardCenter
=
m_Pcb
->
m_BoundaryBox
.
Centre
();
if
(
g_
pcb_plot_options
.
PlotScaleOpt
==
0
)
// Optimum scale
if
(
g_
PcbPlotOptions
.
m_AutoScale
)
// Optimum scale
{
double
Xscale
,
Yscale
;
...
...
@@ -75,7 +76,7 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer,
scale
=
MIN
(
Xscale
,
Yscale
);
}
else
scale
=
g_
pcb_plot_options
.
Scale
*
paperscale
;
scale
=
g_
PcbPlotOptions
.
m_Plot
Scale
*
paperscale
;
if
(
Center
)
{
...
...
@@ -92,24 +93,23 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer,
PS_PLOTTER
*
plotter
=
new
PS_PLOTTER
();
plotter
->
set_paper_size
(
SheetPS
);
plotter
->
set_scale_adjust
(
g_pcb_plot_options
.
ScaleAdjX
,
g_pcb_plot_options
.
ScaleAdjY
);
plotter
->
set_viewport
(
offset
,
scale
,
g_pcb_plot_options
.
PlotOrient
);
plotter
->
set_default_line_width
(
g_pcb_plot_options
.
PlotLine_Width
);
plotter
->
set_scale_adjust
(
g_PcbPlotOptions
.
m_FineScaleAdjustX
,
g_PcbPlotOptions
.
m_FineScaleAdjustX
);
plotter
->
set_viewport
(
offset
,
scale
,
g_PcbPlotOptions
.
m_PlotMirror
);
plotter
->
set_default_line_width
(
g_PcbPlotOptions
.
m_PlotLineWidth
);
plotter
->
set_creator
(
wxT
(
"PCBNEW-PS"
)
);
plotter
->
set_filename
(
FullFileName
);
plotter
->
start_plot
(
output_file
);
/* The worksheet is not significant with scale!=1... It is with
* paperscale!=1, anyway */
if
(
g_
pcb_plot_options
.
Plot_Frame_
Ref
&&
!
Center
)
if
(
g_
PcbPlotOptions
.
m_PlotFrame
Ref
&&
!
Center
)
PlotWorkSheet
(
plotter
,
GetScreen
()
);
// If plot a negative board:
// Draw a black rectangle (background for plot board in white)
// and switch the current color to WHITE
if
(
g_
pcb_plot_options
.
Plot_PS_
Negative
)
if
(
g_
PcbPlotOptions
.
m_PlotPS
Negative
)
{
int
margin
=
500
;
// Add a 0.5 inch margin around the board
plotter
->
set_negative
(
true
);
...
...
version.txt
View file @
e9f557e6
release version:
2010 dec
06 (BZR testing 2644
)
2010 dec
10 (BZR testing 26xx
)
files (.zip,.tgz):
kicad-2010-12-
06
-testing
kicad-2010-12-
10
-testing
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