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
8f853800
Commit
8f853800
authored
Jul 13, 2009
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Topo-R specctra import fix
parent
d188bf5a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
93 additions
and
10 deletions
+93
-10
CHANGELOG.txt
CHANGELOG.txt
+8
-0
specctra.cpp
pcbnew/specctra.cpp
+47
-4
specctra.h
pcbnew/specctra.h
+38
-6
No files found.
CHANGELOG.txt
View file @
8f853800
...
...
@@ -4,6 +4,14 @@ KiCad ChangeLog 2009
Please add newer entries at the top, list the date and your name with
email address.
2009-Jul-13 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
added support to specctra import for the <structure_out> descriptor.
<route_descriptor> had confused <structure_descriptor> with the <structure_out_descriptor>
The fix facillitates round tripping from the TOPO-R router.
2009-july-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Eeschema:
...
...
pcbnew/specctra.cpp
View file @
8f853800
...
...
@@ -834,6 +834,49 @@ L_place:
}
void
SPECCTRA_DB
::
doSTRUCTURE_OUT
(
STRUCTURE_OUT
*
growth
)
throw
(
IOError
)
{
/*
<structure_out_descriptor >::=
(structure_out
{<layer_descriptor> }
[<rule_descriptor> ]
)
*/
DSN_T
tok
=
nextTok
();
while
(
tok
!=
T_RIGHT
)
{
if
(
tok
!=
T_LEFT
)
expecting
(
T_LEFT
);
tok
=
nextTok
();
switch
(
tok
)
{
case
T_layer
:
LAYER
*
layer
;
layer
=
new
LAYER
(
growth
);
growth
->
layers
.
push_back
(
layer
);
doLAYER
(
layer
);
break
;
case
T_rule
:
if
(
growth
->
rules
)
unexpected
(
tok
);
growth
->
rules
=
new
RULE
(
growth
,
T_rule
);
doRULE
(
growth
->
rules
);
break
;
default
:
unexpected
(
lexer
->
CurText
()
);
}
tok
=
nextTok
();
}
}
void
SPECCTRA_DB
::
doKEEPOUT
(
KEEPOUT
*
growth
)
throw
(
IOError
)
{
DSN_T
tok
=
nextTok
();
...
...
@@ -3303,11 +3346,11 @@ void SPECCTRA_DB::doROUTE( ROUTE* growth ) throw( IOError )
doPARSER
(
growth
->
parser
);
break
;
case
T_structure
:
if
(
growth
->
structure
)
case
T_structure
_out
:
if
(
growth
->
structure
_out
)
unexpected
(
tok
);
growth
->
structure
=
new
STRUCTURE
(
growth
);
doSTRUCTURE
(
growth
->
structure
);
growth
->
structure
_out
=
new
STRUCTURE_OUT
(
growth
);
doSTRUCTURE
_OUT
(
growth
->
structure_out
);
break
;
case
T_library_out
:
...
...
pcbnew/specctra.h
View file @
8f853800
...
...
@@ -1320,6 +1320,8 @@ public:
}
};
typedef
boost
::
ptr_vector
<
LAYER
>
LAYERS
;
class
LAYER_PAIR
:
public
ELEM
{
...
...
@@ -1552,13 +1554,42 @@ public:
};
class
STRUCTURE_OUT
:
public
ELEM
{
friend
class
SPECCTRA_DB
;
LAYERS
layers
;
RULE
*
rules
;
public
:
STRUCTURE_OUT
(
ELEM
*
aParent
)
:
ELEM
(
T_structure_out
,
aParent
)
{
rules
=
0
;
}
~
STRUCTURE_OUT
()
{
delete
rules
;
}
void
FormatContents
(
OUTPUTFORMATTER
*
out
,
int
nestLevel
)
throw
(
IOError
)
{
for
(
LAYERS
::
iterator
i
=
layers
.
begin
();
i
!=
layers
.
end
();
++
i
)
i
->
Format
(
out
,
nestLevel
);
if
(
rules
)
rules
->
Format
(
out
,
nestLevel
);
}
};
class
STRUCTURE
:
public
ELEM_HOLDER
{
friend
class
SPECCTRA_DB
;
UNIT_RES
*
unit
;
typedef
boost
::
ptr_vector
<
LAYER
>
LAYERS
;
LAYERS
layers
;
LAYER_NOISE_WEIGHT
*
layer_noise_weight
;
...
...
@@ -3435,7 +3466,7 @@ class ROUTE : public ELEM
UNIT_RES
*
resolution
;
PARSER
*
parser
;
STRUCTURE
*
structure
;
STRUCTURE
_OUT
*
structure_out
;
LIBRARY
*
library
;
NET_OUTS
net_outs
;
// TEST_POINTS* test_points;
...
...
@@ -3447,14 +3478,14 @@ public:
{
resolution
=
0
;
parser
=
0
;
structure
=
0
;
structure
_out
=
0
;
library
=
0
;
}
~
ROUTE
()
{
delete
resolution
;
delete
parser
;
delete
structure
;
delete
structure
_out
;
delete
library
;
// delete test_points;
}
...
...
@@ -3475,8 +3506,8 @@ public:
if
(
parser
)
parser
->
Format
(
out
,
nestLevel
);
if
(
structure
)
structure
->
Format
(
out
,
nestLevel
);
if
(
structure
_out
)
structure
_out
->
Format
(
out
,
nestLevel
);
if
(
library
)
library
->
Format
(
out
,
nestLevel
);
...
...
@@ -3781,6 +3812,7 @@ class SPECCTRA_DB : public OUTPUTFORMATTER
void
doRESOLUTION
(
UNIT_RES
*
growth
)
throw
(
IOError
);
void
doUNIT
(
UNIT_RES
*
growth
)
throw
(
IOError
);
void
doSTRUCTURE
(
STRUCTURE
*
growth
)
throw
(
IOError
);
void
doSTRUCTURE_OUT
(
STRUCTURE_OUT
*
growth
)
throw
(
IOError
);
void
doLAYER_NOISE_WEIGHT
(
LAYER_NOISE_WEIGHT
*
growth
)
throw
(
IOError
);
void
doLAYER_PAIR
(
LAYER_PAIR
*
growth
)
throw
(
IOError
);
void
doBOUNDARY
(
BOUNDARY
*
growth
)
throw
(
IOError
);
...
...
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