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
04a17d33
Commit
04a17d33
authored
Jul 05, 2012
by
Wayne Stambaugh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Save and load print parameters and minor code cleaning in new Pcbnew file format.
parent
7f165204
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
58 deletions
+10
-58
kicad_plugin.cpp
pcbnew/kicad_plugin.cpp
+0
-29
pcb_parser.cpp
pcbnew/pcb_parser.cpp
+8
-24
pcb_parser.h
pcbnew/pcb_parser.h
+2
-5
No files found.
pcbnew/kicad_plugin.cpp
View file @
04a17d33
...
@@ -134,11 +134,7 @@ void PCB_IO::Format( BOARD_ITEM* aItem, int aNestLevel ) const
...
@@ -134,11 +134,7 @@ void PCB_IO::Format( BOARD_ITEM* aItem, int aNestLevel ) const
void
PCB_IO
::
formatLayer
(
const
BOARD_ITEM
*
aItem
)
const
void
PCB_IO
::
formatLayer
(
const
BOARD_ITEM
*
aItem
)
const
{
{
#if 1
m_out
->
Print
(
0
,
" (layer %s)"
,
m_out
->
Quotew
(
aItem
->
GetLayerName
()
).
c_str
()
);
m_out
->
Print
(
0
,
" (layer %s)"
,
m_out
->
Quotew
(
aItem
->
GetLayerName
()
).
c_str
()
);
#else
m_out
->
Print
(
0
,
" (layer %d)"
,
aItem
->
GetLayer
()
);
#endif
}
}
...
@@ -181,15 +177,9 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
...
@@ -181,15 +177,9 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
{
{
if
(
mask
&
aBoard
->
GetEnabledLayers
()
)
if
(
mask
&
aBoard
->
GetEnabledLayers
()
)
{
{
#if USE_LAYER_NAMES
m_out
->
Print
(
aNestLevel
+
1
,
"(%d %s %s"
,
layer
,
m_out
->
Print
(
aNestLevel
+
1
,
"(%d %s %s"
,
layer
,
m_out
->
Quotew
(
aBoard
->
GetLayerName
(
layer
)
).
c_str
(),
m_out
->
Quotew
(
aBoard
->
GetLayerName
(
layer
)
).
c_str
(),
LAYER
::
ShowType
(
aBoard
->
GetLayerType
(
layer
)
)
);
LAYER
::
ShowType
(
aBoard
->
GetLayerType
(
layer
)
)
);
#else
m_out
->
Print
(
aNestLevel
+
1
,
"(%d %s %s"
,
layer
,
m_out
->
Quotew
(
aBoard
->
GetLayerName
(
layer
)
).
c_str
(),
LAYER
::
ShowType
(
aBoard
->
GetLayerType
(
layer
)
)
);
#endif
if
(
!
(
aBoard
->
GetVisibleLayers
()
&
mask
)
)
if
(
!
(
aBoard
->
GetVisibleLayers
()
&
mask
)
)
m_out
->
Print
(
0
,
" hide"
);
m_out
->
Print
(
0
,
" hide"
);
...
@@ -209,13 +199,8 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
...
@@ -209,13 +199,8 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
{
{
if
(
mask
&
aBoard
->
GetEnabledLayers
()
)
if
(
mask
&
aBoard
->
GetEnabledLayers
()
)
{
{
#if USE_LAYER_NAMES
m_out
->
Print
(
aNestLevel
+
1
,
"(%d %s user"
,
layer
,
m_out
->
Quotew
(
aBoard
->
GetLayerName
(
layer
)
).
c_str
()
);
#else
m_out
->
Print
(
aNestLevel
+
1
,
"(%d %s user"
,
layer
,
m_out
->
Print
(
aNestLevel
+
1
,
"(%d %s user"
,
layer
,
m_out
->
Quotew
(
aBoard
->
GetLayerName
(
layer
)
).
c_str
()
);
m_out
->
Quotew
(
aBoard
->
GetLayerName
(
layer
)
).
c_str
()
);
#endif
if
(
!
(
aBoard
->
GetVisibleLayers
()
&
mask
)
)
if
(
!
(
aBoard
->
GetVisibleLayers
()
&
mask
)
)
m_out
->
Print
(
0
,
" hide"
);
m_out
->
Print
(
0
,
" hide"
);
...
@@ -325,9 +310,7 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
...
@@ -325,9 +310,7 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
m_out
->
Print
(
aNestLevel
+
1
,
"(visible_elements %X)
\n
"
,
m_out
->
Print
(
aNestLevel
+
1
,
"(visible_elements %X)
\n
"
,
aBoard
->
GetDesignSettings
().
GetVisibleElements
()
);
aBoard
->
GetDesignSettings
().
GetVisibleElements
()
);
#if SAVE_PCB_PLOT_PARAMS
aBoard
->
GetPlotOptions
().
Format
(
m_out
,
aNestLevel
+
1
);
aBoard
->
GetPlotOptions
().
Format
(
m_out
,
aNestLevel
+
1
);
#endif
m_out
->
Print
(
aNestLevel
,
")
\n\n
"
);
m_out
->
Print
(
aNestLevel
,
")
\n\n
"
);
...
@@ -792,11 +775,7 @@ void PCB_IO::format( D_PAD* aPad, int aNestLevel ) const
...
@@ -792,11 +775,7 @@ void PCB_IO::format( D_PAD* aPad, int aNestLevel ) const
{
{
if
(
layerMask
&
1
)
if
(
layerMask
&
1
)
{
{
#if 1
m_out
->
Print
(
0
,
" %s"
,
m_out
->
Quotew
(
m_board
->
GetLayerName
(
layer
)
).
c_str
()
);
m_out
->
Print
(
0
,
" %s"
,
m_out
->
Quotew
(
m_board
->
GetLayerName
(
layer
)
).
c_str
()
);
#else
m_out
->
Print
(
0
,
" %d"
,
layer
);
#endif
}
}
}
}
...
@@ -951,13 +930,9 @@ void PCB_IO::format( TRACK* aTrack, int aNestLevel ) const
...
@@ -951,13 +930,9 @@ void PCB_IO::format( TRACK* aTrack, int aNestLevel ) const
if
(
aTrack
->
GetDrill
()
!=
UNDEFINED_DRILL_DIAMETER
)
if
(
aTrack
->
GetDrill
()
!=
UNDEFINED_DRILL_DIAMETER
)
m_out
->
Print
(
0
,
" (drill %s)"
,
FMT_IU
(
aTrack
->
GetDrill
()
).
c_str
()
);
m_out
->
Print
(
0
,
" (drill %s)"
,
FMT_IU
(
aTrack
->
GetDrill
()
).
c_str
()
);
#if 1
m_out
->
Print
(
0
,
" (layers %s %s)"
,
m_out
->
Print
(
0
,
" (layers %s %s)"
,
m_out
->
Quotew
(
m_board
->
GetLayerName
(
layer1
)
).
c_str
(),
m_out
->
Quotew
(
m_board
->
GetLayerName
(
layer1
)
).
c_str
(),
m_out
->
Quotew
(
m_board
->
GetLayerName
(
layer2
)
).
c_str
()
);
m_out
->
Quotew
(
m_board
->
GetLayerName
(
layer2
)
).
c_str
()
);
#else
m_out
->
Print
(
0
,
" (layers %d %d)"
,
layer1
,
layer2
);
#endif
}
}
else
else
{
{
...
@@ -965,11 +940,7 @@ void PCB_IO::format( TRACK* aTrack, int aNestLevel ) const
...
@@ -965,11 +940,7 @@ void PCB_IO::format( TRACK* aTrack, int aNestLevel ) const
FMT_IU
(
aTrack
->
GetStart
()
).
c_str
(),
FMT_IU
(
aTrack
->
GetEnd
()
).
c_str
(),
FMT_IU
(
aTrack
->
GetStart
()
).
c_str
(),
FMT_IU
(
aTrack
->
GetEnd
()
).
c_str
(),
FMT_IU
(
aTrack
->
GetWidth
()
).
c_str
()
);
FMT_IU
(
aTrack
->
GetWidth
()
).
c_str
()
);
#if 1
m_out
->
Print
(
0
,
" (layer %s)"
,
m_out
->
Quotew
(
aTrack
->
GetLayerName
()
).
c_str
()
);
m_out
->
Print
(
0
,
" (layer %s)"
,
m_out
->
Quotew
(
aTrack
->
GetLayerName
()
).
c_str
()
);
#else
m_out
->
Print
(
0
,
" (layer %d)"
,
aTrack
->
GetLayer
()
);
#endif
}
}
m_out
->
Print
(
0
,
" (net %d)"
,
aTrack
->
GetNet
()
);
m_out
->
Print
(
0
,
" (net %d)"
,
aTrack
->
GetNet
()
);
...
...
pcbnew/pcb_parser.cpp
View file @
04a17d33
...
@@ -698,7 +698,6 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
...
@@ -698,7 +698,6 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
int
PCB_PARSER
::
lookUpLayer
()
throw
(
PARSE_ERROR
,
IO_ERROR
)
int
PCB_PARSER
::
lookUpLayer
()
throw
(
PARSE_ERROR
,
IO_ERROR
)
{
{
#if USE_LAYER_NAMES
wxString
name
=
FromUTF8
();
wxString
name
=
FromUTF8
();
const
LAYER_HASH_MAP
::
iterator
it
=
m_layerMap
.
find
(
name
);
const
LAYER_HASH_MAP
::
iterator
it
=
m_layerMap
.
find
(
name
);
...
@@ -711,22 +710,6 @@ int PCB_PARSER::lookUpLayer() throw( PARSE_ERROR, IO_ERROR )
...
@@ -711,22 +710,6 @@ int PCB_PARSER::lookUpLayer() throw( PARSE_ERROR, IO_ERROR )
}
}
return
m_layerMap
[
name
];
return
m_layerMap
[
name
];
#else
if
(
CurTok
()
!=
T_NUMBER
)
Expecting
(
T_NUMBER
);
int
layerIndex
=
parseInt
();
if
(
!
m_board
->
IsLayerEnabled
(
layerIndex
)
)
{
wxString
error
;
error
.
Printf
(
wxT
(
"Layer index %d in file <%s> at line %d, offset %d was not defined in the layers section"
),
layerIndex
,
GetChars
(
CurSource
()
),
CurLineNumber
(),
CurOffset
()
);
THROW_IO_ERROR
(
error
);
}
return
layerIndex
;
#endif
}
}
...
@@ -941,8 +924,8 @@ void PCB_PARSER::parseSetup() throw( IO_ERROR, PARSE_ERROR )
...
@@ -941,8 +924,8 @@ void PCB_PARSER::parseSetup() throw( IO_ERROR, PARSE_ERROR )
case
T_aux_axis_origin
:
case
T_aux_axis_origin
:
{
{
int
x
=
parseBoardUnits
(
"auxilary origin X"
);
int
x
=
parseBoardUnits
(
"auxil
i
ary origin X"
);
int
y
=
parseBoardUnits
(
"auxilary origin Y"
);
int
y
=
parseBoardUnits
(
"auxil
i
ary origin Y"
);
// x, y are not evaluated left to right, since they are push on stack right to left
// x, y are not evaluated left to right, since they are push on stack right to left
m_board
->
SetOriginAxisPosition
(
wxPoint
(
x
,
y
)
);
m_board
->
SetOriginAxisPosition
(
wxPoint
(
x
,
y
)
);
NeedRIGHT
();
NeedRIGHT
();
...
@@ -954,7 +937,6 @@ void PCB_PARSER::parseSetup() throw( IO_ERROR, PARSE_ERROR )
...
@@ -954,7 +937,6 @@ void PCB_PARSER::parseSetup() throw( IO_ERROR, PARSE_ERROR )
NeedRIGHT
();
NeedRIGHT
();
break
;
break
;
#if SAVE_PCB_PLOT_PARAMS
case
T_pcbplotparams
:
case
T_pcbplotparams
:
{
{
PCB_PLOT_PARAMS
plotParams
;
PCB_PLOT_PARAMS
plotParams
;
...
@@ -962,9 +944,11 @@ void PCB_PARSER::parseSetup() throw( IO_ERROR, PARSE_ERROR )
...
@@ -962,9 +944,11 @@ void PCB_PARSER::parseSetup() throw( IO_ERROR, PARSE_ERROR )
plotParams
.
Parse
(
&
parser
);
plotParams
.
Parse
(
&
parser
);
m_board
->
SetPlotOptions
(
plotParams
);
m_board
->
SetPlotOptions
(
plotParams
);
// I don't know why but this seems to fix a problem in PCB_PLOT_PARAMS::Parse().
NextTok
();
break
;
break
;
}
}
#endif
default
:
default
:
Unexpected
(
CurText
()
);
Unexpected
(
CurText
()
);
...
@@ -2308,12 +2292,12 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER() throw( IO_ERROR, PARSE_ERROR )
...
@@ -2308,12 +2292,12 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER() throw( IO_ERROR, PARSE_ERROR )
wxT
(
"Cannot parse "
)
+
GetTokenString
(
CurTok
()
)
+
wxT
(
"Cannot parse "
)
+
GetTokenString
(
CurTok
()
)
+
wxT
(
" as ZONE_CONTAINER."
)
);
wxT
(
" as ZONE_CONTAINER."
)
);
int
hatchStyle
=
CPolyLine
::
NO_HATCH
;
// Fix compil warning
int
hatchStyle
=
CPolyLine
::
NO_HATCH
;
// Fix compil
e
warning
int
hatchPitch
=
0
;
// Fix compil warning
int
hatchPitch
=
0
;
// Fix compil
e
warning
wxPoint
pt
;
wxPoint
pt
;
T
token
;
T
token
;
// bigger scope since each filled_polygon is concat
o
nated in here
// bigger scope since each filled_polygon is concat
e
nated in here
std
::
vector
<
CPolyPt
>
pts
;
std
::
vector
<
CPolyPt
>
pts
;
auto_ptr
<
ZONE_CONTAINER
>
zone
(
new
ZONE_CONTAINER
(
m_board
)
);
auto_ptr
<
ZONE_CONTAINER
>
zone
(
new
ZONE_CONTAINER
(
m_board
)
);
...
...
pcbnew/pcb_parser.h
View file @
04a17d33
...
@@ -54,12 +54,9 @@ class ZONE_CONTAINER;
...
@@ -54,12 +54,9 @@ class ZONE_CONTAINER;
WX_DECLARE_STRING_HASH_MAP
(
int
,
LAYER_HASH_MAP
);
WX_DECLARE_STRING_HASH_MAP
(
int
,
LAYER_HASH_MAP
);
#define USE_LAYER_NAMES 1 // Set to 0 to format and parse layers by index number.
#define SAVE_PCB_PLOT_PARAMS 0 // Set to 1 to save and load the PCB plot dialog data.
/**
/**
* Class PCB_PARSER
* Class PCB_PARSER
* reads a Pcbnew s-expression f
ro
matted #LINE_READER object and returns the appropriate
* reads a Pcbnew s-expression f
or
matted #LINE_READER object and returns the appropriate
* #BOARD_ITEM object.
* #BOARD_ITEM object.
*/
*/
class
PCB_PARSER
:
public
PCB_LEXER
class
PCB_PARSER
:
public
PCB_LEXER
...
@@ -124,7 +121,7 @@ class PCB_PARSER : public PCB_LEXER
...
@@ -124,7 +121,7 @@ class PCB_PARSER : public PCB_LEXER
* parses a coordinate pair (xy X Y) in board units (mm).
* parses a coordinate pair (xy X Y) in board units (mm).
*
*
* The parser checks if the previous token was T_LEFT and parses the remainder of
* The parser checks if the previous token was T_LEFT and parses the remainder of
* the token syntax. This is used when parsing a list of coorinate points. This
* the token syntax. This is used when parsing a list of coor
d
inate points. This
* way the parser can be used in either case.
* way the parser can be used in either case.
*
*
* @throw PARSE_ERROR if the coordinate pair syntax is incorrect.
* @throw PARSE_ERROR if the coordinate pair syntax is incorrect.
...
...
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