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
370356b6
Commit
370356b6
authored
Nov 30, 2010
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
preparing Gerbview enhancements.Add comments
parent
6396c2eb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
89 additions
and
77 deletions
+89
-77
class_am_param.cpp
gerbview/class_am_param.cpp
+5
-2
class_am_param.h
gerbview/class_am_param.h
+70
-70
class_aperture_macro.h
gerbview/class_aperture_macro.h
+14
-5
No files found.
gerbview/class_am_param.cpp
View file @
370356b6
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
#include "class_am_param.h"
#include "class_am_param.h"
extern
int
ReadInt
(
char
*&
text
,
bool
aSkipSeparator
=
true
);
extern
int
ReadInt
(
char
*&
text
,
bool
aSkipSeparator
=
true
);
extern
double
ReadDouble
(
char
*&
text
,
bool
aSkipSeparator
=
true
);
extern
double
ReadDouble
(
char
*&
text
,
bool
aSkipSeparator
=
true
);
/*Class AM_PARAM
/*Class AM_PARAM
...
@@ -61,6 +61,7 @@ double AM_PARAM::GetValue( const D_CODE* aDcode ) const
...
@@ -61,6 +61,7 @@ double AM_PARAM::GetValue( const D_CODE* aDcode ) const
}
}
}
}
/**
/**
* Function ReadParam
* Function ReadParam
* Read one aperture macro parameter
* Read one aperture macro parameter
...
@@ -76,6 +77,7 @@ double AM_PARAM::GetValue( const D_CODE* aDcode ) const
...
@@ -76,6 +77,7 @@ double AM_PARAM::GetValue( const D_CODE* aDcode ) const
bool
AM_PARAM
::
ReadParam
(
char
*&
aText
)
bool
AM_PARAM
::
ReadParam
(
char
*&
aText
)
{
{
bool
found
=
false
;
bool
found
=
false
;
if
(
*
aText
==
'$'
)
// value defined later, in aperture description
if
(
*
aText
==
'$'
)
// value defined later, in aperture description
{
{
++
aText
;
++
aText
;
...
@@ -91,8 +93,9 @@ bool AM_PARAM::ReadParam( char*& aText )
...
@@ -91,8 +93,9 @@ bool AM_PARAM::ReadParam( char*& aText )
// Skip extra characters and separator
// Skip extra characters and separator
while
(
*
aText
&&
(
*
aText
!=
','
)
&&
(
*
aText
!=
'*'
)
)
while
(
*
aText
&&
(
*
aText
!=
','
)
&&
(
*
aText
!=
'*'
)
)
aText
++
;
aText
++
;
if
(
*
aText
==
','
)
if
(
*
aText
==
','
)
aText
++
;
aText
++
;
return
found
;
return
found
;
}
}
gerbview/class_am_param.h
View file @
370356b6
...
@@ -31,74 +31,74 @@
...
@@ -31,74 +31,74 @@
#define _AM_PARAM_H_
#define _AM_PARAM_H_
/*
/*
An aperture macro defines a complex shape and is a list of aperture primitives.
*
An aperture macro defines a complex shape and is a list of aperture primitives.
Each aperture primitive defines a simple shape (circle, rect, regular polygon...)
*
Each aperture primitive defines a simple shape (circle, rect, regular polygon...)
Inside a given aperture primitive, a fixed list of parameters defines info
*
Inside a given aperture primitive, a fixed list of parameters defines info
about the shape: size, thickness, number of vertex ...
*
about the shape: size, thickness, number of vertex ...
*
Each parameter can be an immediate value or a defered value.
*
Each parameter can be an immediate value or a defered value.
When value is defered, it is defined when the aperture macro is instancied by
*
When value is defered, it is defined when the aperture macro is instancied by
an ADD macro command
*
an ADD macro command
*
Actual values of a par
meter can also be the result of an arithmetic operation.
* Actual values of a para
meter can also be the result of an arithmetic operation.
*
Here is some examples:
*
Here is some examples:
An immediate value:
*
An immediate value:
3.5
*
3.5
A deferend value:
*
A deferend value:
$2 means: replace me by the second value given in the ADD command
*
$2 means: replace me by the second value given in the ADD command
Actual value as arithmetic calculation:
*
Actual value as arithmetic calculation:
$2/2+1
*
$2/2+1
*
Note also a defered parameter can be defined in aperture macro,
*
Note also a defered parameter can be defined in aperture macro,
but outside aperture primitives. Example
*
but outside aperture primitives. Example
%AMRECTHERM*
*
%AMRECTHERM*
$4=$3/2* parameter $4 is half value of parameter $3
*
$4=$3/2* parameter $4 is half value of parameter $3
21,1,$1-$3,$2-$3,0-$1/2-$4,0-$2/2-$4,0*
*
21,1,$1-$3,$2-$3,0-$1/2-$4,0-$2/2-$4,0*
For the aperture primitive, parameters $1 to $3 will be defined in ADD command,
*
For the aperture primitive, parameters $1 to $3 will be defined in ADD command,
and $4 is defined inside the macro
*
and $4 is defined inside the macro
*
Some examples of aperture macro definition
*
Some examples of aperture macro definition
A simple definition, no parameters:
*
A simple definition, no parameters:
%AMMOIRE10*
*
%AMMOIRE10*
6,0,0,0.350000,0.005,0.050,3,0.005,0.400000,0.0*%
*
6,0,0,0.350000,0.005,0.050,3,0.005,0.400000,0.0*%
Example of instanciation:
*
Example of instanciation:
%ADD19THERM19*%
*
%ADD19THERM19*%
*
A simple definition, one parameter:
*
A simple definition, one parameter:
%AMCIRCLE*
*
%AMCIRCLE*
1,1,$1,0,0*
*
1,1,$1,0,0*
Example of instanciation:
*
Example of instanciation:
%ADD11CIRCLE,.5*%
*
%ADD11CIRCLE,.5*%
*
A definition, with parameters and arithmetic operations:
*
A definition, with parameters and arithmetic operations:
%AMVECTOR*
*
%AMVECTOR*
2,1,$1,0,0,$2+1,$3,-135*%
*
2,1,$1,0,0,$2+1,$3,-135*%
Example of instanciation:
*
Example of instanciation:
%ADD12VECTOR,0.05X0X0*%
*
%ADD12VECTOR,0.05X0X0*%
*
A more complicated aperture macro definition, with parameters and arihmetic operations:
*
A more complicated aperture macro definition, with parameters and arihmetic operations:
%AMRNDREC*
*
%AMRNDREC*
0 this is a comment*
*
0 this is a comment*
21,1,$1+$1,$2+$2-$3-$3,0,0,0*
*
21,1,$1+$1,$2+$2-$3-$3,0,0,0*
21,1,$1+$1-$3-$3,$2+$2,0,0,0*
*
21,1,$1+$1-$3-$3,$2+$2,0,0,0*
1,1,$3+$3,$1-$3,$2-$3*
*
1,1,$3+$3,$1-$3,$2-$3*
1,1,$3+$3,$3-$1,$2-$3*
*
1,1,$3+$3,$3-$1,$2-$3*
1,1,$3+$3,$1-$3,$3-$2*
*
1,1,$3+$3,$1-$3,$3-$2*
1,1,$3+$3,$3-$1,$3-$2*%
*
1,1,$3+$3,$3-$1,$3-$2*%
Example of instanciation:
*
Example of instanciation:
*
A more complicated sample of aperture macro definition:
*
A more complicated sample of aperture macro definition:
G04 Rectangular Thermal Macro, params: W/2, H/2, T/2 *
*
G04 Rectangular Thermal Macro, params: W/2, H/2, T/2 *
%AMRECTHERM*
*
%AMRECTHERM*
$4=$3/2*
*
$4=$3/2*
21,1,$1-$3,$2-$3,0-$1/2-$4,0-$2/2-$4,0*
*
21,1,$1-$3,$2-$3,0-$1/2-$4,0-$2/2-$4,0*
21,1,$1-$3,$2-$3,0-$1/2-$4,$2/2+$4,0*
*
21,1,$1-$3,$2-$3,0-$1/2-$4,$2/2+$4,0*
21,1,$1-$3,$2-$3,$1/2+$4,0-$2/2-$4,0*
*
21,1,$1-$3,$2-$3,$1/2+$4,0-$2/2-$4,0*
21,1,$1-$3,$2-$3,$1/2+$4,$2/2+$4,0*%
*
21,1,$1-$3,$2-$3,$1/2+$4,$2/2+$4,0*%
Example of instanciation:
*
Example of instanciation:
%ADD28RECTHERM,0.035591X0.041496X0.005000*%
*
%ADD28RECTHERM,0.035591X0.041496X0.005000*%
*/
*/
#include <vector>
#include <vector>
...
@@ -114,8 +114,7 @@ Example of instanciation:
...
@@ -114,8 +114,7 @@ Example of instanciation:
*/
*/
class
AM_PARAM
class
AM_PARAM
{
{
public
:
public
:
AM_PARAM
()
:
AM_PARAM
()
:
index
(
-
1
),
index
(
-
1
),
value
(
0
.
0
)
value
(
0
.
0
)
{}
{}
...
@@ -147,6 +146,7 @@ public:
...
@@ -147,6 +146,7 @@ public:
index
=
aIndex
;
index
=
aIndex
;
}
}
/**
/**
* Function ReadParam
* Function ReadParam
* Read one aperture macro parameter
* Read one aperture macro parameter
...
...
gerbview/class_aperture_macro.h
View file @
370356b6
...
@@ -36,6 +36,16 @@
...
@@ -36,6 +36,16 @@
#include "base_struct.h"
#include "base_struct.h"
#include "class_am_param.h"
#include "class_am_param.h"
/*
* An aperture macro defines a complex shape and is a list of aperture primitives.
* Each aperture primitive defines a simple shape (circle, rect, regular polygon...)
* Inside a given aperture primitive, a fixed list of parameters defines info
* about the shape: size, thickness, number of vertex ...
*
* Each parameter can be an immediate value or a defered value.
* When value is defered, it is defined when the aperture macro is instancied by
* an ADD macro command
*/
/**
/**
* Enum AM_PRIMITIVE_ID
* Enum AM_PRIMITIVE_ID
...
@@ -74,8 +84,7 @@ public:
...
@@ -74,8 +84,7 @@ public:
bool
m_GerbMetric
;
// units for this primitive:
bool
m_GerbMetric
;
// units for this primitive:
// false = Inches, true = metric
// false = Inches, true = metric
public
:
public
:
AM_PRIMITIVE
(
bool
aGerbMetric
,
AM_PRIMITIVE_ID
aId
=
AMP_UNKNOWN
)
AM_PRIMITIVE
(
bool
aGerbMetric
,
AM_PRIMITIVE_ID
aId
=
AMP_UNKNOWN
)
{
{
primitive_id
=
aId
;
primitive_id
=
aId
;
m_GerbMetric
=
aGerbMetric
;
m_GerbMetric
=
aGerbMetric
;
...
@@ -89,7 +98,7 @@ public:
...
@@ -89,7 +98,7 @@ public:
* returns the first parameter in integer form. Some but not all primitives
* returns the first parameter in integer form. Some but not all primitives
* use the first parameter as an exposure control.
* use the first parameter as an exposure control.
*/
*/
int
GetExposure
(
GERBER_DRAW_ITEM
*
aParent
)
const
;
int
GetExposure
(
GERBER_DRAW_ITEM
*
aParent
)
const
;
/**
/**
* Function mapExposure
* Function mapExposure
...
@@ -132,7 +141,7 @@ public:
...
@@ -132,7 +141,7 @@ public:
* @param aParent = the parent GERBER_DRAW_ITEM which is actually drawn
* @param aParent = the parent GERBER_DRAW_ITEM which is actually drawn
* @return a dimension, or -1 if no dim to calculate
* @return a dimension, or -1 if no dim to calculate
*/
*/
int
GetShapeDim
(
GERBER_DRAW_ITEM
*
aParent
);
int
GetShapeDim
(
GERBER_DRAW_ITEM
*
aParent
);
private
:
private
:
...
@@ -184,7 +193,7 @@ struct APERTURE_MACRO
...
@@ -184,7 +193,7 @@ struct APERTURE_MACRO
* @param aParent = the parent GERBER_DRAW_ITEM which is actually drawn
* @param aParent = the parent GERBER_DRAW_ITEM which is actually drawn
* @return a dimension, or -1 if no dim to calculate
* @return a dimension, or -1 if no dim to calculate
*/
*/
int
GetShapeDim
(
GERBER_DRAW_ITEM
*
aParent
);
int
GetShapeDim
(
GERBER_DRAW_ITEM
*
aParent
);
};
};
...
...
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