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
5f777f8c
Commit
5f777f8c
authored
Aug 09, 2008
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcbnew: bug solved: pad holes not printed
parent
f98fd09f
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
232 additions
and
127 deletions
+232
-127
change_log.txt
change_log.txt
+6
-0
gr_basic.cpp
common/gr_basic.cpp
+12
-0
gr_basic.h
include/gr_basic.h
+9
-0
class_module.cpp
pcbnew/class_module.cpp
+3
-44
class_pad.cpp
pcbnew/class_pad.cpp
+11
-1
class_text_mod.cpp
pcbnew/class_text_mod.cpp
+154
-59
class_text_mod.h
pcbnew/class_text_mod.h
+32
-21
lay2plot.cpp
pcbnew/lay2plot.cpp
+5
-2
No files found.
change_log.txt
View file @
5f777f8c
...
...
@@ -5,6 +5,12 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2008-Aug-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
bug solved: pads holes not printed.
+eeschema
enforced controls against malformed libraries
2008-Aug-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
...
...
common/gr_basic.cpp
View file @
5f777f8c
...
...
@@ -320,10 +320,22 @@ void GRSetBrush( wxDC* DC, int Color, int fill )
/*************************************/
void
GRForceBlackPen
(
bool
flagforce
)
/*************************************/
/** function GRForceBlackPen
* @param flagforce True to force a black pen whenever the asked color
*/
{
ForceBlackPen
=
flagforce
;
}
/***********************************/
bool
GetGRForceBlackPenState
(
void
)
/***********************************/
/** function GetGRForceBlackPenState
* @return ForceBlackPen (True if a black pen was forced)
*/
{
return
ForceBlackPen
;
}
/************************************************************/
/* routines de controle et positionnement du curseur souris */
...
...
include/gr_basic.h
View file @
5f777f8c
...
...
@@ -67,7 +67,16 @@ int GRGetDrawMode(wxDC * DC);
void
GRResetPenAndBrush
(
wxDC
*
DC
);
void
GRSetColorPen
(
wxDC
*
DC
,
int
Color
,
int
width
=
1
,
int
stype
=
wxSOLID
);
void
GRSetBrush
(
wxDC
*
DC
,
int
Color
,
int
fill
=
0
);
/** function GRForceBlackPen
* @param flagforce True to force a black pen whenever the asked color
*/
void
GRForceBlackPen
(
bool
flagforce
);
/** function GetGRForceBlackPenState
* @return ForceBlackPen (True if a black pen was forced)
*/
bool
GetGRForceBlackPenState
(
void
);
void
SetPenMinWidth
(
int
minwidth
);
/* ajustage de la largeur mini de plume */
void
GRLine
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
);
...
...
pcbnew/class_module.cpp
View file @
5f777f8c
...
...
@@ -571,7 +571,7 @@ int MODULE::ReadDescr( FILE* File, int* LineNum )
EDA_BaseStruct
*
LastModStruct
=
NULL
;
EDGE_MODULE
*
DrawSegm
;
TEXTE_MODULE
*
DrawText
;
char
Line
[
256
],
BufLine
[
256
],
BufCar1
[
128
],
BufCar2
[
128
],
*
PtLine
;
char
Line
[
256
],
BufLine
[
256
],
BufCar1
[
128
],
*
PtLine
;
int
itmp1
,
itmp2
;
while
(
GetLine
(
File
,
Line
,
LineNum
,
sizeof
(
Line
)
-
1
)
!=
NULL
)
...
...
@@ -672,7 +672,7 @@ int MODULE::ReadDescr( FILE* File, int* LineNum )
}
break
;
case
'T'
:
/*
lecture des textes modules
*/
case
'T'
:
/*
Read a footprint text description (ref, value, or drawing
*/
sscanf
(
Line
+
1
,
"%d"
,
&
itmp1
);
if
(
itmp1
==
TEXT_is_REFERENCE
)
DrawText
=
m_Reference
;
...
...
@@ -694,48 +694,7 @@ int MODULE::ReadDescr( FILE* File, int* LineNum )
LastModStruct
=
DrawText
;
}
int
layer
;
sscanf
(
Line
+
1
,
"%d %d %d %d %d %d %d %s %s %d"
,
&
itmp1
,
&
DrawText
->
m_Pos0
.
x
,
&
DrawText
->
m_Pos0
.
y
,
&
DrawText
->
m_Size
.
y
,
&
DrawText
->
m_Size
.
x
,
&
DrawText
->
m_Orient
,
&
DrawText
->
m_Width
,
BufCar1
,
BufCar2
,
&
layer
);
DrawText
->
m_Type
=
itmp1
;
DrawText
->
m_Orient
-=
m_Orient
;
// m_Orient texte relative au module
if
(
BufCar1
[
0
]
==
'M'
)
DrawText
->
m_Miroir
=
0
;
else
DrawText
->
m_Miroir
=
1
;
if
(
BufCar2
[
0
]
==
'I'
)
DrawText
->
m_NoShow
=
1
;
else
DrawText
->
m_NoShow
=
0
;
if
(
layer
==
COPPER_LAYER_N
)
layer
=
SILKSCREEN_N_CU
;
else
if
(
layer
==
CMP_N
)
layer
=
SILKSCREEN_N_CMP
;
DrawText
->
SetLayer
(
layer
);
/* calcul de la position vraie */
DrawText
->
SetDrawCoord
();
/* Lecture de la chaine "text" */
ReadDelimitedText
(
BufLine
,
Line
,
sizeof
(
BufLine
)
);
DrawText
->
m_Text
=
CONV_FROM_UTF8
(
BufLine
);
// Test for a reasonnable width:
if
(
DrawText
->
m_Width
<=
1
)
DrawText
->
m_Width
=
1
;
if
(
DrawText
->
m_Width
>
TEXTS_MAX_WIDTH
)
DrawText
->
m_Width
=
TEXTS_MAX_WIDTH
;
// Test for a reasonnable size:
if
(
DrawText
->
m_Size
.
x
<
TEXTS_MIN_SIZE
)
DrawText
->
m_Size
.
x
=
TEXTS_MIN_SIZE
;
if
(
DrawText
->
m_Size
.
y
<
TEXTS_MIN_SIZE
)
DrawText
->
m_Size
.
y
=
TEXTS_MIN_SIZE
;
DrawText
->
ReadDescr
(
Line
,
File
,
LineNum
);
break
;
case
'D'
:
/* lecture du contour */
...
...
pcbnew/class_pad.cpp
View file @
5f777f8c
...
...
@@ -550,7 +550,15 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
if
(
fillpad
&&
hole
)
{
color
=
g_IsPrinting
?
WHITE
:
BLACK
;
// ou DARKGRAY;
bool
blackpenstate
=
false
;
if
(
g_IsPrinting
)
{
blackpenstate
=
GetGRForceBlackPenState
(
);
GRForceBlackPen
(
false
);
color
=
WHITE
;
}
else
color
=
BLACK
;
// or DARKGRAY;
if
(
draw_mode
!=
GR_XOR
)
GRSetDrawMode
(
DC
,
GR_COPY
);
...
...
@@ -589,6 +597,8 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
default
:
break
;
}
if
(
g_IsPrinting
)
GRForceBlackPen
(
blackpenstate
);
}
GRSetDrawMode
(
DC
,
draw_mode
);
...
...
pcbnew/class_text_mod.cpp
View file @
5f777f8c
This diff is collapsed.
Click to expand it.
pcbnew/class_text_mod.h
View file @
5f777f8c
...
...
@@ -46,20 +46,20 @@ public:
/* supprime du chainage la structure Struct */
void
UnLink
();
void
UnLink
();
void
Copy
(
TEXTE_MODULE
*
source
);
// copy structure
void
Copy
(
TEXTE_MODULE
*
source
);
// copy structure
/* Gestion du texte */
void
SetWidth
(
int
new_width
);
int
GetLength
();
/* text length */
int
Pitch
();
/* retourne le pas entre 2 caracteres */
int
GetDrawRotation
();
// Return text rotation for drawings and plotting
void
SetWidth
(
int
new_width
);
int
GetLength
();
/* text length */
int
Pitch
();
/* retourne le pas entre 2 caracteres */
int
GetDrawRotation
();
// Return text rotation for drawings and plotting
/** Function GetTextRect
* @return an EDA_Rect which gives the position and size of the text area (for the 0 orient text and footprint)
*/
EDA_Rect
GetTextRect
(
void
);
EDA_Rect
GetTextRect
(
void
);
/**
* Function GetBoundingBox
...
...
@@ -67,10 +67,11 @@ public:
*/
EDA_Rect
GetBoundingBox
();
void
SetDrawCoord
();
// mise a jour des coordonn�s absolues de trac�
// a partir des coord relatives
void
SetDrawCoord
();
// mise a jour des coordonn�s absolues de trac�
void
SetLocalCoord
();
// mise a jour des coordonn�s relatives
// a partir des coord relatives
void
SetLocalCoord
();
// mise a jour des coordonn�s relatives
/**
* Function Save
...
...
@@ -78,13 +79,23 @@ public:
* @param aFile The FILE to write to.
* @return bool - true if success writing else false.
*/
bool
Save
(
FILE
*
aFile
)
const
;
bool
Save
(
FILE
*
aFile
)
const
;
int
ReadDescr
(
FILE
*
File
,
int
*
LineNum
=
NULL
);
/**
* Function ReadLineDescr
* Read description from a given line in "*.brd" format.
* @param aLine The current line which contains the first line of description.
* @param aLine The FILE to read next lines (currently not used).
* @param LineNum a point to the line count (currently not used).
* @return int - > 0 if success reading else 0.
*/
int
ReadDescr
(
char
*
aLine
,
FILE
*
aFile
,
int
*
aLineNum
=
NULL
);
/* drawing functions */
void
Draw
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
int
aDrawMode
,
const
wxPoint
&
offset
=
ZeroOffset
);
void
Draw
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
int
aDrawMode
,
const
wxPoint
&
offset
=
ZeroOffset
);
/**
...
...
@@ -94,7 +105,7 @@ public:
* Is virtual from EDA_BaseStruct.
* @param frame A WinEDA_DrawFrame in which to print status information.
*/
void
Display_Infos
(
WinEDA_DrawFrame
*
frame
);
void
Display_Infos
(
WinEDA_DrawFrame
*
frame
);
/**
...
...
@@ -103,7 +114,7 @@ public:
* @param posref A wxPoint to test
* @return bool - true if a hit, else false
*/
bool
HitTest
(
const
wxPoint
&
posref
);
bool
HitTest
(
const
wxPoint
&
posref
);
/**
* Function IsOnLayer
...
...
@@ -124,12 +135,10 @@ public:
* virtual inheritance from BOARD_ITEM.
* @param aLayerMask The bit-mapped set of layers to test for.
* @return bool - true if on one of the given layers, else false.
bool IsOnOneOfTheseLayers( int aLayerMask ) const;
*
bool IsOnOneOfTheseLayers( int aLayerMask ) const;
*/
/**
* Function GetClass
* returns the class name.
...
...
@@ -140,7 +149,9 @@ public:
return
wxT
(
"MTEXT"
);
}
#if defined(DEBUG)
#if defined (DEBUG)
/**
* Function Show
* is used to output the object tree, currently for debugging only.
...
...
@@ -149,8 +160,8 @@ public:
* @param os The ostream& to output to.
*/
virtual
void
Show
(
int
nestLevel
,
std
::
ostream
&
os
);
#endif
};
#endif // TEXT_MODULE_H
pcbnew/lay2plot.cpp
View file @
5f777f8c
...
...
@@ -108,10 +108,12 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
Plot_Module
(
this
,
DC
,
Module
,
drawmode
,
printmasklayer
);
}
/* draw the via holes */
/* draw the via holes
in white color
*/
pt_piste
=
Pcb
->
m_Track
;
int
rayon
=
g_DesignSettings
.
m_ViaDrill
/
2
;
int
color
=
WHITE
;
bool
blackpenstate
=
GetGRForceBlackPenState
(
);
GRForceBlackPen
(
FALSE
);
for
(
;
pt_piste
!=
NULL
;
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
{
if
(
(
printmasklayer
&
pt_piste
->
ReturnMaskLayer
()
)
==
0
)
...
...
@@ -123,6 +125,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
rayon
,
0
,
color
,
color
);
}
}
GRForceBlackPen
(
blackpenstate
);
if
(
Print_Sheet_Ref
)
m_Parent
->
TraceWorkSheet
(
DC
,
ActiveScreen
,
0
);
...
...
@@ -159,7 +162,7 @@ static void Plot_Module( WinEDA_DrawPanel* panel, wxDC* DC,
pt_pad
->
Draw
(
panel
,
DC
,
draw_mode
);
((
WinEDA_BasePcbFrame
*
)
panel
->
m_Parent
)
->
m_DisplayPadFill
=
tmp_fill
;
}
else
// on copper layer, draw pads accordin
t
to current options
else
// on copper layer, draw pads accordin
g
to current options
pt_pad
->
Draw
(
panel
,
DC
,
draw_mode
);
}
...
...
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