add patch from Cirilo Bernardo (about IDF export) , and minor fixes.
This commit is contained in:
commit
4f29440f5f
|
@ -59,7 +59,7 @@ void S3D_MATERIAL::SetMaterial()
|
|||
|
||||
void S3D_MASTER::Copy( S3D_MASTER* pattern )
|
||||
{
|
||||
m_Shape3DName = pattern->m_Shape3DName;
|
||||
SetShape3DName( pattern->GetShape3DName() );
|
||||
m_MatScale = pattern->m_MatScale;
|
||||
m_MatRotation = pattern->m_MatRotation;
|
||||
m_MatPosition = pattern->m_MatPosition;
|
||||
|
@ -74,6 +74,7 @@ S3D_MASTER::S3D_MASTER( EDA_ITEM* aParent ) :
|
|||
m_MatScale.x = m_MatScale.y = m_MatScale.z = 1.0;
|
||||
m_3D_Drawings = NULL;
|
||||
m_Materials = NULL;
|
||||
m_ShapeType = FILE3D_NONE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -96,6 +97,45 @@ S3D_MASTER:: ~S3D_MASTER()
|
|||
}
|
||||
|
||||
|
||||
bool S3D_MASTER::Is3DType( enum FILE3D_TYPE aShapeType )
|
||||
{
|
||||
// type 'none' is not valid and will always return false
|
||||
if( aShapeType == FILE3D_NONE )
|
||||
return false;
|
||||
|
||||
// no one is interested if we have no file
|
||||
if( m_Shape3DName.empty() )
|
||||
return false;
|
||||
|
||||
if( aShapeType == m_ShapeType )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void S3D_MASTER::SetShape3DName( const wxString& aShapeName )
|
||||
{
|
||||
m_ShapeType = FILE3D_NONE;
|
||||
m_Shape3DName = aShapeName;
|
||||
|
||||
if( m_Shape3DName.empty() )
|
||||
return;
|
||||
|
||||
wxFileName fn = m_Shape3DName;
|
||||
wxString ext = fn.GetExt();
|
||||
|
||||
if( ext == wxT( "wrl" ) || ext == wxT( "x3d" ) )
|
||||
m_ShapeType = FILE3D_VRML;
|
||||
else if( ext == wxT( "idf" ) )
|
||||
m_ShapeType = FILE3D_IDF;
|
||||
else
|
||||
m_ShapeType = FILE3D_UNKNOWN;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
STRUCT_3D_SHAPE::STRUCT_3D_SHAPE( EDA_ITEM* aParent ) :
|
||||
EDA_ITEM( aParent, NOT_USED )
|
||||
{
|
||||
|
|
|
@ -857,7 +857,7 @@ void MODULE::ReadAndInsert3DComponentShape( EDA_3D_CANVAS* glcanvas )
|
|||
|
||||
for( ; struct3D != NULL; struct3D = struct3D->Next() )
|
||||
{
|
||||
if( !struct3D->m_Shape3DName.IsEmpty() )
|
||||
if( struct3D->Is3DType( S3D_MASTER::FILE3D_VRML ) )
|
||||
struct3D->ReadData();
|
||||
}
|
||||
|
||||
|
|
|
@ -92,13 +92,24 @@ public:
|
|||
class S3D_MASTER : public EDA_ITEM
|
||||
{
|
||||
public:
|
||||
wxString m_Shape3DName; /* 3D shape name in 3D library */
|
||||
S3D_VERTEX m_MatScale;
|
||||
S3D_VERTEX m_MatRotation;
|
||||
S3D_VERTEX m_MatPosition;
|
||||
STRUCT_3D_SHAPE* m_3D_Drawings;
|
||||
S3D_MATERIAL* m_Materials;
|
||||
|
||||
enum FILE3D_TYPE
|
||||
{
|
||||
FILE3D_NONE = 0,
|
||||
FILE3D_VRML,
|
||||
FILE3D_IDF,
|
||||
FILE3D_UNKNOWN
|
||||
};
|
||||
|
||||
private:
|
||||
wxString m_Shape3DName; /* 3D shape name in 3D library */
|
||||
FILE3D_TYPE m_ShapeType;
|
||||
|
||||
public:
|
||||
S3D_MASTER( EDA_ITEM* aParent );
|
||||
~S3D_MASTER();
|
||||
|
@ -120,6 +131,20 @@ public:
|
|||
#if defined(DEBUG)
|
||||
void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Function Is3DType
|
||||
* returns true if the argument matches the type of model referred to
|
||||
* by m_Shape3DName
|
||||
*/
|
||||
bool Is3DType( enum FILE3D_TYPE aShapeType );
|
||||
|
||||
const wxString& GetShape3DName( void )
|
||||
{
|
||||
return m_Shape3DName;
|
||||
}
|
||||
|
||||
void SetShape3DName( const wxString& aShapeName );
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -171,10 +171,11 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
|||
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" )
|
||||
endif()
|
||||
|
||||
# quiet GCC 4.8.1 while in boost
|
||||
# quiet GCC while in boost
|
||||
if( GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8 )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs" )
|
||||
endif()
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing" )
|
||||
|
||||
if( APPLE )
|
||||
set( KICAD_BUILD_STATIC ON)
|
||||
|
@ -185,7 +186,7 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
|||
if( NOT CMAKE_CXX_COMPILER )
|
||||
EXEC_PROGRAM( wx-config ARGS --cc OUTPUT_VARIABLE CMAKE_C_COMPILER )
|
||||
endif( NOT CMAKE_CXX_COMPILER )
|
||||
|
||||
|
||||
if( NOT CMAKE_CXX_COMPILER )
|
||||
EXEC_PROGRAM( wx-config ARGS --cxx OUTPUT_VARIABLE CMAKE_CXX_COMPILER )
|
||||
endif( NOT CMAKE_CXX_COMPILER )
|
||||
|
@ -291,7 +292,7 @@ add_definitions(-DWX_COMPATIBILITY)
|
|||
find_package( OpenGL QUIET )
|
||||
check_find_package_result( OPENGL_FOUND "OpenGL" )
|
||||
|
||||
if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
|
||||
if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
|
||||
|
||||
#set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so;.dylib;.dll")
|
||||
|
||||
|
@ -322,7 +323,7 @@ if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
|
|||
include( download_cairo )
|
||||
set( CAIRO_INCLUDE_DIR "${CAIRO_ROOT}/include/cairo")
|
||||
set( CAIRO_LIBRARY "${CAIRO_ROOT}/lib/libcairo.a")
|
||||
|
||||
|
||||
|
||||
endif( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC)
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#endif
|
||||
|
||||
#ifndef KICAD_BUILD_VERSION
|
||||
# define KICAD_BUILD_VERSION "(2013-jul-14)"
|
||||
# define KICAD_BUILD_VERSION "(2014-jan-25)"
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -97,4 +97,5 @@ const wxString PSFileWildcard( _( "PostScript files (.ps)|*.ps" ) );
|
|||
const wxString ReportFileWildcard = _( "Report files (*.rpt)|*.rpt" );
|
||||
const wxString FootprintPlaceFileWildcard = _( "Footprint place files (*.pos)|*.pos" );
|
||||
const wxString Shapes3DFileWildcard( _( "Vrml and x3d files (*.wrl *.x3d)|*.wrl;*.x3d" ) );
|
||||
const wxString IDF3DFileWildcard( _( "IDFv3 component files (*.idf)|*.idf" ) );
|
||||
const wxString TextWildcard( _( "Text files (*.txt)|*.txt" ) );
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +1,8 @@
|
|||
(export (version D)
|
||||
(design
|
||||
(source F:/kicad-launchpad/testing/demos/complex_hierarchy/complex_hierarchy.sch)
|
||||
(date "09/01/2014 08:56:21")
|
||||
(tool "eeschema (2014-01-08 BZR 4616)-product"))
|
||||
(date "25/01/2014 08:31:41")
|
||||
(tool "eeschema (2014-01-22 BZR 4630)-product"))
|
||||
(components
|
||||
(comp (ref C10)
|
||||
(value 10uF)
|
||||
|
|
|
@ -1,51 +1,22 @@
|
|||
update=09/01/2014 08:59:03
|
||||
update=25/01/2014 08:37:41
|
||||
version=1
|
||||
last_client=kicad
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetITyp=0
|
||||
NetIExt=.net
|
||||
PkgIExt=.pkg
|
||||
NetDir=
|
||||
LibDir=
|
||||
NetType=0
|
||||
NetIExt=net
|
||||
[cvpcb/libraries]
|
||||
EquName1=devcms
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=F:\\kicad\\share\\library
|
||||
NetFmt=1
|
||||
HPGLSpd=20
|
||||
HPGLDm=15
|
||||
HPGLNum=1
|
||||
offX_A4=0
|
||||
offY_A4=0
|
||||
offX_A3=0
|
||||
offY_A3=0
|
||||
offX_A2=0
|
||||
offY_A2=0
|
||||
offX_A1=0
|
||||
offY_A1=0
|
||||
offX_A0=0
|
||||
offY_A0=0
|
||||
offX_A=0
|
||||
offY_A=0
|
||||
offX_B=0
|
||||
offY_B=0
|
||||
offX_C=0
|
||||
offY_C=0
|
||||
offX_D=0
|
||||
offY_D=0
|
||||
offX_E=0
|
||||
offY_E=0
|
||||
PageLayoutDescrFile=
|
||||
SubpartIdSeparator=0
|
||||
SubpartFirstId=65
|
||||
LibDir=F:/kicad/share/library
|
||||
NetFmtName=
|
||||
RptD_X=0
|
||||
RptD_Y=100
|
||||
RptLab=1
|
||||
SimCmd=
|
||||
UseNetN=0
|
||||
LabSize=60
|
||||
PrintMonochrome=1
|
||||
ShowSheetReferenceAndTitleBlock=1
|
||||
[eeschema/libraries]
|
||||
LibName1=power
|
||||
LibName2=device
|
||||
|
@ -57,32 +28,25 @@ LibName7=interface
|
|||
LibName8=special
|
||||
[pcbnew]
|
||||
version=1
|
||||
PadDrlX=320
|
||||
PadDimH=600
|
||||
PadDimV=600
|
||||
BoardThickness=630
|
||||
TxtPcbV=800
|
||||
TxtPcbH=600
|
||||
TxtModV=600
|
||||
TxtModH=600
|
||||
TxtModW=120
|
||||
VEgarde=100
|
||||
DrawLar=150
|
||||
EdgeLar=150
|
||||
TxtLar=120
|
||||
MSegLar=150
|
||||
PageLayoutDescrFile=
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.8128
|
||||
PadDrillOvalY=0.8128
|
||||
PadSizeH=2.286
|
||||
PadSizeV=2.286
|
||||
PcbTextSizeV=2
|
||||
PcbTextSizeH=2
|
||||
PcbTextThickness=0.3
|
||||
ModuleTextSizeV=1
|
||||
ModuleTextSizeH=1
|
||||
ModuleTextSizeThickness=0.2
|
||||
SolderMaskClearance=0.254
|
||||
SolderMaskMinWidth=0
|
||||
DrawSegmentWidth=0.3
|
||||
BoardOutlineThickness=0.09999999999999999
|
||||
ModuleOutlineThickness=0.2
|
||||
[pcbnew/libraries]
|
||||
LibDir=
|
||||
LibName1=sockets
|
||||
LibName2=connect
|
||||
LibName3=discret
|
||||
LibName4=pin_array
|
||||
LibName5=divers
|
||||
LibName6=libcms
|
||||
LibName7=display
|
||||
LibName8=valves
|
||||
LibName9=led
|
||||
LibName10=dip_sockets
|
||||
[general]
|
||||
version=1
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,13 @@
|
|||
EESchema-LIBRARY Version 2.3 Date: 27/11/2009 11:46:34
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#
|
||||
# +3.3V
|
||||
#
|
||||
DEF +3.3V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -40 30 H I C CNN
|
||||
F1 "+3.3V" 0 110 30 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
ALIAS +3,3V
|
||||
DRAW
|
||||
X +3.3V 1 0 0 0 U 30 30 0 0 W N
|
||||
|
@ -16,8 +19,10 @@ ENDDEF
|
|||
# 74AHC1G14
|
||||
#
|
||||
DEF 74AHC1G14 U 0 30 Y Y 1 F N
|
||||
F0 "U" 195 115 60 H V C CNN
|
||||
F1 "74AHC1G14" 300 -150 60 H V C CNN
|
||||
F0 "U" 145 115 40 H V C CNN
|
||||
F1 "74AHC1G14" 200 -100 40 H V C CNN
|
||||
F2 "" 95 -135 30 H V C CNN
|
||||
F3 "" 145 115 60 H V C CNN
|
||||
DRAW
|
||||
P 4 0 0 0 -150 150 -150 -150 150 0 -150 150 N
|
||||
X GND 3 -50 -200 100 U 40 20 0 0 W
|
||||
|
@ -34,6 +39,8 @@ ENDDEF
|
|||
DEF 74LS125 U 0 30 Y Y 4 F N
|
||||
F0 "U" 0 100 50 H V L BNN
|
||||
F1 "74LS125" 50 -150 40 H V L TNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
X GND 7 -150 -150 0 U 50 30 0 0 W N
|
||||
X VCC 14 -150 150 0 D 50 30 0 0 W N
|
||||
|
@ -56,16 +63,18 @@ ENDDEF
|
|||
# C
|
||||
#
|
||||
DEF C C 0 10 N Y 1 F N
|
||||
F0 "C" 50 100 50 H V L CNN
|
||||
F1 "C" 50 -100 50 H V L CNN
|
||||
F0 "C" 0 100 40 H V L CNN
|
||||
F1 "C" 6 -85 40 H V L CNN
|
||||
F2 "" 38 -150 30 H V C CNN
|
||||
F3 "" 0 100 30 H V C CNN
|
||||
$FPLIST
|
||||
SM*
|
||||
C?
|
||||
C1-1
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 10 -100 -30 100 -30 N
|
||||
P 2 0 1 10 -100 30 100 30 N
|
||||
P 2 0 1 20 -80 -30 80 -30 N
|
||||
P 2 0 1 20 -80 30 80 30 N
|
||||
X ~ 1 0 200 170 D 40 40 1 1 P
|
||||
X ~ 2 0 -200 170 U 40 40 1 1 P
|
||||
ENDDRAW
|
||||
|
@ -76,6 +85,8 @@ ENDDEF
|
|||
DEF ~CONN_1 P 0 30 N N 1 F N
|
||||
F0 "P" 80 0 40 H V L CNN
|
||||
F1 "CONN_1" 0 55 30 H I C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
C 0 0 31 0 1 0 N
|
||||
P 2 0 1 0 -30 0 -50 0 N
|
||||
|
@ -88,6 +99,8 @@ ENDDEF
|
|||
DEF CONN_13X2 P 0 10 Y N 1 F N
|
||||
F0 "P" 0 700 60 H V C CNN
|
||||
F1 "CONN_13X2" 0 0 50 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 650 100 -650 0 1 0 N
|
||||
X P1 1 -400 600 300 R 40 30 1 1 P I
|
||||
|
@ -124,6 +137,8 @@ ENDDEF
|
|||
DEF CONN_2 P 0 40 Y N 1 F N
|
||||
F0 "P" -50 0 40 V V C CNN
|
||||
F1 "CONN_2" 50 0 40 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 150 100 -150 0 1 0 N
|
||||
X P1 1 -350 100 250 R 60 60 1 1 P I
|
||||
|
@ -136,6 +151,8 @@ ENDDEF
|
|||
DEF CONN_20X2 P 0 10 Y N 1 F N
|
||||
F0 "P" 0 1050 60 H V C CNN
|
||||
F1 "CONN_20X2" 0 0 50 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 1000 100 -1000 0 1 0 N
|
||||
X P1 1 -400 950 300 R 60 30 1 1 P I
|
||||
|
@ -186,6 +203,8 @@ ENDDEF
|
|||
DEF CONN_2X2 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 150 50 H V C CNN
|
||||
F1 "CONN_2X2" 10 -130 40 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 100 100 -100 0 1 0 N
|
||||
X 1 1 -400 50 300 R 60 60 1 1 P I
|
||||
|
@ -200,6 +219,8 @@ ENDDEF
|
|||
DEF CONN_3 K 0 40 Y N 1 F N
|
||||
F0 "K" -50 0 50 V V C CNN
|
||||
F1 "CONN_3" 50 0 40 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 150 100 -150 0 1 0 N
|
||||
X P1 1 -350 100 250 R 60 60 1 1 P I
|
||||
|
@ -213,6 +234,8 @@ ENDDEF
|
|||
DEF CONN_30X2 P 0 10 Y N 1 F N
|
||||
F0 "P" 0 1550 60 H V C CNN
|
||||
F1 "CONN_30X2" 0 0 50 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 1500 100 -1500 0 1 0 N
|
||||
X P1 1 -400 1450 300 R 60 30 1 1 P I
|
||||
|
@ -284,6 +307,8 @@ ENDDEF
|
|||
DEF CONN_4X2 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 250 50 H V C CNN
|
||||
F1 "CONN_4X2" 0 0 40 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 200 100 -200 0 1 0 N
|
||||
X 1 1 -400 150 300 R 60 60 1 1 P I
|
||||
|
@ -302,6 +327,8 @@ ENDDEF
|
|||
DEF CONN_6 P 0 30 Y N 1 F N
|
||||
F0 "P" -50 0 60 V V C CNN
|
||||
F1 "CONN_6" 50 0 60 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -100 300 100 -300 0 1 0 N
|
||||
X 1 1 -350 250 250 R 60 60 1 1 P I
|
||||
|
@ -316,15 +343,17 @@ ENDDEF
|
|||
# CP
|
||||
#
|
||||
DEF CP C 0 10 N N 1 F N
|
||||
F0 "C" 50 100 50 H V L CNN
|
||||
F1 "CP" 50 -100 50 H V L CNN
|
||||
F0 "C" 50 100 40 H V L CNN
|
||||
F1 "CP" 50 -100 40 H V L CNN
|
||||
F2 "" 100 -150 30 H V C CNN
|
||||
F3 "" 50 100 30 H V C CNN
|
||||
ALIAS CAPAPOL
|
||||
$FPLIST
|
||||
CP*
|
||||
SM*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 4 0 1 8 -100 50 -100 -50 100 -50 100 50 N
|
||||
P 4 0 1 8 -80 50 -80 -50 80 -50 80 50 N
|
||||
P 4 0 1 0 -50 50 -50 -20 50 -20 50 50 F
|
||||
X ~ 1 0 200 150 D 40 40 1 1 P
|
||||
X ~ 2 0 -200 150 U 40 40 1 1 P
|
||||
|
@ -333,9 +362,11 @@ ENDDEF
|
|||
#
|
||||
# CRYSTAL
|
||||
#
|
||||
DEF CRYSTAL X 0 40 N N 0 F N
|
||||
DEF CRYSTAL X 0 40 N N 1 F N
|
||||
F0 "X" 0 150 60 H V C CNN
|
||||
F1 "CRYSTAL" 0 -150 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
P 2 0 1 16 -100 100 -100 -100 N
|
||||
P 2 0 1 16 100 100 100 -100 N
|
||||
|
@ -350,6 +381,8 @@ ENDDEF
|
|||
DEF DB9 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 550 70 H V C CNN
|
||||
F1 "DB9" 0 -550 70 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
$FPLIST
|
||||
DB9*
|
||||
$ENDFPLIST
|
||||
|
@ -401,6 +434,8 @@ ENDDEF
|
|||
DEF DIODE D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 40 H V C CNN
|
||||
F1 "DIODE" 0 -100 40 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
$FPLIST
|
||||
D?
|
||||
S*
|
||||
|
@ -418,6 +453,8 @@ ENDDEF
|
|||
DEF FUSE F 0 10 Y Y 1 F N
|
||||
F0 "F" 100 50 40 H V C CNN
|
||||
F1 "FUSE" -100 -50 40 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
A -75 0 75 1 1799 0 1 0 N 0 0 -150 0
|
||||
A 75 0 75 -1799 -1 0 1 0 N 0 0 150 0
|
||||
|
@ -431,6 +468,8 @@ ENDDEF
|
|||
DEF ~GND #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 0 30 H I C CNN
|
||||
F1 "GND" 0 -70 30 H I C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
|
||||
X GND 1 0 0 0 U 30 30 1 1 W N
|
||||
|
@ -442,6 +481,8 @@ ENDDEF
|
|||
DEF GNDA #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 0 40 H I C CNN
|
||||
F1 "GNDA" 0 -70 40 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
|
||||
X GNDA 1 0 0 0 U 40 40 1 1 W N
|
||||
|
@ -450,9 +491,11 @@ ENDDEF
|
|||
#
|
||||
# INDUCTOR
|
||||
#
|
||||
DEF INDUCTOR L 0 40 N N 0 F N
|
||||
DEF INDUCTOR L 0 40 N N 1 F N
|
||||
F0 "L" -50 0 40 V V C CNN
|
||||
F1 "INDUCTOR" 100 0 40 V V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
A 0 -150 50 -889 889 0 1 0 N 1 -199 1 -100
|
||||
A 0 -49 51 -889 889 0 1 0 N 1 -99 1 2
|
||||
|
@ -468,6 +511,8 @@ ENDDEF
|
|||
DEF JACK_2P J 0 40 Y Y 1 F N
|
||||
F0 "J" -350 -200 60 H V C CNN
|
||||
F1 "JACK_2P" -150 250 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -450 150 -400 -100 0 1 0 F
|
||||
S 300 -150 -400 200 0 1 0 N
|
||||
|
@ -488,6 +533,8 @@ ENDDEF
|
|||
DEF JUMPER JP 0 30 Y N 1 F N
|
||||
F0 "JP" 0 150 60 H V C CNN
|
||||
F1 "JUMPER" 0 -80 40 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
A 0 -26 125 1426 373 0 1 0 N -98 50 99 50
|
||||
C -100 0 35 0 1 0 N
|
||||
|
@ -502,6 +549,8 @@ ENDDEF
|
|||
DEF LED D 0 40 Y N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "LED" 0 -100 50 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
$FPLIST
|
||||
LED-3MM
|
||||
LED-5MM
|
||||
|
@ -526,6 +575,8 @@ ENDDEF
|
|||
DEF LT1129_QPACK U 0 30 Y Y 1 F N
|
||||
F0 "U" 250 450 60 H V C CNN
|
||||
F1 "LT1129_QPACK" 500 -495 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
ALIAS LT_1129_QP
|
||||
DRAW
|
||||
S -500 -400 500 400 0 1 0 N
|
||||
|
@ -542,6 +593,8 @@ ENDDEF
|
|||
DEF MAX232 U 0 40 Y Y 1 F N
|
||||
F0 "U" 0 850 70 H V C CNN
|
||||
F1 "MAX232" 0 -850 70 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
ALIAS MAX202
|
||||
DRAW
|
||||
T 900 80 -530 40 0 0 0 RS232 Normal 0 C C
|
||||
|
@ -573,6 +626,8 @@ ENDDEF
|
|||
DEF MC34064P U 0 20 Y Y 1 F N
|
||||
F0 "U" 50 200 60 H V C CNN
|
||||
F1 "MC34064P" 300 -190 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
ALIAS MC33064P
|
||||
DRAW
|
||||
S -200 -150 200 150 0 1 0 N
|
||||
|
@ -587,6 +642,8 @@ ENDDEF
|
|||
DEF MCF5213-LQFP100 U 0 40 Y Y 1 F N
|
||||
F0 "U" 1150 2700 60 H V L CNN
|
||||
F1 "MCF5213-LQFP100" 600 -2650 60 H V L CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -1700 2600 1700 -2600 0 1 0 N
|
||||
X VCC 1 -250 2850 250 D 30 30 1 1 W
|
||||
|
@ -697,6 +754,8 @@ ENDDEF
|
|||
DEF PCA82C251 U 0 0 Y Y 1 F N
|
||||
F0 "U" 150 450 60 H V C CNN
|
||||
F1 "PCA82C251" 300 -350 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
T 0 50 300 20 0 0 1 Volt Normal 1 C C
|
||||
S -200 400 200 -300 0 1 0 N
|
||||
|
@ -724,9 +783,11 @@ ENDDEF
|
|||
#
|
||||
# PNP
|
||||
#
|
||||
DEF PNP Q 0 0 Y Y 0 F N
|
||||
DEF PNP Q 0 0 Y Y 1 F N
|
||||
F0 "Q" 0 -150 60 H V R CNN
|
||||
F1 "PNP" 0 150 60 H V R CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
C 50 0 111 0 1 10 N
|
||||
P 2 0 1 0 0 0 100 100 N
|
||||
|
@ -743,25 +804,29 @@ ENDDEF
|
|||
# PWR_FLAG
|
||||
#
|
||||
DEF PWR_FLAG #FLG 0 0 N N 1 F P
|
||||
F0 "#FLG" 0 270 30 H I C CNN
|
||||
F1 "PWR_FLAG" 0 230 30 H V C CNN
|
||||
F0 "#FLG" 0 95 30 H I C CNN
|
||||
F1 "PWR_FLAG" 0 180 30 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
X pwr 1 0 0 0 U 20 20 0 0 w
|
||||
P 3 0 1 0 0 0 0 100 0 100 N
|
||||
P 5 0 1 0 0 100 -100 150 0 200 100 150 0 100 N
|
||||
P 6 0 1 0 0 0 0 50 -75 100 0 150 75 100 0 50 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# R
|
||||
#
|
||||
DEF R R 0 0 N Y 1 F N
|
||||
F0 "R" 80 0 50 V V C CNN
|
||||
F1 "R" 0 0 50 V V C CNN
|
||||
F0 "R" 80 0 40 V V C CNN
|
||||
F1 "R" 7 1 40 V V C CNN
|
||||
F2 "" -70 0 30 V V C CNN
|
||||
F3 "" 0 0 30 H V C CNN
|
||||
$FPLIST
|
||||
R?
|
||||
SM0603
|
||||
SM0805
|
||||
R?-*
|
||||
SM1206
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -40 150 40 -150 0 1 12 N
|
||||
|
@ -775,6 +840,8 @@ ENDDEF
|
|||
DEF SW_PUSH SW 0 40 N N 1 F N
|
||||
F0 "SW" 150 110 50 H V C CNN
|
||||
F1 "SW_PUSH" 0 -80 50 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -170 50 170 60 0 1 0 N
|
||||
P 4 0 1 0 -40 60 -30 90 30 90 40 60 N
|
||||
|
@ -785,9 +852,11 @@ ENDDEF
|
|||
#
|
||||
# SWITCH_INV
|
||||
#
|
||||
DEF SWITCH_INV SW 0 0 N Y 0 F N
|
||||
DEF SWITCH_INV SW 0 0 N Y 1 F N
|
||||
F0 "SW" -200 150 50 H V C CNN
|
||||
F1 "SWITCH_INV" -150 -150 50 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
C -150 0 50 0 0 0 N
|
||||
C 150 -100 50 0 0 0 N
|
||||
|
@ -804,6 +873,8 @@ ENDDEF
|
|||
DEF VCC #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 100 30 H I C CNN
|
||||
F1 "VCC" 0 100 30 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
X VCC 1 0 0 0 U 20 20 0 0 W N
|
||||
C 0 50 20 0 1 0 N
|
||||
|
@ -816,6 +887,8 @@ ENDDEF
|
|||
DEF VDD #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 100 30 H I C CNN
|
||||
F1 "VDD" 0 110 30 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
X VDD 1 0 0 0 U 40 40 0 0 W N
|
||||
C 0 60 20 0 1 0 N
|
||||
|
@ -828,6 +901,8 @@ ENDDEF
|
|||
DEF XCR3256-TQ144 U 0 20 Y Y 1 F N
|
||||
F0 "U" 0 3500 70 H V C CNN
|
||||
F1 "XCR3256-TQ144" 0 -3600 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S -650 3400 650 -3500 0 1 0 N
|
||||
X I1 1 950 -2900 300 L 50 50 1 1 P
|
||||
|
@ -850,7 +925,6 @@ X G2 80 -950 -2500 300 R 50 50 1 1 P
|
|||
X C14 90 -950 500 300 R 50 50 1 1 P
|
||||
X J15 11 950 -1600 300 L 50 50 1 1 P
|
||||
X N2 21 950 900 300 L 50 50 1 1 P
|
||||
X P14 31 950 3100 300 L 50 50 1 1 P
|
||||
X P4 31 950 2800 300 L 50 50 1 1 P
|
||||
X O3 41 950 2000 300 L 50 50 1 1 P
|
||||
X VCC 51 -450 3400 0 D 30 30 1 1 W N
|
||||
|
@ -887,6 +961,7 @@ X E11 84 -950 -1600 300 R 50 50 1 1 P
|
|||
X C3 94 -950 900 300 R 50 50 1 1 P
|
||||
X L4 15 950 -400 300 L 50 50 1 1 P
|
||||
X N11 25 950 1200 300 L 50 50 1 1 P
|
||||
X P14 35 950 3100 300 L 50 50 1 1 P
|
||||
X M15 45 950 700 300 L 50 50 1 1 P
|
||||
X F1 55 -950 -1700 300 R 50 50 1 1 P
|
||||
X F15 65 -950 -2300 300 R 50 50 1 1 P
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,37 +1,34 @@
|
|||
update=10/01/2014 20:45:48
|
||||
update=24/01/2014 13:22:43
|
||||
last_client=eeschema
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.000000000000
|
||||
PadDrillOvalY=0.000000000000
|
||||
PadSizeH=0.406400000000
|
||||
PadSizeV=1.270000000000
|
||||
PcbTextSizeV=2.032000000000
|
||||
PcbTextSizeH=1.524000000000
|
||||
PcbTextThickness=0.304800000000
|
||||
ModuleTextSizeV=1.524000000000
|
||||
ModuleTextSizeH=1.524000000000
|
||||
ModuleTextSizeThickness=0.304800000000
|
||||
SolderMaskClearance=0.200000000000
|
||||
SolderMaskMinWidth=0.000000000000
|
||||
DrawSegmentWidth=0.381000000000
|
||||
BoardOutlineThickness=0.381000000000
|
||||
ModuleOutlineThickness=0.152400000000
|
||||
[pcbnew/libraries]
|
||||
LibDir=
|
||||
LibName1=sockets
|
||||
LibName2=dip_sockets
|
||||
LibName3=connect
|
||||
LibName4=discret
|
||||
LibName5=pin_array
|
||||
LibName6=divers
|
||||
LibName7=libcms
|
||||
LibName8=display
|
||||
LibName9=valves
|
||||
[general]
|
||||
version=1
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[cvpcb/libraries]
|
||||
EquName1=devcms
|
||||
[pcbnew]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0
|
||||
PadDrillOvalY=0
|
||||
PadSizeH=0.4064
|
||||
PadSizeV=1.27
|
||||
PcbTextSizeV=2.032
|
||||
PcbTextSizeH=1.524
|
||||
PcbTextThickness=0.3048
|
||||
ModuleTextSizeV=1.524
|
||||
ModuleTextSizeH=1.524
|
||||
ModuleTextSizeThickness=0.3048
|
||||
SolderMaskClearance=0.2
|
||||
SolderMaskMinWidth=0
|
||||
DrawSegmentWidth=0.381
|
||||
BoardOutlineThickness=0.381
|
||||
ModuleOutlineThickness=0.1524
|
||||
[pcbnew/libraries]
|
||||
LibDir=
|
||||
[eeschema]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
|
@ -51,24 +48,9 @@ LibName4=conn
|
|||
LibName5=linear
|
||||
LibName6=regul
|
||||
LibName7=74xx
|
||||
LibName8=cmos4000
|
||||
LibName9=adc-dac
|
||||
LibName10=memory
|
||||
LibName11=xilinx
|
||||
LibName12=special
|
||||
LibName13=microcontrollers
|
||||
LibName14=dsp
|
||||
LibName15=microchip
|
||||
LibName16=analog_switches
|
||||
LibName17=motorola
|
||||
LibName18=texas
|
||||
LibName19=intel
|
||||
LibName20=audio
|
||||
LibName21=interface
|
||||
LibName22=digital-audio
|
||||
LibName23=philips
|
||||
LibName24=display
|
||||
LibName25=cypress
|
||||
LibName26=siliconi
|
||||
LibName27=contrib
|
||||
LibName28=valves
|
||||
LibName8=adc-dac
|
||||
LibName9=memory
|
||||
LibName10=xilinx
|
||||
LibName11=special
|
||||
LibName12=microcontrollers
|
||||
LibName13=motorola
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
EESchema Schematic File Version 2 date 27/11/2009 11:46:34
|
||||
EESchema Schematic File Version 2
|
||||
LIBS:power
|
||||
LIBS:device
|
||||
LIBS:transistors
|
||||
|
@ -6,31 +6,17 @@ LIBS:conn
|
|||
LIBS:linear
|
||||
LIBS:regul
|
||||
LIBS:74xx
|
||||
LIBS:cmos4000
|
||||
LIBS:adc-dac
|
||||
LIBS:memory
|
||||
LIBS:xilinx
|
||||
LIBS:special
|
||||
LIBS:microcontrollers
|
||||
LIBS:dsp
|
||||
LIBS:microchip
|
||||
LIBS:analog_switches
|
||||
LIBS:motorola
|
||||
LIBS:texas
|
||||
LIBS:intel
|
||||
LIBS:audio
|
||||
LIBS:interface
|
||||
LIBS:digital-audio
|
||||
LIBS:philips
|
||||
LIBS:display
|
||||
LIBS:cypress
|
||||
LIBS:siliconi
|
||||
LIBS:contrib
|
||||
LIBS:valves
|
||||
LIBS:kit-dev-coldfire-xilinx_5213-cache
|
||||
EELAYER 23 0
|
||||
EELAYER 24 0
|
||||
EELAYER END
|
||||
$Descr A3 16535 11700
|
||||
$Descr A3 16535 11693
|
||||
encoding utf-8
|
||||
Sheet 1 3
|
||||
Title "Dev kit coldfire 5213"
|
||||
Date "8 feb 2008"
|
||||
|
@ -676,8 +662,10 @@ $Comp
|
|||
L MCF5213-LQFP100 U1
|
||||
U 1 1 46161C39
|
||||
P 8150 4600
|
||||
F 0 "U1" H 8200 4650 60 0000 L CNN
|
||||
F 0 "U1" H 9100 7300 60 0000 L CNN
|
||||
F 1 "MCF5213-LQFP100" H 8750 1950 60 0000 L CNN
|
||||
F 2 "" H 8150 4600 60 0001 C CNN
|
||||
F 3 "" H 8150 4600 60 0001 C CNN
|
||||
1 8150 4600
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -687,6 +675,8 @@ U 1 1 462382A4
|
|||
P 6450 9000
|
||||
F 0 "#PWR01" H 6450 9000 40 0001 C CNN
|
||||
F 1 "GNDA" H 6450 8930 40 0000 C CNN
|
||||
F 2 "" H 6450 9000 60 0001 C CNN
|
||||
F 3 "" H 6450 9000 60 0001 C CNN
|
||||
1 6450 9000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -696,6 +686,8 @@ U 1 1 46238286
|
|||
P 6450 8750
|
||||
F 0 "C18" H 6500 8850 50 0000 L CNN
|
||||
F 1 "100nF" H 6500 8650 50 0000 L CNN
|
||||
F 2 "" H 6450 8750 60 0001 C CNN
|
||||
F 3 "" H 6450 8750 60 0001 C CNN
|
||||
1 6450 8750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -709,6 +701,8 @@ U 1 1 46602ECA
|
|||
P 5350 6950
|
||||
F 0 "#PWR02" H 5350 6950 40 0001 C CNN
|
||||
F 1 "GNDA" H 5350 6880 40 0000 C CNN
|
||||
F 2 "" H 5350 6950 60 0001 C CNN
|
||||
F 3 "" H 5350 6950 60 0001 C CNN
|
||||
1 5350 6950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -718,6 +712,8 @@ U 1 1 465FE6C5
|
|||
P 10150 10350
|
||||
F 0 "GND1" H 10230 10350 40 0000 L CNN
|
||||
F 1 "CONN_1" H 10150 10405 30 0001 C CNN
|
||||
F 2 "" H 10150 10350 60 0001 C CNN
|
||||
F 3 "" H 10150 10350 60 0001 C CNN
|
||||
1 10150 10350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -727,6 +723,8 @@ U 1 1 46555AB9
|
|||
P 6100 7100
|
||||
F 0 "#PWR03" H 6100 7100 40 0001 C CNN
|
||||
F 1 "GNDA" H 6100 7030 40 0000 C CNN
|
||||
F 2 "" H 6100 7100 60 0001 C CNN
|
||||
F 3 "" H 6100 7100 60 0001 C CNN
|
||||
1 6100 7100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -736,6 +734,8 @@ U 1 1 46554FD2
|
|||
P 13400 1700
|
||||
F 0 "#PWR04" H 13400 1660 30 0001 C CNN
|
||||
F 1 "+3.3V" H 13400 1810 30 0000 C CNN
|
||||
F 2 "" H 13400 1700 60 0001 C CNN
|
||||
F 3 "" H 13400 1700 60 0001 C CNN
|
||||
1 13400 1700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -745,6 +745,8 @@ U 1 1 46554FCD
|
|||
P 13400 2100
|
||||
F 0 "#PWR05" H 13400 2100 30 0001 C CNN
|
||||
F 1 "GND" H 13400 2030 30 0001 C CNN
|
||||
F 2 "" H 13400 2100 60 0001 C CNN
|
||||
F 3 "" H 13400 2100 60 0001 C CNN
|
||||
1 13400 2100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -754,6 +756,8 @@ U 1 1 46554FB5
|
|||
P 13350 1900
|
||||
F 0 "U2" H 13545 2015 60 0000 C CNN
|
||||
F 1 "74AHC1G14" H 13650 1750 60 0000 C CNN
|
||||
F 2 "" H 13350 1900 60 0001 C CNN
|
||||
F 3 "" H 13350 1900 60 0001 C CNN
|
||||
1 13350 1900
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -763,6 +767,8 @@ U 1 1 46545507
|
|||
P 14150 4650
|
||||
F 0 "CT1" H 14550 4700 60 0000 C CNN
|
||||
F 1 "JUMPER" H 14150 4570 40 0000 C CNN
|
||||
F 2 "" H 14150 4650 60 0001 C CNN
|
||||
F 3 "" H 14150 4650 60 0001 C CNN
|
||||
1 14150 4650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -772,6 +778,8 @@ U 1 1 465451F6
|
|||
P 2600 3650
|
||||
F 0 "#PWR06" H 2600 3650 30 0001 C CNN
|
||||
F 1 "GND" H 2600 3580 30 0001 C CNN
|
||||
F 2 "" H 2600 3650 60 0001 C CNN
|
||||
F 3 "" H 2600 3650 60 0001 C CNN
|
||||
1 2600 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -781,6 +789,8 @@ U 1 1 465451D4
|
|||
P 2600 3350
|
||||
F 0 "RST_SW1" H 2750 3460 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 2600 3270 50 0000 C CNN
|
||||
F 2 "" H 2600 3350 60 0001 C CNN
|
||||
F 3 "" H 2600 3350 60 0001 C CNN
|
||||
1 2600 3350
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -810,6 +820,8 @@ U 1 1 4652AF7E
|
|||
P 5500 9800
|
||||
F 0 "#PWR07" H 5500 9900 30 0001 C CNN
|
||||
F 1 "VCC" H 5500 9900 30 0000 C CNN
|
||||
F 2 "" H 5500 9800 60 0001 C CNN
|
||||
F 3 "" H 5500 9800 60 0001 C CNN
|
||||
1 5500 9800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -819,6 +831,8 @@ U 1 1 4652AF2F
|
|||
P 6700 9000
|
||||
F 0 "#FLG08" H 6700 9270 30 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 6700 9230 30 0000 C CNN
|
||||
F 2 "" H 6700 9000 60 0001 C CNN
|
||||
F 3 "" H 6700 9000 60 0001 C CNN
|
||||
1 6700 9000
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -832,6 +846,8 @@ U 1 1 4652AE72
|
|||
P 9250 10350
|
||||
F 0 "#FLG09" H 9250 10620 30 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 9250 10580 30 0000 C CNN
|
||||
F 2 "" H 9250 10350 60 0001 C CNN
|
||||
F 3 "" H 9250 10350 60 0001 C CNN
|
||||
1 9250 10350
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -958,6 +974,8 @@ U 1 1 46238A4E
|
|||
P 1700 9450
|
||||
F 0 "#PWR010" H 1700 9450 30 0001 C CNN
|
||||
F 1 "GND" H 1700 9380 30 0001 C CNN
|
||||
F 2 "" H 1700 9450 60 0001 C CNN
|
||||
F 3 "" H 1700 9450 60 0001 C CNN
|
||||
1 1700 9450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -967,6 +985,8 @@ U 1 1 46238A48
|
|||
P 2500 9400
|
||||
F 0 "#PWR011" H 2500 9400 30 0001 C CNN
|
||||
F 1 "GND" H 2500 9330 30 0001 C CNN
|
||||
F 2 "" H 2500 9400 60 0001 C CNN
|
||||
F 3 "" H 2500 9400 60 0001 C CNN
|
||||
1 2500 9400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -976,6 +996,8 @@ U 1 1 462389C7
|
|||
P 2100 8850
|
||||
F 0 "Y1" H 2100 9000 60 0000 C CNN
|
||||
F 1 "8MHz" H 2100 8700 60 0000 C CNN
|
||||
F 2 "" H 2100 8850 60 0001 C CNN
|
||||
F 3 "" H 2100 8850 60 0001 C CNN
|
||||
1 2100 8850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -985,6 +1007,8 @@ U 1 1 462389C0
|
|||
P 2500 9200
|
||||
F 0 "C2" H 2550 9300 50 0000 L CNN
|
||||
F 1 "10pF" H 2550 9100 50 0000 L CNN
|
||||
F 2 "" H 2500 9200 60 0001 C CNN
|
||||
F 3 "" H 2500 9200 60 0001 C CNN
|
||||
1 2500 9200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -994,6 +1018,8 @@ U 1 1 462389BC
|
|||
P 1700 9250
|
||||
F 0 "C1" H 1750 9350 50 0000 L CNN
|
||||
F 1 "10pF" H 1750 9150 50 0000 L CNN
|
||||
F 2 "" H 1700 9250 60 0001 C CNN
|
||||
F 3 "" H 1700 9250 60 0001 C CNN
|
||||
1 1700 9250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1003,6 +1029,8 @@ U 1 1 462389B6
|
|||
P 2150 8450
|
||||
F 0 "R1" V 2230 8450 50 0000 C CNN
|
||||
F 1 "1M" V 2150 8450 50 0000 C CNN
|
||||
F 2 "" H 2150 8450 60 0001 C CNN
|
||||
F 3 "" H 2150 8450 60 0001 C CNN
|
||||
1 2150 8450
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1012,6 +1040,8 @@ U 1 1 46238965
|
|||
P 14450 5600
|
||||
F 0 "ALLPST1" H 14450 5700 40 0000 C CNN
|
||||
F 1 "CONN_1" H 14400 5640 30 0001 C CNN
|
||||
F 2 "" H 14450 5600 60 0001 C CNN
|
||||
F 3 "" H 14450 5600 60 0001 C CNN
|
||||
1 14450 5600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -1065,6 +1095,8 @@ U 1 1 462385BA
|
|||
P 1900 4650
|
||||
F 0 "#PWR012" H 1900 4650 30 0001 C CNN
|
||||
F 1 "GND" H 1900 4580 30 0001 C CNN
|
||||
F 2 "" H 1900 4650 60 0001 C CNN
|
||||
F 3 "" H 1900 4650 60 0001 C CNN
|
||||
1 1900 4650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1074,6 +1106,8 @@ U 1 1 46238597
|
|||
P 2150 4600
|
||||
F 0 "RED1" H 2150 4700 50 0000 C CNN
|
||||
F 1 "LED_RESET1" H 2150 4500 50 0000 C CNN
|
||||
F 2 "" H 2150 4600 60 0001 C CNN
|
||||
F 3 "" H 2150 4600 60 0001 C CNN
|
||||
1 2150 4600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -1083,6 +1117,8 @@ U 1 1 4623857F
|
|||
P 2650 4600
|
||||
F 0 "R22" V 2750 4600 50 0000 C CNN
|
||||
F 1 "270" V 2650 4600 50 0000 C CNN
|
||||
F 2 "" H 2650 4600 60 0001 C CNN
|
||||
F 3 "" H 2650 4600 60 0001 C CNN
|
||||
1 2650 4600
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1094,6 +1130,8 @@ U 1 1 46238545
|
|||
P 3500 4300
|
||||
F 0 "R21" V 3600 4300 50 0000 C CNN
|
||||
F 1 "4,7K" V 3500 4300 50 0000 C CNN
|
||||
F 2 "" H 3500 4300 60 0001 C CNN
|
||||
F 3 "" H 3500 4300 60 0001 C CNN
|
||||
1 3500 4300
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1103,6 +1141,8 @@ U 1 1 46238539
|
|||
P 2900 4100
|
||||
F 0 "#PWR013" H 2900 4200 30 0001 C CNN
|
||||
F 1 "VDD" H 2900 4210 30 0000 C CNN
|
||||
F 2 "" H 2900 4100 60 0001 C CNN
|
||||
F 3 "" H 2900 4100 60 0001 C CNN
|
||||
1 2900 4100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1112,6 +1152,8 @@ U 1 1 46238531
|
|||
P 8400 7550
|
||||
F 0 "#PWR014" H 8400 7550 30 0001 C CNN
|
||||
F 1 "GND" H 8400 7480 30 0001 C CNN
|
||||
F 2 "" H 8400 7550 60 0001 C CNN
|
||||
F 3 "" H 8400 7550 60 0001 C CNN
|
||||
1 8400 7550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1121,6 +1163,8 @@ U 1 1 46238519
|
|||
P 3000 4300
|
||||
F 0 "Q1" H 3150 4300 60 0000 C CNN
|
||||
F 1 "3906" H 2904 4450 60 0000 C CNN
|
||||
F 2 "" H 3000 4300 60 0001 C CNN
|
||||
F 3 "" H 3000 4300 60 0001 C CNN
|
||||
1 3000 4300
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -1132,6 +1176,8 @@ U 1 1 462384A7
|
|||
P 3250 2400
|
||||
F 0 "#PWR015" H 3250 2360 30 0001 C CNN
|
||||
F 1 "+3.3V" H 3250 2510 30 0000 C CNN
|
||||
F 2 "" H 3250 2400 60 0001 C CNN
|
||||
F 3 "" H 3250 2400 60 0001 C CNN
|
||||
1 3250 2400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1141,6 +1187,8 @@ U 1 1 4623848E
|
|||
P 2200 3500
|
||||
F 0 "#PWR016" H 2200 3500 30 0001 C CNN
|
||||
F 1 "GND" H 2200 3430 30 0001 C CNN
|
||||
F 2 "" H 2200 3500 60 0001 C CNN
|
||||
F 3 "" H 2200 3500 60 0001 C CNN
|
||||
1 2200 3500
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1150,6 +1198,8 @@ U 1 1 4623847B
|
|||
P 3250 2650
|
||||
F 0 "R15" V 3330 2650 50 0000 C CNN
|
||||
F 1 "4,7K" V 3250 2650 50 0000 C CNN
|
||||
F 2 "" H 3250 2650 60 0001 C CNN
|
||||
F 3 "" H 3250 2650 60 0001 C CNN
|
||||
1 3250 2650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1159,6 +1209,8 @@ U 1 1 4623846D
|
|||
P 2850 3000
|
||||
F 0 "D3" H 2850 3100 40 0000 C CNN
|
||||
F 1 "BAT54" H 2850 2900 40 0000 C CNN
|
||||
F 2 "" H 2850 3000 60 0001 C CNN
|
||||
F 3 "" H 2850 3000 60 0001 C CNN
|
||||
1 2850 3000
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -1168,6 +1220,8 @@ U 1 1 46238468
|
|||
P 2200 3300
|
||||
F 0 "C3" H 2250 3400 50 0000 L CNN
|
||||
F 1 "1nF" H 2250 3200 50 0000 L CNN
|
||||
F 2 "" H 2200 3300 60 0001 C CNN
|
||||
F 3 "" H 2200 3300 60 0001 C CNN
|
||||
1 2200 3300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1177,6 +1231,8 @@ U 1 1 4623840E
|
|||
P 1150 2950
|
||||
F 0 "#PWR017" H 1150 2910 30 0001 C CNN
|
||||
F 1 "+3.3V" H 1150 3060 30 0000 C CNN
|
||||
F 2 "" H 1150 2950 60 0001 C CNN
|
||||
F 3 "" H 1150 2950 60 0001 C CNN
|
||||
1 1150 2950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1186,6 +1242,8 @@ U 1 1 46238409
|
|||
P 1550 3350
|
||||
F 0 "#PWR018" H 1550 3350 30 0001 C CNN
|
||||
F 1 "GND" H 1550 3280 30 0001 C CNN
|
||||
F 2 "" H 1550 3350 60 0001 C CNN
|
||||
F 3 "" H 1550 3350 60 0001 C CNN
|
||||
1 1550 3350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1195,6 +1253,8 @@ U 1 1 462383E5
|
|||
P 1550 3050
|
||||
F 0 "LV1" H 1600 3250 60 0000 C CNN
|
||||
F 1 "DS1818" H 1850 2860 60 0000 C CNN
|
||||
F 2 "" H 1550 3050 60 0001 C CNN
|
||||
F 3 "" H 1550 3050 60 0001 C CNN
|
||||
1 1550 3050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1218,6 +1278,8 @@ U 1 1 462382CE
|
|||
P 6150 8750
|
||||
F 0 "C16" H 6200 8850 50 0000 L CNN
|
||||
F 1 "10uF" H 6200 8650 50 0000 L CNN
|
||||
F 2 "" H 6150 8750 60 0001 C CNN
|
||||
F 3 "" H 6150 8750 60 0001 C CNN
|
||||
1 6150 8750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1227,6 +1289,8 @@ U 1 1 462380EB
|
|||
P 6150 9000
|
||||
F 0 "#PWR019" H 6150 9000 40 0001 C CNN
|
||||
F 1 "GNDA" H 6150 8930 40 0000 C CNN
|
||||
F 2 "" H 6150 9000 60 0001 C CNN
|
||||
F 3 "" H 6150 9000 60 0001 C CNN
|
||||
1 6150 9000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1236,6 +1300,8 @@ U 1 1 462380D3
|
|||
P 5350 9000
|
||||
F 0 "#PWR020" H 5350 9000 30 0001 C CNN
|
||||
F 1 "GND" H 5350 8930 30 0001 C CNN
|
||||
F 2 "" H 5350 9000 60 0001 C CNN
|
||||
F 3 "" H 5350 9000 60 0001 C CNN
|
||||
1 5350 9000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1245,6 +1311,8 @@ U 1 1 462380B8
|
|||
P 5700 8950
|
||||
F 0 "FB1" V 5650 8950 40 0000 C CNN
|
||||
F 1 "BEAD" V 5800 8950 40 0000 C CNN
|
||||
F 2 "" H 5700 8950 60 0001 C CNN
|
||||
F 3 "" H 5700 8950 60 0001 C CNN
|
||||
1 5700 8950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -1254,6 +1322,8 @@ U 1 1 46238092
|
|||
P 5700 8500
|
||||
F 0 "L1" V 5650 8500 40 0000 C CNN
|
||||
F 1 "10uH" V 5800 8500 40 0000 C CNN
|
||||
F 2 "" H 5700 8500 60 0001 C CNN
|
||||
F 3 "" H 5700 8500 60 0001 C CNN
|
||||
1 5700 8500
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -1263,6 +1333,8 @@ U 1 1 46238079
|
|||
P 4950 8500
|
||||
F 0 "VDDA1" H 4950 8650 60 0000 C CNN
|
||||
F 1 "JUMPER" H 4950 8420 40 0000 C CNN
|
||||
F 2 "" H 4950 8500 60 0001 C CNN
|
||||
F 3 "" H 4950 8500 60 0001 C CNN
|
||||
1 4950 8500
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1272,6 +1344,8 @@ U 1 1 46238078
|
|||
P 4600 8450
|
||||
F 0 "#PWR021" H 4600 8410 30 0001 C CNN
|
||||
F 1 "+3.3V" H 4600 8560 30 0000 C CNN
|
||||
F 2 "" H 4600 8450 60 0001 C CNN
|
||||
F 3 "" H 4600 8450 60 0001 C CNN
|
||||
1 4600 8450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1293,6 +1367,8 @@ U 1 1 46237F86
|
|||
P 12500 1900
|
||||
F 0 "D1" H 12500 2000 40 0000 C CNN
|
||||
F 1 "BAT54" H 12500 1800 40 0000 C CNN
|
||||
F 2 "" H 12500 1900 60 0001 C CNN
|
||||
F 3 "" H 12500 1900 60 0001 C CNN
|
||||
1 12500 1900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1302,6 +1378,8 @@ U 1 1 46237F59
|
|||
P 15450 1900
|
||||
F 0 "#PWR022" H 15450 1860 30 0001 C CNN
|
||||
F 1 "+3.3V" H 15450 2010 30 0000 C CNN
|
||||
F 2 "" H 15450 1900 60 0001 C CNN
|
||||
F 3 "" H 15450 1900 60 0001 C CNN
|
||||
1 15450 1900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1311,6 +1389,8 @@ U 1 1 46237F50
|
|||
P 15050 1900
|
||||
F 0 "ABRT_SW1" H 15050 2050 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 15050 1820 50 0000 C CNN
|
||||
F 2 "" H 15050 1900 60 0001 C CNN
|
||||
F 3 "" H 15050 1900 60 0001 C CNN
|
||||
1 15050 1900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1320,6 +1400,8 @@ U 1 1 46237F11
|
|||
P 14200 2500
|
||||
F 0 "#PWR023" H 14200 2500 30 0001 C CNN
|
||||
F 1 "GND" H 14200 2430 30 0001 C CNN
|
||||
F 2 "" H 14200 2500 60 0001 C CNN
|
||||
F 3 "" H 14200 2500 60 0001 C CNN
|
||||
1 14200 2500
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1329,6 +1411,8 @@ U 1 1 46237F0E
|
|||
P 13950 2450
|
||||
F 0 "#PWR024" H 13950 2450 30 0001 C CNN
|
||||
F 1 "GND" H 13950 2380 30 0001 C CNN
|
||||
F 2 "" H 13950 2450 60 0001 C CNN
|
||||
F 3 "" H 13950 2450 60 0001 C CNN
|
||||
1 13950 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1338,6 +1422,8 @@ U 1 1 46237E86
|
|||
P 12800 900
|
||||
F 0 "#PWR025" H 12800 860 30 0001 C CNN
|
||||
F 1 "+3.3V" H 12800 1010 30 0000 C CNN
|
||||
F 2 "" H 12800 900 60 0001 C CNN
|
||||
F 3 "" H 12800 900 60 0001 C CNN
|
||||
1 12800 900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1347,6 +1433,8 @@ U 1 1 46237E52
|
|||
P 12800 1100
|
||||
F 0 "LEDABRT1" H 12800 1200 50 0000 C CNN
|
||||
F 1 "RED" H 12800 1000 50 0000 C CNN
|
||||
F 2 "" H 12800 1100 60 0001 C CNN
|
||||
F 3 "" H 12800 1100 60 0001 C CNN
|
||||
1 12800 1100
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1356,6 +1444,8 @@ U 1 1 46237E3D
|
|||
P 12800 1600
|
||||
F 0 "R14" V 12880 1600 50 0000 C CNN
|
||||
F 1 "270" V 12800 1600 50 0000 C CNN
|
||||
F 2 "" H 12800 1600 60 0001 C CNN
|
||||
F 3 "" H 12800 1600 60 0001 C CNN
|
||||
1 12800 1600
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1365,6 +1455,8 @@ U 1 1 46237E36
|
|||
P 13950 2250
|
||||
F 0 "C15" H 13700 2350 50 0000 L CNN
|
||||
F 1 "100nF" H 13650 2150 50 0000 L CNN
|
||||
F 2 "" H 13950 2250 60 0001 C CNN
|
||||
F 3 "" H 13950 2250 60 0001 C CNN
|
||||
1 13950 2250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1374,6 +1466,8 @@ U 1 1 46237E2F
|
|||
P 14200 2250
|
||||
F 0 "R12" V 14280 2250 50 0000 C CNN
|
||||
F 1 "20K" V 14200 2250 50 0000 C CNN
|
||||
F 2 "" H 14200 2250 60 0001 C CNN
|
||||
F 3 "" H 14200 2250 60 0001 C CNN
|
||||
1 14200 2250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1383,6 +1477,8 @@ U 1 1 46237E28
|
|||
P 14450 1900
|
||||
F 0 "R7" V 14530 1900 50 0000 C CNN
|
||||
F 1 "1K" V 14450 1900 50 0000 C CNN
|
||||
F 2 "" H 14450 1900 60 0001 C CNN
|
||||
F 3 "" H 14450 1900 60 0001 C CNN
|
||||
1 14450 1900
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1392,6 +1488,8 @@ U 1 1 46237E18
|
|||
P 13350 1450
|
||||
F 0 "#PWR026" H 13350 1410 30 0001 C CNN
|
||||
F 1 "+3.3V" H 13350 1560 30 0000 C CNN
|
||||
F 2 "" H 13350 1450 60 0001 C CNN
|
||||
F 3 "" H 13350 1450 60 0001 C CNN
|
||||
1 13350 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1401,6 +1499,8 @@ U 1 1 46237E07
|
|||
P 13750 1450
|
||||
F 0 "#PWR027" H 13750 1450 30 0001 C CNN
|
||||
F 1 "GND" H 13750 1380 30 0001 C CNN
|
||||
F 2 "" H 13750 1450 60 0001 C CNN
|
||||
F 3 "" H 13750 1450 60 0001 C CNN
|
||||
1 13750 1450
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -1410,6 +1510,8 @@ U 1 1 46237DF9
|
|||
P 13550 1450
|
||||
F 0 "C14" H 13600 1550 50 0000 L CNN
|
||||
F 1 "100nF" V 13350 1450 50 0000 L CNN
|
||||
F 2 "" H 13550 1450 60 0001 C CNN
|
||||
F 3 "" H 13550 1450 60 0001 C CNN
|
||||
1 13550 1450
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1421,6 +1523,8 @@ U 1 1 461BE524
|
|||
P 5250 3000
|
||||
F 0 "#PWR028" H 5250 3100 30 0001 C CNN
|
||||
F 1 "VDD" H 5250 3110 30 0000 C CNN
|
||||
F 2 "" H 5250 3000 60 0001 C CNN
|
||||
F 3 "" H 5250 3000 60 0001 C CNN
|
||||
1 5250 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1430,6 +1534,8 @@ U 1 1 461BE50C
|
|||
P 5500 3050
|
||||
F 0 "R45" V 5600 2950 50 0000 C CNN
|
||||
F 1 "4,7K" V 5500 3050 50 0000 C CNN
|
||||
F 2 "" H 5500 3050 60 0001 C CNN
|
||||
F 3 "" H 5500 3050 60 0001 C CNN
|
||||
1 5500 3050
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1475,6 +1581,8 @@ U 1 1 461BE37E
|
|||
P 7100 1850
|
||||
F 0 "#PWR029" H 7100 1850 30 0001 C CNN
|
||||
F 1 "GND" H 7100 1780 30 0001 C CNN
|
||||
F 2 "" H 7100 1850 60 0001 C CNN
|
||||
F 3 "" H 7100 1850 60 0001 C CNN
|
||||
1 7100 1850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1484,6 +1592,8 @@ U 1 1 461BE36C
|
|||
P 6750 1850
|
||||
F 0 "#PWR030" H 6750 1850 30 0001 C CNN
|
||||
F 1 "GND" H 6750 1780 30 0001 C CNN
|
||||
F 2 "" H 6750 1850 60 0001 C CNN
|
||||
F 3 "" H 6750 1850 60 0001 C CNN
|
||||
1 6750 1850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1493,6 +1603,8 @@ U 1 1 461BE364
|
|||
P 6750 1650
|
||||
F 0 "C20" H 6800 1750 50 0000 L CNN
|
||||
F 1 "1nF" H 6800 1550 50 0000 L CNN
|
||||
F 2 "" H 6750 1650 60 0001 C CNN
|
||||
F 3 "" H 6750 1650 60 0001 C CNN
|
||||
1 6750 1650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1502,6 +1614,8 @@ U 1 1 461BE35C
|
|||
P 7100 1650
|
||||
F 0 "C21" H 7150 1750 50 0000 L CNN
|
||||
F 1 "100nF" H 7150 1550 50 0000 L CNN
|
||||
F 2 "" H 7100 1650 60 0001 C CNN
|
||||
F 3 "" H 7100 1650 60 0001 C CNN
|
||||
1 7100 1650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1511,6 +1625,8 @@ U 1 1 461BE327
|
|||
P 6600 1200
|
||||
F 0 "L2" V 6550 1200 40 0000 C CNN
|
||||
F 1 "10uH" V 6700 1200 40 0000 C CNN
|
||||
F 2 "" H 6600 1200 60 0001 C CNN
|
||||
F 3 "" H 6600 1200 60 0001 C CNN
|
||||
1 6600 1200
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -1520,6 +1636,8 @@ U 1 1 461BE318
|
|||
P 6250 1150
|
||||
F 0 "#PWR031" H 6250 1110 30 0001 C CNN
|
||||
F 1 "+3.3V" H 6250 1260 30 0000 C CNN
|
||||
F 2 "" H 6250 1150 60 0001 C CNN
|
||||
F 3 "" H 6250 1150 60 0001 C CNN
|
||||
1 6250 1150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1529,6 +1647,8 @@ U 1 1 461BE2B7
|
|||
P 4400 3350
|
||||
F 0 "#PWR032" H 4400 3350 30 0001 C CNN
|
||||
F 1 "GND" H 4400 3280 30 0001 C CNN
|
||||
F 2 "" H 4400 3350 60 0001 C CNN
|
||||
F 3 "" H 4400 3350 60 0001 C CNN
|
||||
1 4400 3350
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1542,6 +1662,8 @@ U 1 1 461BE230
|
|||
P 5850 3150
|
||||
F 0 "R9" V 5930 3150 50 0000 C CNN
|
||||
F 1 "0" V 5850 3150 50 0000 C CNN
|
||||
F 2 "" H 5850 3150 60 0001 C CNN
|
||||
F 3 "" H 5850 3150 60 0001 C CNN
|
||||
1 5850 3150
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1551,6 +1673,8 @@ U 1 1 461BE20A
|
|||
P 6150 2200
|
||||
F 0 "#PWR033" H 6150 2200 30 0001 C CNN
|
||||
F 1 "GND" H 6150 2130 30 0001 C CNN
|
||||
F 2 "" H 6150 2200 60 0001 C CNN
|
||||
F 3 "" H 6150 2200 60 0001 C CNN
|
||||
1 6150 2200
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1592,6 +1716,8 @@ U 1 1 461BE128
|
|||
P 4750 5000
|
||||
F 0 "#PWR034" H 4750 5100 30 0001 C CNN
|
||||
F 1 "VDD" H 4750 5110 30 0000 C CNN
|
||||
F 2 "" H 4750 5000 60 0001 C CNN
|
||||
F 3 "" H 4750 5000 60 0001 C CNN
|
||||
1 4750 5000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1601,6 +1727,8 @@ U 1 1 461BE125
|
|||
P 4150 5000
|
||||
F 0 "#PWR035" H 4150 5100 30 0001 C CNN
|
||||
F 1 "VDD" H 4150 5110 30 0000 C CNN
|
||||
F 2 "" H 4150 5000 60 0001 C CNN
|
||||
F 3 "" H 4150 5000 60 0001 C CNN
|
||||
1 4150 5000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1610,6 +1738,8 @@ U 1 1 461BE054
|
|||
P 5050 5650
|
||||
F 0 "R13" V 5130 5650 50 0000 C CNN
|
||||
F 1 "10K" V 5050 5650 50 0000 C CNN
|
||||
F 2 "" H 5050 5650 60 0001 C CNN
|
||||
F 3 "" H 5050 5650 60 0001 C CNN
|
||||
1 5050 5650
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1619,6 +1749,8 @@ U 1 1 461BE051
|
|||
P 4450 5550
|
||||
F 0 "R11" V 4530 5550 50 0000 C CNN
|
||||
F 1 "10K" V 4450 5550 50 0000 C CNN
|
||||
F 2 "" H 4450 5550 60 0001 C CNN
|
||||
F 3 "" H 4450 5550 60 0001 C CNN
|
||||
1 4450 5550
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1628,6 +1760,8 @@ U 1 1 461BE04B
|
|||
P 5050 5450
|
||||
F 0 "R10" V 5130 5450 50 0000 C CNN
|
||||
F 1 "10K" V 5050 5450 50 0000 C CNN
|
||||
F 2 "" H 5050 5450 60 0001 C CNN
|
||||
F 3 "" H 5050 5450 60 0001 C CNN
|
||||
1 5050 5450
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1637,6 +1771,8 @@ U 1 1 461BE047
|
|||
P 4450 5350
|
||||
F 0 "R8" V 4530 5350 50 0000 C CNN
|
||||
F 1 "10K" V 4450 5350 50 0000 C CNN
|
||||
F 2 "" H 4450 5350 60 0001 C CNN
|
||||
F 3 "" H 4450 5350 60 0001 C CNN
|
||||
1 4450 5350
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1646,6 +1782,8 @@ U 1 1 461BE046
|
|||
P 5050 5250
|
||||
F 0 "R6" V 5130 5250 50 0000 C CNN
|
||||
F 1 "10K" V 5050 5250 50 0000 C CNN
|
||||
F 2 "" H 5050 5250 60 0001 C CNN
|
||||
F 3 "" H 5050 5250 60 0001 C CNN
|
||||
1 5050 5250
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1655,6 +1793,8 @@ U 1 1 461BE041
|
|||
P 4450 5150
|
||||
F 0 "R5" V 4530 5150 50 0000 C CNN
|
||||
F 1 "10K" V 4450 5150 50 0000 C CNN
|
||||
F 2 "" H 4450 5150 60 0001 C CNN
|
||||
F 3 "" H 4450 5150 60 0001 C CNN
|
||||
1 4450 5150
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1664,6 +1804,8 @@ U 1 1 461BE039
|
|||
P 5050 5050
|
||||
F 0 "R4" V 5130 5050 50 0000 C CNN
|
||||
F 1 "10K" V 5050 5050 50 0000 C CNN
|
||||
F 2 "" H 5050 5050 60 0001 C CNN
|
||||
F 3 "" H 5050 5050 60 0001 C CNN
|
||||
1 5050 5050
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1687,6 +1829,8 @@ U 1 1 461BBA34
|
|||
P 13700 5000
|
||||
F 0 "TA-1" H 13750 4900 40 0000 C CNN
|
||||
F 1 "CONN_1" H 13650 5040 30 0001 C CNN
|
||||
F 2 "" H 13700 5000 60 0001 C CNN
|
||||
F 3 "" H 13700 5000 60 0001 C CNN
|
||||
1 13700 5000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1699,6 +1843,8 @@ U 1 1 461BB93F
|
|||
P 12500 4900
|
||||
F 0 "#PWR036" H 12500 4860 30 0001 C CNN
|
||||
F 1 "+3.3V" H 12500 5010 30 0000 C CNN
|
||||
F 2 "" H 12500 4900 60 0001 C CNN
|
||||
F 3 "" H 12500 4900 60 0001 C CNN
|
||||
1 12500 4900
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -1742,6 +1888,8 @@ U 1 1 461BB8C6
|
|||
P 14050 5400
|
||||
F 0 "#PWR037" H 14050 5400 30 0001 C CNN
|
||||
F 1 "GND" H 14050 5330 30 0001 C CNN
|
||||
F 2 "" H 14050 5400 60 0001 C CNN
|
||||
F 3 "" H 14050 5400 60 0001 C CNN
|
||||
1 14050 5400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1751,6 +1899,8 @@ U 1 1 461BB8C0
|
|||
P 14050 5150
|
||||
F 0 "R26" V 14130 5150 50 0000 C CNN
|
||||
F 1 "10K" V 14050 5150 50 0000 C CNN
|
||||
F 2 "" H 14050 5150 60 0001 C CNN
|
||||
F 3 "" H 14050 5150 60 0001 C CNN
|
||||
1 14050 5150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1760,6 +1910,8 @@ U 1 1 461BB894
|
|||
P 14650 4950
|
||||
F 0 "CLKOUT1" H 14700 4850 40 0000 C CNN
|
||||
F 1 "CONN_1" H 14600 4990 30 0001 C CNN
|
||||
F 2 "" H 14650 4950 60 0001 C CNN
|
||||
F 3 "" H 14650 4950 60 0001 C CNN
|
||||
1 14650 4950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1773,6 +1925,8 @@ U 1 1 461BB7AD
|
|||
P 13800 2850
|
||||
F 0 "#PWR038" H 13800 2950 30 0001 C CNN
|
||||
F 1 "VDD" H 13800 2960 30 0000 C CNN
|
||||
F 2 "" H 13800 2850 60 0001 C CNN
|
||||
F 3 "" H 13800 2850 60 0001 C CNN
|
||||
1 13800 2850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1782,6 +1936,8 @@ U 1 1 461BB799
|
|||
P 14550 3200
|
||||
F 0 "R20" V 14630 3200 50 0000 C CNN
|
||||
F 1 "4,7K" V 14550 3200 50 0000 C CNN
|
||||
F 2 "" H 14550 3200 60 0001 C CNN
|
||||
F 3 "" H 14550 3200 60 0001 C CNN
|
||||
1 14550 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1791,6 +1947,8 @@ U 1 1 461BB798
|
|||
P 14300 3200
|
||||
F 0 "R19" V 14380 3200 50 0000 C CNN
|
||||
F 1 "4,7K" V 14300 3200 50 0000 C CNN
|
||||
F 2 "" H 14300 3200 60 0001 C CNN
|
||||
F 3 "" H 14300 3200 60 0001 C CNN
|
||||
1 14300 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1800,6 +1958,8 @@ U 1 1 461BB795
|
|||
P 14050 3200
|
||||
F 0 "R18" V 14130 3200 50 0000 C CNN
|
||||
F 1 "4,7K" V 14050 3200 50 0000 C CNN
|
||||
F 2 "" H 14050 3200 60 0001 C CNN
|
||||
F 3 "" H 14050 3200 60 0001 C CNN
|
||||
1 14050 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1809,6 +1969,8 @@ U 1 1 461BB790
|
|||
P 13800 3200
|
||||
F 0 "R17" V 13880 3200 50 0000 C CNN
|
||||
F 1 "4,7K" V 13800 3200 50 0000 C CNN
|
||||
F 2 "" H 13800 3200 60 0001 C CNN
|
||||
F 3 "" H 13800 3200 60 0001 C CNN
|
||||
1 13800 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1828,6 +1990,8 @@ U 1 1 461BB742
|
|||
P 5400 3750
|
||||
F 0 "R46" V 5480 3750 50 0000 C CNN
|
||||
F 1 "22" V 5400 3750 50 0000 C CNN
|
||||
F 2 "" H 5400 3750 60 0001 C CNN
|
||||
F 3 "" H 5400 3750 60 0001 C CNN
|
||||
1 5400 3750
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1853,6 +2017,8 @@ U 1 1 461BB690
|
|||
P 5600 3150
|
||||
F 0 "#PWR039" H 5600 3150 30 0001 C CNN
|
||||
F 1 "GND" H 5600 3080 30 0001 C CNN
|
||||
F 2 "" H 5600 3150 60 0001 C CNN
|
||||
F 3 "" H 5600 3150 60 0001 C CNN
|
||||
1 5600 3150
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1862,6 +2028,8 @@ U 1 1 461BB68E
|
|||
P 3750 2000
|
||||
F 0 "#PWR040" H 3750 2000 30 0001 C CNN
|
||||
F 1 "GND" H 3750 1930 30 0001 C CNN
|
||||
F 2 "" H 3750 2000 60 0001 C CNN
|
||||
F 3 "" H 3750 2000 60 0001 C CNN
|
||||
1 3750 2000
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1871,6 +2039,8 @@ U 1 1 461BB662
|
|||
P 4650 1100
|
||||
F 0 "#PWR041" H 4650 1200 30 0001 C CNN
|
||||
F 1 "VDD" H 4650 1210 30 0000 C CNN
|
||||
F 2 "" H 4650 1100 60 0001 C CNN
|
||||
F 3 "" H 4650 1100 60 0001 C CNN
|
||||
1 4650 1100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1880,6 +2050,8 @@ U 1 1 461BB661
|
|||
P 4650 1350
|
||||
F 0 "R2" V 4730 1350 50 0000 C CNN
|
||||
F 1 "4,7K" V 4650 1350 50 0000 C CNN
|
||||
F 2 "" H 4650 1350 60 0001 C CNN
|
||||
F 3 "" H 4650 1350 60 0001 C CNN
|
||||
1 4650 1350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1889,6 +2061,8 @@ U 1 1 461BB660
|
|||
P 4450 1100
|
||||
F 0 "#PWR042" H 4450 1200 30 0001 C CNN
|
||||
F 1 "VDD" H 4450 1210 30 0000 C CNN
|
||||
F 2 "" H 4450 1100 60 0001 C CNN
|
||||
F 3 "" H 4450 1100 60 0001 C CNN
|
||||
1 4450 1100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1898,6 +2072,8 @@ U 1 1 461BB65F
|
|||
P 4450 1350
|
||||
F 0 "R25" V 4530 1350 50 0000 C CNN
|
||||
F 1 "4,7K" V 4450 1350 50 0000 C CNN
|
||||
F 2 "" H 4450 1350 60 0001 C CNN
|
||||
F 3 "" H 4450 1350 60 0001 C CNN
|
||||
1 4450 1350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1907,6 +2083,8 @@ U 1 1 461BB648
|
|||
P 4050 2000
|
||||
F 0 "CLK1" H 4050 2150 60 0000 C CNN
|
||||
F 1 "JUMPER" H 4050 1920 40 0000 C CNN
|
||||
F 2 "" H 4050 2000 60 0001 C CNN
|
||||
F 3 "" H 4050 2000 60 0001 C CNN
|
||||
1 4050 2000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1916,6 +2094,8 @@ U 1 1 461BB62E
|
|||
P 4050 1650
|
||||
F 0 "CLK0" H 4050 1800 60 0000 C CNN
|
||||
F 1 "JUMPER" H 4050 1570 40 0000 C CNN
|
||||
F 2 "" H 4050 1650 60 0001 C CNN
|
||||
F 3 "" H 4050 1650 60 0001 C CNN
|
||||
1 4050 1650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1925,6 +2105,8 @@ U 1 1 461BB60D
|
|||
P 8400 1650
|
||||
F 0 "#PWR043" H 8400 1750 30 0001 C CNN
|
||||
F 1 "VDD" H 8400 1760 30 0000 C CNN
|
||||
F 2 "" H 8400 1650 60 0001 C CNN
|
||||
F 3 "" H 8400 1650 60 0001 C CNN
|
||||
1 8400 1650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1934,6 +2116,8 @@ U 1 1 461BB5E5
|
|||
P 7050 10100
|
||||
F 0 "C6" H 7100 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 7100 10000 50 0000 L CNN
|
||||
F 2 "" H 7050 10100 60 0001 C CNN
|
||||
F 3 "" H 7050 10100 60 0001 C CNN
|
||||
1 7050 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1943,6 +2127,8 @@ U 1 1 461BB525
|
|||
P 5050 2800
|
||||
F 0 "#PWR044" H 5050 2900 30 0001 C CNN
|
||||
F 1 "VDD" H 5050 2910 30 0000 C CNN
|
||||
F 2 "" H 5050 2800 60 0001 C CNN
|
||||
F 3 "" H 5050 2800 60 0001 C CNN
|
||||
1 5050 2800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1952,6 +2138,8 @@ U 1 1 461BAF82
|
|||
P 3750 1650
|
||||
F 0 "#PWR045" H 3750 1650 30 0001 C CNN
|
||||
F 1 "GND" H 3750 1580 30 0001 C CNN
|
||||
F 2 "" H 3750 1650 60 0001 C CNN
|
||||
F 3 "" H 3750 1650 60 0001 C CNN
|
||||
1 3750 1650
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -1961,6 +2149,8 @@ U 1 1 461BAF5C
|
|||
P 5050 3050
|
||||
F 0 "R16" V 5130 3050 50 0000 C CNN
|
||||
F 1 "4,7K" V 5050 3050 50 0000 C CNN
|
||||
F 2 "" H 5050 3050 60 0001 C CNN
|
||||
F 3 "" H 5050 3050 60 0001 C CNN
|
||||
1 5050 3050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1970,6 +2160,8 @@ U 1 1 461BAF4F
|
|||
P 4700 3350
|
||||
F 0 "BDM_EN1" H 4700 3500 60 0000 C CNN
|
||||
F 1 "JUMPER" H 4700 3270 40 0000 C CNN
|
||||
F 2 "" H 4700 3350 60 0001 C CNN
|
||||
F 3 "" H 4700 3350 60 0001 C CNN
|
||||
1 4700 3350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1979,6 +2171,8 @@ U 1 1 461BAF37
|
|||
P 13550 4600
|
||||
F 0 "#PWR046" H 13550 4600 30 0001 C CNN
|
||||
F 1 "GND" H 13550 4530 30 0001 C CNN
|
||||
F 2 "" H 13550 4600 60 0001 C CNN
|
||||
F 3 "" H 13550 4600 60 0001 C CNN
|
||||
1 13550 4600
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -1988,6 +2182,8 @@ U 1 1 461BAF13
|
|||
P 12650 5000
|
||||
F 0 "#PWR047" H 12650 5000 30 0001 C CNN
|
||||
F 1 "GND" H 12650 4930 30 0001 C CNN
|
||||
F 2 "" H 12650 5000 60 0001 C CNN
|
||||
F 3 "" H 12650 5000 60 0001 C CNN
|
||||
1 12650 5000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -1997,6 +2193,8 @@ U 1 1 461BAEE7
|
|||
P 13150 4300
|
||||
F 0 "BDM_PORT1" H 13150 5000 60 0000 C CNN
|
||||
F 1 "CONN_13X2" V 13150 4300 50 0000 C CNN
|
||||
F 2 "" H 13150 4300 60 0001 C CNN
|
||||
F 3 "" H 13150 4300 60 0001 C CNN
|
||||
1 13150 4300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2006,6 +2204,8 @@ U 1 1 461BAEA3
|
|||
P 6300 9800
|
||||
F 0 "#PWR048" H 6300 9900 30 0001 C CNN
|
||||
F 1 "VDD" H 6300 9910 30 0000 C CNN
|
||||
F 2 "" H 6300 9800 60 0001 C CNN
|
||||
F 3 "" H 6300 9800 60 0001 C CNN
|
||||
1 6300 9800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2015,6 +2215,8 @@ U 1 1 46161D48
|
|||
P 9650 10400
|
||||
F 0 "#PWR049" H 9650 10400 30 0001 C CNN
|
||||
F 1 "GND" H 9650 10330 30 0001 C CNN
|
||||
F 2 "" H 9650 10400 60 0001 C CNN
|
||||
F 3 "" H 9650 10400 60 0001 C CNN
|
||||
1 9650 10400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2024,6 +2226,8 @@ U 1 1 46161D3C
|
|||
P 9650 10100
|
||||
F 0 "C17" H 9700 10200 50 0000 L CNN
|
||||
F 1 "100uF" H 9700 10000 50 0000 L CNN
|
||||
F 2 "" H 9650 10100 60 0001 C CNN
|
||||
F 3 "" H 9650 10100 60 0001 C CNN
|
||||
1 9650 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2033,6 +2237,8 @@ U 1 1 46161D18
|
|||
P 5650 9800
|
||||
F 0 "#PWR050" H 5650 9760 30 0001 C CNN
|
||||
F 1 "+3.3V" H 5650 9910 30 0000 C CNN
|
||||
F 2 "" H 5650 9800 60 0001 C CNN
|
||||
F 3 "" H 5650 9800 60 0001 C CNN
|
||||
1 5650 9800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2042,6 +2248,8 @@ U 1 1 46161CDA
|
|||
P 9250 10100
|
||||
F 0 "C12" H 9300 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 9300 10000 50 0000 L CNN
|
||||
F 2 "" H 9250 10100 60 0001 C CNN
|
||||
F 3 "" H 9250 10100 60 0001 C CNN
|
||||
1 9250 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2051,6 +2259,8 @@ U 1 1 46161CD9
|
|||
P 8900 10100
|
||||
F 0 "C11" H 8950 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 8950 10000 50 0000 L CNN
|
||||
F 2 "" H 8900 10100 60 0001 C CNN
|
||||
F 3 "" H 8900 10100 60 0001 C CNN
|
||||
1 8900 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2060,6 +2270,8 @@ U 1 1 46161CD8
|
|||
P 8500 10100
|
||||
F 0 "C10" H 8550 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 8550 10000 50 0000 L CNN
|
||||
F 2 "" H 8500 10100 60 0001 C CNN
|
||||
F 3 "" H 8500 10100 60 0001 C CNN
|
||||
1 8500 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2069,6 +2281,8 @@ U 1 1 46161CD7
|
|||
P 8150 10100
|
||||
F 0 "C9" H 8200 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 8200 10000 50 0000 L CNN
|
||||
F 2 "" H 8150 10100 60 0001 C CNN
|
||||
F 3 "" H 8150 10100 60 0001 C CNN
|
||||
1 8150 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2078,6 +2292,8 @@ U 1 1 46161CD4
|
|||
P 7800 10100
|
||||
F 0 "C8" H 7850 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 7850 10000 50 0000 L CNN
|
||||
F 2 "" H 7800 10100 60 0001 C CNN
|
||||
F 3 "" H 7800 10100 60 0001 C CNN
|
||||
1 7800 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2087,6 +2303,8 @@ U 1 1 46161CD3
|
|||
P 7450 10100
|
||||
F 0 "C7" H 7500 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 7500 10000 50 0000 L CNN
|
||||
F 2 "" H 7450 10100 60 0001 C CNN
|
||||
F 3 "" H 7450 10100 60 0001 C CNN
|
||||
1 7450 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2096,6 +2314,8 @@ U 1 1 46161CB8
|
|||
P 6650 10100
|
||||
F 0 "C5" H 6700 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 6700 10000 50 0000 L CNN
|
||||
F 2 "" H 6650 10100 60 0001 C CNN
|
||||
F 3 "" H 6650 10100 60 0001 C CNN
|
||||
1 6650 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -2105,6 +2325,8 @@ U 1 1 46161CB5
|
|||
P 6300 10100
|
||||
F 0 "C4" H 6350 10200 50 0000 L CNN
|
||||
F 1 "100nF" H 6350 10000 50 0000 L CNN
|
||||
F 2 "" H 6300 10100 60 0001 C CNN
|
||||
F 3 "" H 6300 10100 60 0001 C CNN
|
||||
1 6300 10100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
EESchema Schematic File Version 2 date 27/11/2009 11:46:34
|
||||
EESchema Schematic File Version 2
|
||||
LIBS:power
|
||||
LIBS:device
|
||||
LIBS:transistors
|
||||
|
@ -6,31 +6,17 @@ LIBS:conn
|
|||
LIBS:linear
|
||||
LIBS:regul
|
||||
LIBS:74xx
|
||||
LIBS:cmos4000
|
||||
LIBS:adc-dac
|
||||
LIBS:memory
|
||||
LIBS:xilinx
|
||||
LIBS:special
|
||||
LIBS:microcontrollers
|
||||
LIBS:dsp
|
||||
LIBS:microchip
|
||||
LIBS:analog_switches
|
||||
LIBS:motorola
|
||||
LIBS:texas
|
||||
LIBS:intel
|
||||
LIBS:audio
|
||||
LIBS:interface
|
||||
LIBS:digital-audio
|
||||
LIBS:philips
|
||||
LIBS:display
|
||||
LIBS:cypress
|
||||
LIBS:siliconi
|
||||
LIBS:contrib
|
||||
LIBS:valves
|
||||
LIBS:kit-dev-coldfire-xilinx_5213-cache
|
||||
EELAYER 23 0
|
||||
EELAYER 24 0
|
||||
EELAYER END
|
||||
$Descr A4 11700 8267
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 3 3
|
||||
Title "Dev kit coldfire 5213"
|
||||
Date "8 feb 2008"
|
||||
|
@ -377,6 +363,8 @@ U 1 1 480DCF5A
|
|||
P 3500 4100
|
||||
F 0 "#PWR0105" H 3500 4100 30 0001 C CNN
|
||||
F 1 "GND" H 3500 4030 30 0001 C CNN
|
||||
F 2 "" H 3500 4100 60 0001 C CNN
|
||||
F 3 "" H 3500 4100 60 0001 C CNN
|
||||
1 3500 4100
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -386,6 +374,8 @@ U 1 1 4791D619
|
|||
P 10850 3900
|
||||
F 0 "#PWR0106" H 10850 3860 30 0001 C CNN
|
||||
F 1 "+3,3V" H 10850 4010 30 0000 C CNN
|
||||
F 2 "" H 10850 3900 60 0001 C CNN
|
||||
F 3 "" H 10850 3900 60 0001 C CNN
|
||||
1 10850 3900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -395,6 +385,8 @@ U 1 1 4791D59D
|
|||
P 10450 3900
|
||||
F 0 "R64" V 10530 3900 50 0000 C CNN
|
||||
F 1 "3,3" V 10450 3900 50 0000 C CNN
|
||||
F 2 "" H 10450 3900 60 0001 C CNN
|
||||
F 3 "" H 10450 3900 60 0001 C CNN
|
||||
1 10450 3900
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -428,6 +420,8 @@ U 1 1 470F3BF2
|
|||
P 3450 1250
|
||||
F 0 "#PWR0107" H 3450 1250 30 0001 C CNN
|
||||
F 1 "GND" H 3450 1180 30 0001 C CNN
|
||||
F 2 "" H 3450 1250 60 0001 C CNN
|
||||
F 3 "" H 3450 1250 60 0001 C CNN
|
||||
1 3450 1250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -476,6 +470,8 @@ U 1 1 46A76EB2
|
|||
P 6600 1250
|
||||
F 0 "P3" H 6600 1400 50 0000 C CNN
|
||||
F 1 "CONN_2X2" H 6610 1120 40 0000 C CNN
|
||||
F 2 "" H 6600 1250 60 0001 C CNN
|
||||
F 3 "" H 6600 1250 60 0001 C CNN
|
||||
1 6600 1250
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -485,6 +481,8 @@ U 1 1 470F38BE
|
|||
P 4550 4100
|
||||
F 0 "U9" H 4600 4150 70 0000 C CNN
|
||||
F 1 "XCR3256-TQ144" H 4550 500 60 0000 C CNN
|
||||
F 2 "" H 4550 4100 60 0001 C CNN
|
||||
F 3 "" H 4550 4100 60 0001 C CNN
|
||||
1 4550 4100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -584,6 +582,8 @@ U 1 1 46ADE620
|
|||
P 9600 4000
|
||||
F 0 "#PWR0108" H 9600 4000 30 0001 C CNN
|
||||
F 1 "GND" H 9600 3930 30 0001 C CNN
|
||||
F 2 "" H 9600 4000 60 0001 C CNN
|
||||
F 3 "" H 9600 4000 60 0001 C CNN
|
||||
1 9600 4000
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -593,6 +593,8 @@ U 1 1 46ADE61B
|
|||
P 9600 2100
|
||||
F 0 "#PWR0109" H 9600 2100 30 0001 C CNN
|
||||
F 1 "GND" H 9600 2030 30 0001 C CNN
|
||||
F 2 "" H 9600 2100 60 0001 C CNN
|
||||
F 3 "" H 9600 2100 60 0001 C CNN
|
||||
1 9600 2100
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -660,6 +662,8 @@ U 1 1 46ADE55A
|
|||
P 9200 3050
|
||||
F 0 "P4" H 9250 3100 60 0000 C CNN
|
||||
F 1 "CONN_20X2" V 9200 3050 50 0000 C CNN
|
||||
F 2 "" H 9200 3050 60 0001 C CNN
|
||||
F 3 "" H 9200 3050 60 0001 C CNN
|
||||
1 9200 3050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -699,6 +703,8 @@ U 1 1 46A76BD3
|
|||
P 2750 1300
|
||||
F 0 "#PWR0110" H 2750 1260 30 0001 C CNN
|
||||
F 1 "+3,3V" V 2750 1500 30 0000 C CNN
|
||||
F 2 "" H 2750 1300 60 0001 C CNN
|
||||
F 3 "" H 2750 1300 60 0001 C CNN
|
||||
1 2750 1300
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -708,6 +714,8 @@ U 1 1 46A76BD2
|
|||
P 3550 650
|
||||
F 0 "#PWR0111" H 3550 610 30 0001 C CNN
|
||||
F 1 "+3,3V" H 3550 760 30 0000 C CNN
|
||||
F 2 "" H 3550 650 60 0001 C CNN
|
||||
F 3 "" H 3550 650 60 0001 C CNN
|
||||
1 3550 650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -717,6 +725,8 @@ U 1 1 46A76BCA
|
|||
P 3300 650
|
||||
F 0 "R57" V 3380 650 50 0000 C CNN
|
||||
F 1 "4K7" V 3300 650 50 0000 C CNN
|
||||
F 2 "" H 3300 650 60 0001 C CNN
|
||||
F 3 "" H 3300 650 60 0001 C CNN
|
||||
1 3300 650
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
|
@ -728,6 +738,8 @@ U 1 1 46A76BC5
|
|||
P 9500 4950
|
||||
F 0 "#PWR0112" H 9500 4950 40 0001 C CNN
|
||||
F 1 "GND" H 9500 4880 40 0001 C CNN
|
||||
F 2 "" H 9500 4950 60 0001 C CNN
|
||||
F 3 "" H 9500 4950 60 0001 C CNN
|
||||
1 9500 4950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -737,6 +749,8 @@ U 1 1 46A76BC4
|
|||
P 9300 4950
|
||||
F 0 "D8" H 9300 5050 50 0000 C CNN
|
||||
F 1 "LED" H 9300 4850 50 0000 C CNN
|
||||
F 2 "" H 9300 4950 60 0001 C CNN
|
||||
F 3 "" H 9300 4950 60 0001 C CNN
|
||||
1 9300 4950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -746,6 +760,8 @@ U 1 1 46A76BC3
|
|||
P 8800 4950
|
||||
F 0 "R62" V 8880 4950 50 0000 C CNN
|
||||
F 1 "1K" V 8800 4950 50 0000 C CNN
|
||||
F 2 "" H 8800 4950 60 0001 C CNN
|
||||
F 3 "" H 8800 4950 60 0001 C CNN
|
||||
1 8800 4950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -755,6 +771,8 @@ U 1 1 46A76BC1
|
|||
P 7650 6650
|
||||
F 0 "#PWR0113" H 7650 6650 30 0001 C CNN
|
||||
F 1 "GND" H 7650 6580 30 0001 C CNN
|
||||
F 2 "" H 7650 6650 60 0001 C CNN
|
||||
F 3 "" H 7650 6650 60 0001 C CNN
|
||||
1 7650 6650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -764,6 +782,8 @@ U 1 1 46A76BBF
|
|||
P 7650 6050
|
||||
F 0 "#PWR0114" H 7650 6010 30 0001 C CNN
|
||||
F 1 "+3,3V" H 7650 6160 30 0000 C CNN
|
||||
F 2 "" H 7650 6050 60 0001 C CNN
|
||||
F 3 "" H 7650 6050 60 0001 C CNN
|
||||
1 7650 6050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -773,6 +793,8 @@ U 1 1 46A76BBC
|
|||
P 10650 6350
|
||||
F 0 "C61" H 10700 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 10650 6250 50 0000 L CNN
|
||||
F 2 "" H 10650 6350 60 0001 C CNN
|
||||
F 3 "" H 10650 6350 60 0001 C CNN
|
||||
1 10650 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -782,6 +804,8 @@ U 1 1 46A76BBB
|
|||
P 10350 6350
|
||||
F 0 "C60" H 10400 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 10350 6250 50 0000 L CNN
|
||||
F 2 "" H 10350 6350 60 0001 C CNN
|
||||
F 3 "" H 10350 6350 60 0001 C CNN
|
||||
1 10350 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -791,6 +815,8 @@ U 1 1 46A76BBA
|
|||
P 10050 6350
|
||||
F 0 "C59" H 10100 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 10050 6250 50 0000 L CNN
|
||||
F 2 "" H 10050 6350 60 0001 C CNN
|
||||
F 3 "" H 10050 6350 60 0001 C CNN
|
||||
1 10050 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -800,6 +826,8 @@ U 1 1 46A76BB5
|
|||
P 8550 6350
|
||||
F 0 "C54" H 8600 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 8550 6250 50 0000 L CNN
|
||||
F 2 "" H 8550 6350 60 0001 C CNN
|
||||
F 3 "" H 8550 6350 60 0001 C CNN
|
||||
1 8550 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -809,6 +837,8 @@ U 1 1 46A76BB4
|
|||
P 8250 6350
|
||||
F 0 "C53" H 8300 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 8250 6250 50 0000 L CNN
|
||||
F 2 "" H 8250 6350 60 0001 C CNN
|
||||
F 3 "" H 8250 6350 60 0001 C CNN
|
||||
1 8250 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -818,6 +848,8 @@ U 1 1 46A76BB3
|
|||
P 7950 6350
|
||||
F 0 "C52" H 8000 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 7950 6250 50 0000 L CNN
|
||||
F 2 "" H 7950 6350 60 0001 C CNN
|
||||
F 3 "" H 7950 6350 60 0001 C CNN
|
||||
1 7950 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -827,6 +859,8 @@ U 1 1 46A76BB2
|
|||
P 7650 6350
|
||||
F 0 "C51" H 7700 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 7650 6250 50 0000 L CNN
|
||||
F 2 "" H 7650 6350 60 0001 C CNN
|
||||
F 3 "" H 7650 6350 60 0001 C CNN
|
||||
1 7650 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -836,6 +870,8 @@ U 1 1 46A76BB1
|
|||
P 9750 6350
|
||||
F 0 "C58" H 9800 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 9750 6250 50 0000 L CNN
|
||||
F 2 "" H 9750 6350 60 0001 C CNN
|
||||
F 3 "" H 9750 6350 60 0001 C CNN
|
||||
1 9750 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -845,6 +881,8 @@ U 1 1 46A76BB0
|
|||
P 9450 6350
|
||||
F 0 "C57" H 9500 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 9450 6250 50 0000 L CNN
|
||||
F 2 "" H 9450 6350 60 0001 C CNN
|
||||
F 3 "" H 9450 6350 60 0001 C CNN
|
||||
1 9450 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -854,6 +892,8 @@ U 1 1 46A76BAF
|
|||
P 9150 6350
|
||||
F 0 "C56" H 9200 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 9150 6250 50 0000 L CNN
|
||||
F 2 "" H 9150 6350 60 0001 C CNN
|
||||
F 3 "" H 9150 6350 60 0001 C CNN
|
||||
1 9150 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -863,6 +903,8 @@ U 1 1 46A76BAE
|
|||
P 8850 6350
|
||||
F 0 "C55" H 8900 6450 50 0000 L CNN
|
||||
F 1 "100nF" H 8850 6250 50 0000 L CNN
|
||||
F 2 "" H 8850 6350 60 0001 C CNN
|
||||
F 3 "" H 8850 6350 60 0001 C CNN
|
||||
1 8850 6350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -876,6 +918,8 @@ U 1 1 46A76BA9
|
|||
P 9500 5250
|
||||
F 0 "#PWR0115" H 9500 5250 40 0001 C CNN
|
||||
F 1 "GND" H 9500 5180 40 0001 C CNN
|
||||
F 2 "" H 9500 5250 60 0001 C CNN
|
||||
F 3 "" H 9500 5250 60 0001 C CNN
|
||||
1 9500 5250
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -885,6 +929,8 @@ U 1 1 46A76BA8
|
|||
P 9300 5250
|
||||
F 0 "D9" H 9300 5350 50 0000 C CNN
|
||||
F 1 "LED" H 9300 5150 50 0000 C CNN
|
||||
F 2 "" H 9300 5250 60 0001 C CNN
|
||||
F 3 "" H 9300 5250 60 0001 C CNN
|
||||
1 9300 5250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
|
@ -894,6 +940,8 @@ U 1 1 46A76BA7
|
|||
P 8800 5250
|
||||
F 0 "R63" V 8880 5250 50 0000 C CNN
|
||||
F 1 "1K" V 8800 5250 50 0000 C CNN
|
||||
F 2 "" H 8800 5250 60 0001 C CNN
|
||||
F 3 "" H 8800 5250 60 0001 C CNN
|
||||
1 8800 5250
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
@ -909,6 +957,8 @@ U 1 1 46A76BA6
|
|||
P 2350 1050
|
||||
F 0 "P1" V 2300 1050 60 0000 C CNN
|
||||
F 1 "CONN_6" V 2400 1050 60 0000 C CNN
|
||||
F 2 "" H 2350 1050 60 0001 C CNN
|
||||
F 3 "" H 2350 1050 60 0001 C CNN
|
||||
1 2350 1050
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
|
@ -918,6 +968,8 @@ U 1 1 46A76BA5
|
|||
P 2700 1200
|
||||
F 0 "#PWR0116" H 2700 1200 40 0001 C CNN
|
||||
F 1 "GND" H 2700 1130 40 0001 C CNN
|
||||
F 2 "" H 2700 1200 60 0001 C CNN
|
||||
F 3 "" H 2700 1200 60 0001 C CNN
|
||||
1 2700 1200
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
|
|
|
@ -94,6 +94,7 @@ extern const wxString SVGFileWildcard;
|
|||
extern const wxString ReportFileWildcard;
|
||||
extern const wxString FootprintPlaceFileWildcard;
|
||||
extern const wxString Shapes3DFileWildcard;
|
||||
extern const wxString IDF3DFileWildcard;
|
||||
extern const wxString DocModulesFileName;
|
||||
extern const wxString LegacyFootprintLibPathWildcard;
|
||||
extern const wxString KiCadFootprintLibFileWildcard;
|
||||
|
|
|
@ -36,15 +36,12 @@
|
|||
#include <bezier_curves.h>
|
||||
#include <class_drawpanel.h>
|
||||
#include <class_pcb_screen.h>
|
||||
#include <kicad_string.h>
|
||||
#include <colors_selection.h>
|
||||
#include <trigo.h>
|
||||
#include <richio.h>
|
||||
#include <pcbcommon.h>
|
||||
#include <msgpanel.h>
|
||||
|
||||
#include <pcbnew.h>
|
||||
#include <math_for_graphics.h>
|
||||
|
||||
#include <class_board.h>
|
||||
#include <class_module.h>
|
||||
|
|
|
@ -146,7 +146,7 @@ MODULE::MODULE( const MODULE& aModule ) :
|
|||
// Copy auxiliary data: 3D_Drawings info
|
||||
for( S3D_MASTER* item = aModule.m_3D_Drawings; item; item = item->Next() )
|
||||
{
|
||||
if( item->m_Shape3DName.IsEmpty() ) // do not copy empty shapes.
|
||||
if( item->GetShape3DName().IsEmpty() ) // do not copy empty shapes.
|
||||
continue;
|
||||
|
||||
S3D_MASTER* t3d = m_3D_Drawings;
|
||||
|
@ -270,12 +270,12 @@ void MODULE::Copy( MODULE* aModule )
|
|||
|
||||
for( S3D_MASTER* item = aModule->m_3D_Drawings; item; item = item->Next() )
|
||||
{
|
||||
if( item->m_Shape3DName.IsEmpty() ) // do not copy empty shapes.
|
||||
if( item->GetShape3DName().IsEmpty() ) // do not copy empty shapes.
|
||||
continue;
|
||||
|
||||
S3D_MASTER* t3d = m_3D_Drawings;
|
||||
|
||||
if( t3d && t3d->m_Shape3DName.IsEmpty() ) // The first entry can
|
||||
if( t3d && t3d->GetShape3DName().IsEmpty() ) // The first entry can
|
||||
{ // exist, but is empty : use it.
|
||||
t3d->Copy( item );
|
||||
}
|
||||
|
@ -530,9 +530,9 @@ void MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
|||
// Search the first active 3D shape in list
|
||||
for( S3D_MASTER* struct3D = m_3D_Drawings; struct3D; struct3D = struct3D->Next() )
|
||||
{
|
||||
if( !struct3D->m_Shape3DName.IsEmpty() )
|
||||
if( !struct3D->GetShape3DName().IsEmpty() )
|
||||
{
|
||||
msg = struct3D->m_Shape3DName;
|
||||
msg = struct3D->GetShape3DName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -249,12 +249,12 @@ void DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties()
|
|||
|
||||
while( draw3D )
|
||||
{
|
||||
if( !draw3D->m_Shape3DName.IsEmpty() )
|
||||
if( !draw3D->GetShape3DName().IsEmpty() )
|
||||
{
|
||||
S3D_MASTER* draw3DCopy = new S3D_MASTER( NULL );
|
||||
draw3DCopy->Copy( draw3D );
|
||||
m_Shapes3D_list.push_back( draw3DCopy );
|
||||
m_3D_ShapeNameListBox->Append( draw3DCopy->m_Shape3DName );
|
||||
m_3D_ShapeNameListBox->Append( draw3DCopy->GetShape3DName() );
|
||||
}
|
||||
draw3D = (S3D_MASTER*) draw3D->Next();
|
||||
}
|
||||
|
@ -428,11 +428,16 @@ void DIALOG_MODULE_BOARD_EDITOR::Browse3DLib( wxCommandEvent& event )
|
|||
fullpath.Replace( wxT( "/" ), wxT( "\\" ) );
|
||||
#endif
|
||||
|
||||
wxString fileFilters;
|
||||
fileFilters = wxGetTranslation( Shapes3DFileWildcard );
|
||||
fileFilters += wxChar( '|' );
|
||||
fileFilters += wxGetTranslation( IDF3DFileWildcard );
|
||||
|
||||
fullfilename = EDA_FileSelector( _( "3D Shape:" ),
|
||||
fullpath,
|
||||
wxEmptyString,
|
||||
wxEmptyString,
|
||||
wxGetTranslation( Shapes3DFileWildcard ),
|
||||
wxGetTranslation( fileFilters ),
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
true
|
||||
|
@ -474,7 +479,7 @@ void DIALOG_MODULE_BOARD_EDITOR::Browse3DLib( wxCommandEvent& event )
|
|||
// Store filename in Unix notation
|
||||
shortfilename.Replace( wxT( "\\" ), wxT( "/" ) );
|
||||
#endif
|
||||
new3DShape->m_Shape3DName = shortfilename;
|
||||
new3DShape->SetShape3DName( shortfilename );
|
||||
m_Shapes3D_list.push_back( new3DShape );
|
||||
m_3D_ShapeNameListBox->Append( shortfilename );
|
||||
|
||||
|
@ -606,7 +611,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event )
|
|||
{
|
||||
S3D_MASTER* draw3DCopy = m_Shapes3D_list[ii];
|
||||
|
||||
if( draw3DCopy->m_Shape3DName.IsEmpty() )
|
||||
if( draw3DCopy->GetShape3DName().IsEmpty() )
|
||||
continue;
|
||||
|
||||
if( draw3D == NULL )
|
||||
|
@ -615,7 +620,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event )
|
|||
m_CurrentModule->Models().Append( draw3D );
|
||||
}
|
||||
|
||||
draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName;
|
||||
draw3D->SetShape3DName( draw3DCopy->GetShape3DName() );
|
||||
draw3D->m_MatScale = draw3DCopy->m_MatScale;
|
||||
draw3D->m_MatRotation = draw3DCopy->m_MatRotation;
|
||||
draw3D->m_MatPosition = draw3DCopy->m_MatPosition;
|
||||
|
|
|
@ -98,12 +98,12 @@ void DIALOG_MODULE_MODULE_EDITOR::initModeditProperties()
|
|||
|
||||
while( draw3D )
|
||||
{
|
||||
if( !draw3D->m_Shape3DName.IsEmpty() )
|
||||
if( !draw3D->GetShape3DName().IsEmpty() )
|
||||
{
|
||||
S3D_MASTER* draw3DCopy = new S3D_MASTER(NULL);
|
||||
draw3DCopy->Copy( draw3D );
|
||||
m_shapes3D_list.push_back( draw3DCopy );
|
||||
m_3D_ShapeNameListBox->Append( draw3DCopy->m_Shape3DName );
|
||||
m_3D_ShapeNameListBox->Append( draw3DCopy->GetShape3DName() );
|
||||
}
|
||||
draw3D = (S3D_MASTER*) draw3D->Next();
|
||||
}
|
||||
|
@ -292,11 +292,16 @@ void DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DLib( wxCommandEvent& event )
|
|||
fullpath.Replace( wxT( "/" ), wxT( "\\" ) );
|
||||
#endif
|
||||
|
||||
wxString fileFilters;
|
||||
fileFilters = wxGetTranslation( Shapes3DFileWildcard );
|
||||
fileFilters += wxChar( '|' );
|
||||
fileFilters += wxGetTranslation( IDF3DFileWildcard );
|
||||
|
||||
fullfilename = EDA_FileSelector( _( "3D Shape:" ),
|
||||
fullpath,
|
||||
wxEmptyString,
|
||||
wxEmptyString,
|
||||
wxGetTranslation( Shapes3DFileWildcard ),
|
||||
wxGetTranslation( fileFilters ),
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
true
|
||||
|
@ -339,7 +344,7 @@ void DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DLib( wxCommandEvent& event )
|
|||
shortfilename.Replace( wxT( "\\" ), wxT( "/" ) );
|
||||
#endif
|
||||
|
||||
new3DShape->m_Shape3DName = shortfilename;
|
||||
new3DShape->SetShape3DName( shortfilename );
|
||||
m_shapes3D_list.push_back( new3DShape );
|
||||
m_3D_ShapeNameListBox->Append( shortfilename );
|
||||
|
||||
|
@ -439,7 +444,7 @@ void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event )
|
|||
{
|
||||
S3D_MASTER* draw3DCopy = m_shapes3D_list[ii];
|
||||
|
||||
if( draw3DCopy->m_Shape3DName.IsEmpty() )
|
||||
if( draw3DCopy->GetShape3DName().IsEmpty() )
|
||||
continue;
|
||||
|
||||
if( draw3D == NULL )
|
||||
|
@ -448,7 +453,7 @@ void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event )
|
|||
m_currentModule->Models().Append( draw3D );
|
||||
}
|
||||
|
||||
draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName;
|
||||
draw3D->SetShape3DName( draw3DCopy->GetShape3DName() );
|
||||
draw3D->m_MatScale = draw3DCopy->m_MatScale;
|
||||
draw3D->m_MatRotation = draw3DCopy->m_MatRotation;
|
||||
draw3D->m_MatPosition = draw3DCopy->m_MatPosition;
|
||||
|
|
|
@ -64,21 +64,21 @@ public:
|
|||
SetFocus();
|
||||
m_idfThouOpt = false;
|
||||
m_config->Read( OPTKEY_IDF_THOU, &m_idfThouOpt );
|
||||
m_chkThou->SetValue( m_idfThouOpt );
|
||||
m_rbUnitSelection->SetSelection( m_idfThouOpt ? 1 : 0 );
|
||||
|
||||
GetSizer()->SetSizeHints( this );
|
||||
Centre();
|
||||
}
|
||||
|
||||
|
||||
~DIALOG_EXPORT_IDF3()
|
||||
{
|
||||
m_idfThouOpt = m_chkThou->GetValue();
|
||||
m_idfThouOpt = m_rbUnitSelection->GetSelection() == 1;
|
||||
m_config->Write( OPTKEY_IDF_THOU, m_idfThouOpt );
|
||||
}
|
||||
|
||||
bool GetThouOption()
|
||||
{
|
||||
return m_chkThou->GetValue();
|
||||
return m_rbUnitSelection->GetSelection() == 1;
|
||||
}
|
||||
|
||||
wxFilePickerCtrl* FilePicker()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Oct 8 2012)
|
||||
// C++ code generated with wxFormBuilder (version Nov 6 2013)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -16,17 +16,22 @@ DIALOG_EXPORT_IDF3_BASE::DIALOG_EXPORT_IDF3_BASE( wxWindow* parent, wxWindowID i
|
|||
wxBoxSizer* bSizerIDFFile;
|
||||
bSizerIDFFile = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_txtBrdFile = new wxStaticText( this, wxID_ANY, wxT("IDF Board file"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizerIDFFile->SetMinSize( wxSize( 500,-1 ) );
|
||||
m_txtBrdFile = new wxStaticText( this, wxID_ANY, _("IDF board file"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_txtBrdFile->Wrap( -1 );
|
||||
bSizerIDFFile->Add( m_txtBrdFile, 0, wxALL, 5 );
|
||||
bSizerIDFFile->Add( m_txtBrdFile, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_filePickerIDF = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT("Select a board file"), wxT("*.emn"), wxDefaultPosition, wxDefaultSize, wxFLP_OVERWRITE_PROMPT|wxFLP_SAVE|wxFLP_USE_TEXTCTRL );
|
||||
m_filePickerIDF->SetMinSize( wxSize( 420,30 ) );
|
||||
m_filePickerIDF = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, _("Select an IDF export filename"), wxT("*.emn"), wxDefaultPosition, wxSize( 450,-1 ), wxFLP_OVERWRITE_PROMPT|wxFLP_SAVE|wxFLP_USE_TEXTCTRL );
|
||||
bSizerIDFFile->Add( m_filePickerIDF, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
bSizerIDFFile->Add( m_filePickerIDF, 0, wxALL, 5 );
|
||||
wxString m_rbUnitSelectionChoices[] = { _("Millimeters"), _("Mils") };
|
||||
int m_rbUnitSelectionNChoices = sizeof( m_rbUnitSelectionChoices ) / sizeof( wxString );
|
||||
m_rbUnitSelection = new wxRadioBox( this, wxID_ANY, _("IDF File Units"), wxDefaultPosition, wxDefaultSize, m_rbUnitSelectionNChoices, m_rbUnitSelectionChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_rbUnitSelection->SetSelection( 0 );
|
||||
bSizerIDFFile->Add( m_rbUnitSelection, 0, wxALL, 5 );
|
||||
|
||||
m_chkThou = new wxCheckBox( this, wxID_ANY, wxT("unit: THOU"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizerIDFFile->Add( m_chkThou, 0, wxALL, 5 );
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bSizerIDFFile->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
|
||||
|
||||
m_sdbSizer1 = new wxStdDialogButtonSizer();
|
||||
m_sdbSizer1OK = new wxButton( this, wxID_OK );
|
||||
|
@ -35,7 +40,7 @@ DIALOG_EXPORT_IDF3_BASE::DIALOG_EXPORT_IDF3_BASE( wxWindow* parent, wxWindowID i
|
|||
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
|
||||
m_sdbSizer1->Realize();
|
||||
|
||||
bSizerIDFFile->Add( m_sdbSizer1, 1, wxEXPAND, 5 );
|
||||
bSizerIDFFile->Add( m_sdbSizer1, 0, wxALIGN_RIGHT, 5 );
|
||||
|
||||
|
||||
this->SetSizer( bSizerIDFFile );
|
||||
|
|
|
@ -14,14 +14,16 @@
|
|||
<property name="file">dialog_export_idf_base</property>
|
||||
<property name="first_id">1000</property>
|
||||
<property name="help_provider">none</property>
|
||||
<property name="internationalize">0</property>
|
||||
<property name="internationalize">1</property>
|
||||
<property name="name">dialog_export_idf3_base</property>
|
||||
<property name="namespace"></property>
|
||||
<property name="path">.</property>
|
||||
<property name="precompiled_header"></property>
|
||||
<property name="relative_path">1</property>
|
||||
<property name="skip_lua_events">1</property>
|
||||
<property name="skip_php_events">1</property>
|
||||
<property name="skip_python_events">1</property>
|
||||
<property name="ui_table">UI</property>
|
||||
<property name="use_enum">1</property>
|
||||
<property name="use_microsoft_bom">0</property>
|
||||
<object class="Dialog" expanded="1">
|
||||
|
@ -42,7 +44,7 @@
|
|||
<property name="minimum_size"></property>
|
||||
<property name="name">DIALOG_EXPORT_IDF3_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">458,177</property>
|
||||
<property name="size">424,191</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Export IDFv3</property>
|
||||
|
@ -87,13 +89,13 @@
|
|||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="minimum_size">500,-1</property>
|
||||
<property name="name">bSizerIDFFile</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -123,7 +125,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">IDF Board file</property>
|
||||
<property name="label">IDF board file</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -176,7 +178,7 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxFilePickerCtrl" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -209,10 +211,10 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="message">Select a board file</property>
|
||||
<property name="message">Select an IDF export filename</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size">420,30</property>
|
||||
<property name="minimum_size">-1,-1</property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_filePickerIDF</property>
|
||||
<property name="pane_border">1</property>
|
||||
|
@ -223,7 +225,7 @@
|
|||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="size">450,-1</property>
|
||||
<property name="style">wxFLP_OVERWRITE_PROMPT|wxFLP_SAVE|wxFLP_USE_TEXTCTRL</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
|
@ -267,7 +269,7 @@
|
|||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="1">
|
||||
<object class="wxRadioBox" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
|
@ -281,7 +283,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="checked">0</property>
|
||||
<property name="choices">"Millimeters" "Mils"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
@ -296,7 +298,8 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">unit: THOU</property>
|
||||
<property name="label">IDF File Units</property>
|
||||
<property name="majorDimension">1</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -304,7 +307,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_chkThou</property>
|
||||
<property name="name">m_rbUnitSelection</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -312,9 +315,10 @@
|
|||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
|
@ -326,7 +330,88 @@
|
|||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnCheckBox"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRadioBox"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND | wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticLine" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticline1</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxLI_HORIZONTAL</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
|
@ -353,8 +438,8 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<property name="flag">wxALIGN_RIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStdDialogButtonSizer" expanded="1">
|
||||
<property name="Apply">0</property>
|
||||
<property name="Cancel">1</property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Oct 8 2012)
|
||||
// C++ code generated with wxFormBuilder (version Nov 6 2013)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -10,6 +10,7 @@
|
|||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
class DIALOG_SHIM;
|
||||
|
||||
#include "dialog_shim.h"
|
||||
|
@ -20,7 +21,8 @@ class DIALOG_SHIM;
|
|||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/filepicker.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/radiobox.h>
|
||||
#include <wx/statline.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/dialog.h>
|
||||
|
@ -37,14 +39,15 @@ class DIALOG_EXPORT_IDF3_BASE : public DIALOG_SHIM
|
|||
protected:
|
||||
wxStaticText* m_txtBrdFile;
|
||||
wxFilePickerCtrl* m_filePickerIDF;
|
||||
wxCheckBox* m_chkThou;
|
||||
wxRadioBox* m_rbUnitSelection;
|
||||
wxStaticLine* m_staticline1;
|
||||
wxStdDialogButtonSizer* m_sdbSizer1;
|
||||
wxButton* m_sdbSizer1OK;
|
||||
wxButton* m_sdbSizer1Cancel;
|
||||
|
||||
public:
|
||||
|
||||
DIALOG_EXPORT_IDF3_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Export IDFv3"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 458,177 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
DIALOG_EXPORT_IDF3_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Export IDFv3"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 424,191 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_EXPORT_IDF3_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <class_module.h>
|
||||
#include <class_edge_mod.h>
|
||||
#include <idf.h>
|
||||
#include <3d_struct.h>
|
||||
|
||||
// assumed default graphical line thickness: 10000 IU == 0.1mm
|
||||
#define LINE_WIDTH (100000)
|
||||
|
@ -316,8 +317,50 @@ static void idf_export_module( BOARD* aPcb, MODULE* aModule,
|
|||
}
|
||||
}
|
||||
|
||||
// TODO
|
||||
// add to the library item list
|
||||
// add any valid models to the library item list
|
||||
std::string refdes;
|
||||
|
||||
for( S3D_MASTER* modfile = aModule->Models(); modfile != 0; modfile = modfile->Next() )
|
||||
{
|
||||
if( !modfile->Is3DType( S3D_MASTER::FILE3D_IDF ) )
|
||||
continue;
|
||||
|
||||
double rotz = modfile->m_MatRotation.z + aModule->GetOrientation()/10.0;
|
||||
double locx = modfile->m_MatPosition.x;
|
||||
double locy = modfile->m_MatPosition.y;
|
||||
double locz = modfile->m_MatPosition.z;
|
||||
|
||||
bool top = ( aModule->GetLayer() == LAYER_N_BACK ) ? false : true;
|
||||
|
||||
refdes = TO_UTF8( aModule->GetReference() );
|
||||
|
||||
if( top )
|
||||
{
|
||||
locy = -locy;
|
||||
RotatePoint( &locx, &locy, aModule->GetOrientation() );
|
||||
locy = -locy;
|
||||
}
|
||||
if( !top )
|
||||
{
|
||||
RotatePoint( &locx, &locy, aModule->GetOrientation() );
|
||||
locy = -locy;
|
||||
|
||||
rotz = 180.0 - rotz;
|
||||
|
||||
if( rotz >= 360.0 )
|
||||
while( rotz >= 360.0 ) rotz -= 360.0;
|
||||
|
||||
if( rotz <= -360.0 )
|
||||
while( rotz <= -360.0 ) rotz += 360.0;
|
||||
}
|
||||
|
||||
locx += aModule->GetPosition().x * scale + dx;
|
||||
locy += -aModule->GetPosition().y * scale + dy;
|
||||
|
||||
aIDFBoard.PlaceComponent(modfile->GetShape3DName(), refdes, locx, locy, locz, rotz, top);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
@ -332,14 +375,12 @@ bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName, double aUseThou )
|
|||
|
||||
SetLocaleTo_C_standard();
|
||||
|
||||
// NOTE:
|
||||
// XXX We may enclose all this in a TRY .. CATCH block
|
||||
idfBoard.Setup( aPcb->GetFileName(), aFullFileName, aUseThou,
|
||||
aPcb->GetDesignSettings().GetBoardThickness() );
|
||||
|
||||
// set up the global offsets
|
||||
EDA_RECT bbox = aPcb->ComputeBoundingBox( true );
|
||||
idfBoard.SetOffset( bbox.Centre().x * idfBoard.GetScale(),
|
||||
idfBoard.SetOffset( -bbox.Centre().x * idfBoard.GetScale(),
|
||||
bbox.Centre().y * idfBoard.GetScale() );
|
||||
|
||||
// Export the board outline
|
||||
|
|
|
@ -1151,18 +1151,18 @@ static void export_vrml_module( MODEL_VRML& aModel, BOARD* aPcb, MODULE* aModule
|
|||
// Export the object VRML model(s)
|
||||
for( S3D_MASTER* vrmlm = aModule->Models(); vrmlm != 0; vrmlm = vrmlm->Next() )
|
||||
{
|
||||
wxString fname = vrmlm->m_Shape3DName;
|
||||
|
||||
if( fname.IsEmpty() )
|
||||
if( !vrmlm->Is3DType( S3D_MASTER::FILE3D_VRML ) )
|
||||
continue;
|
||||
|
||||
wxString fname = vrmlm->GetShape3DName();
|
||||
|
||||
if( !wxFileName::FileExists( fname ) )
|
||||
{
|
||||
wxFileName fn = fname;
|
||||
fname = wxGetApp().FindLibraryPath( fn );
|
||||
|
||||
if( fname.IsEmpty() ) // keep "short" name if full filemane not found
|
||||
fname = vrmlm->m_Shape3DName;
|
||||
if( fname.IsEmpty() ) // keep "short" name if full filename not found
|
||||
fname = vrmlm->GetShape3DName();
|
||||
}
|
||||
|
||||
fname.Replace( wxT( "\\" ), wxT( "/" ) );
|
||||
|
|
|
@ -30,10 +30,17 @@
|
|||
|
||||
#include <list>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <algorithm>
|
||||
#include <cstdio>
|
||||
#include <cmath>
|
||||
#include <ctime>
|
||||
#include <cctype>
|
||||
#include <strings.h>
|
||||
#include <appl_wxstruct.h>
|
||||
#include <wx/file.h>
|
||||
#include <wx/filename.h>
|
||||
#include <macros.h>
|
||||
#include <idf.h>
|
||||
|
@ -49,6 +56,19 @@
|
|||
// used in a flexible design.
|
||||
#define IDF_MIN_BRD_THICKNESS (12000)
|
||||
|
||||
|
||||
// START: a few routines to help IDF_LIB but which may be of general use in the future
|
||||
// as IDF support develops
|
||||
|
||||
// fetch a line from the given input file and trim the ends
|
||||
static bool FetchIDFLine( std::ifstream& aModel, std::string& aLine, bool& isComment );
|
||||
|
||||
// extract an IDF string and move the index to point to the character after the substring
|
||||
static bool GetIDFString( const std::string& aLine, std::string& aIDFString,
|
||||
bool& hasQuotes, int& aIndex );
|
||||
|
||||
// END: IDF_LIB helper routines
|
||||
|
||||
bool IDF_POINT::Matches( const IDF_POINT& aPoint, double aRadius )
|
||||
{
|
||||
double dx = x - aPoint.x;
|
||||
|
@ -518,40 +538,32 @@ bool IDF_BOARD::Setup( wxString aBoardName,
|
|||
bool IDF_BOARD::Finish( void )
|
||||
{
|
||||
// Steps to finalize the board and library files:
|
||||
// 1. (emp) finalize the library file
|
||||
// 2. (emn) close the BOARD_OUTLINE section
|
||||
// 3. (emn) write out the DRILLED_HOLES section
|
||||
// 1. (emn) close the BOARD_OUTLINE section
|
||||
// 2. (emn) write out the DRILLED_HOLES section
|
||||
// 3. (emp) finalize the library file
|
||||
// 4. (emn) write out the COMPONENT_PLACEMENT section
|
||||
|
||||
// TODO:
|
||||
// idfLib.Finish();
|
||||
if( libFile != NULL )
|
||||
{
|
||||
fclose( libFile );
|
||||
libFile = NULL;
|
||||
}
|
||||
|
||||
if( layoutFile == NULL )
|
||||
if( layoutFile == NULL || libFile == NULL )
|
||||
return false;
|
||||
|
||||
// Finalize the board outline section
|
||||
fprintf( layoutFile, ".END_BOARD_OUTLINE\n\n" );
|
||||
|
||||
// Write out the drill section
|
||||
if( WriteDrills() )
|
||||
{
|
||||
fclose( layoutFile );
|
||||
layoutFile = NULL;
|
||||
return false;
|
||||
}
|
||||
bool ok = WriteDrills();
|
||||
|
||||
// TODO: Write out the component placement section
|
||||
// IDF3::export_placement();
|
||||
// populate the library (*.emp) file and write the
|
||||
// PLACEMENT section
|
||||
if( ok )
|
||||
ok = IDFLib.WriteFiles( layoutFile, libFile );
|
||||
|
||||
fclose( libFile );
|
||||
libFile = NULL;
|
||||
|
||||
fclose( layoutFile );
|
||||
layoutFile = NULL;
|
||||
|
||||
return true;
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
|
@ -753,6 +765,16 @@ bool IDF_BOARD::AddSlot( double aWidth, double aLength, double aOrientation,
|
|||
}
|
||||
|
||||
|
||||
bool IDF_BOARD::PlaceComponent( const wxString aComponentFile, const std::string aRefDes,
|
||||
double aXLoc, double aYLoc, double aZLoc,
|
||||
double aRotation, bool isOnTop )
|
||||
{
|
||||
return IDFLib.PlaceComponent( aComponentFile, aRefDes,
|
||||
aXLoc, aYLoc, aZLoc,
|
||||
aRotation, isOnTop );
|
||||
}
|
||||
|
||||
|
||||
bool IDF_BOARD::WriteDrills( void )
|
||||
{
|
||||
if( !layoutFile )
|
||||
|
@ -936,27 +958,818 @@ void IDF3::GetOutline( std::list<IDF_SEGMENT*>& aLines,
|
|||
}
|
||||
|
||||
|
||||
bool IDF_LIB::WriteLib( FILE* aLibFile )
|
||||
IDF_LIB::~IDF_LIB()
|
||||
{
|
||||
while( !components.empty() )
|
||||
{
|
||||
delete components.back();
|
||||
components.pop_back();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool IDF_LIB::writeLib( FILE* aLibFile )
|
||||
{
|
||||
if( !aLibFile )
|
||||
return false;
|
||||
|
||||
// TODO: check stream integrity and return false as appropriate
|
||||
|
||||
// TODO: export models
|
||||
// export models
|
||||
std::list< IDF_COMP* >::const_iterator mbeg = components.begin();
|
||||
std::list< IDF_COMP* >::const_iterator mend = components.end();
|
||||
|
||||
while( mbeg != mend )
|
||||
{
|
||||
if( !(*mbeg)->WriteLib( aLibFile ) )
|
||||
return false;
|
||||
++mbeg;
|
||||
}
|
||||
|
||||
libWritten = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_LIB::WriteBrd( FILE* aLayoutFile )
|
||||
bool IDF_LIB::writeBrd( FILE* aLayoutFile )
|
||||
{
|
||||
if( !aLayoutFile )
|
||||
if( !aLayoutFile || !libWritten )
|
||||
return false;
|
||||
|
||||
if( components.empty() )
|
||||
return true;
|
||||
|
||||
// TODO: check stream integrity and return false as appropriate
|
||||
|
||||
// TODO: write out the board placement information
|
||||
// write out the board placement information
|
||||
std::list< IDF_COMP* >::const_iterator mbeg = components.begin();
|
||||
std::list< IDF_COMP* >::const_iterator mend = components.end();
|
||||
|
||||
fprintf( aLayoutFile, "\n.PLACEMENT\n" );
|
||||
|
||||
while( mbeg != mend )
|
||||
{
|
||||
if( !(*mbeg)->WritePlacement( aLayoutFile ) )
|
||||
return false;
|
||||
++mbeg;
|
||||
}
|
||||
|
||||
fprintf( aLayoutFile, ".END_PLACEMENT\n" );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_LIB::WriteFiles( FILE* aLayoutFile, FILE* aLibFile )
|
||||
{
|
||||
if( !aLayoutFile || !aLibFile )
|
||||
return false;
|
||||
|
||||
libWritten = false;
|
||||
regOutlines.clear();
|
||||
|
||||
if( !writeLib( aLibFile ) )
|
||||
return false;
|
||||
|
||||
return writeBrd( aLayoutFile );
|
||||
}
|
||||
|
||||
|
||||
bool IDF_LIB::RegisterOutline( const std::string aGeomPartString )
|
||||
{
|
||||
std::set< std::string >::const_iterator it = regOutlines.find( aGeomPartString );
|
||||
|
||||
if( it != regOutlines.end() )
|
||||
return true;
|
||||
|
||||
regOutlines.insert( aGeomPartString );
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_LIB::PlaceComponent( const wxString aComponentFile, const std::string aRefDes,
|
||||
double aXLoc, double aYLoc, double aZLoc,
|
||||
double aRotation, bool isOnTop )
|
||||
{
|
||||
IDF_COMP* comp = new IDF_COMP( this );
|
||||
|
||||
if( comp == NULL )
|
||||
{
|
||||
std::cerr << "IDF_LIB: *ERROR* could not allocate memory for a component\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
components.push_back( comp );
|
||||
|
||||
if( !comp->PlaceComponent( aComponentFile, aRefDes,
|
||||
aXLoc, aYLoc, aZLoc,
|
||||
aRotation, isOnTop ) )
|
||||
{
|
||||
std::cerr << "IDF_LIB: file does not exist (or is symlink):\n";
|
||||
std::cerr << " FILE: " << TO_UTF8( aComponentFile ) << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
IDF_COMP::IDF_COMP( IDF_LIB* aParent )
|
||||
{
|
||||
parent = aParent;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_COMP::PlaceComponent( const wxString aComponentFile, const std::string aRefDes,
|
||||
double aXLoc, double aYLoc, double aZLoc,
|
||||
double aRotation, bool isOnTop )
|
||||
{
|
||||
componentFile = aComponentFile;
|
||||
refdes = aRefDes;
|
||||
|
||||
if( refdes.empty() || !refdes.compare("~") || !refdes.compare("0") )
|
||||
refdes = "NOREFDES";
|
||||
|
||||
loc_x = aXLoc;
|
||||
loc_y = aYLoc;
|
||||
loc_z = aZLoc;
|
||||
rotation = aRotation;
|
||||
top = isOnTop;
|
||||
|
||||
if( !wxFileName::FileExists( aComponentFile ) )
|
||||
{
|
||||
wxFileName fn = aComponentFile;
|
||||
wxString fname = wxGetApp().FindLibraryPath( fn );
|
||||
|
||||
if( fname.IsEmpty() )
|
||||
return false;
|
||||
else
|
||||
componentFile = fname;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_COMP::WritePlacement( FILE* aLayoutFile )
|
||||
{
|
||||
if( aLayoutFile == NULL )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* WritePlacement() invoked with aLayoutFile = NULL\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( parent == NULL )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* no valid pointer \n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( componentFile.empty() )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *BUG* empty componentFile name in WritePlacement()\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( geometry.empty() && partno.empty() )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *BUG* geometry and partno strings are empty in WritePlacement()\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: monitor stream integrity and respond accordingly
|
||||
|
||||
// PLACEMENT, RECORD 2:
|
||||
fprintf( aLayoutFile, "\"%s\" \"%s\" \"%s\"\n",
|
||||
geometry.c_str(), partno.c_str(), refdes.c_str() );
|
||||
|
||||
// PLACEMENT, RECORD 3:
|
||||
if( rotation >= -MIN_ANG && rotation <= -MIN_ANG )
|
||||
{
|
||||
fprintf( aLayoutFile, "%.6f %.6f %.6f 0 %s ECAD\n",
|
||||
loc_x, loc_y, loc_z, top ? "TOP" : "BOTTOM" );
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf( aLayoutFile, "%.6f %.6f %.6f %.3f %s ECAD\n",
|
||||
loc_x, loc_y, loc_z, rotation, top ? "TOP" : "BOTTOM" );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_COMP::WriteLib( FILE* aLibFile )
|
||||
{
|
||||
// 1. parse the file for the .ELECTRICAL or .MECHANICAL section
|
||||
// and extract the Geometry and PartNumber strings
|
||||
// 2. Register the name; check if it already exists
|
||||
// 3. parse the rest of the file until .END_ELECTRICAL or
|
||||
// .END_MECHANICAL; validate that each entry conforms
|
||||
// to a valid outline
|
||||
// 4. write lines to library file
|
||||
//
|
||||
// NOTE on parsing (the order matters):
|
||||
// + store each line which begins with '#'
|
||||
// + strip blanks from both ends of the line
|
||||
// + drop each blank line
|
||||
// + the first non-blank non-comment line must be
|
||||
// .ELECTRICAL or .MECHANICAL (as per spec, case does not matter)
|
||||
// + the first non-blank line after RECORD 1 must be RECORD 2
|
||||
// + following RECORD 2, only blank lines, valid outline entries,
|
||||
// and .END_{MECHANICAL,ELECTRICAL} are allowed
|
||||
// + only a single outline may be specified; the order may be
|
||||
// CW or CCW.
|
||||
// + all valid lines are stored and written to the library file
|
||||
//
|
||||
// return: false if we do could not write model data; we may return
|
||||
// true even if we could not read an IDF file for some reason, provided
|
||||
// that the default model was written. In such a case, warnings will be
|
||||
// written to stderr.
|
||||
|
||||
if( aLibFile == NULL )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* WriteLib() invoked with aLibFile = NULL\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( parent == NULL )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* no valid pointer \n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( componentFile.empty() )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *BUG* empty componentFile name in WriteLib()\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
std::list< std::string > records;
|
||||
std::ifstream model;
|
||||
std::string fname = TO_UTF8( componentFile );
|
||||
|
||||
model.open( fname.c_str(), std::ios_base::in );
|
||||
|
||||
if( !model.is_open() )
|
||||
{
|
||||
std::cerr << "* IDF EXPORT: could not open file " << fname << "\n";
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
std::string entryType; // will be one of ELECTRICAL or MECHANICAL
|
||||
std::string endMark; // will be one of .END_ELECTRICAL or .END_MECHANICAL
|
||||
std::string iline; // the input line
|
||||
int state = 1;
|
||||
bool isComment; // true if a line just read in is a comment line
|
||||
bool isNewItem = false; // true if the outline is a previously unsaved IDF item
|
||||
|
||||
// some vars for parsing record 3
|
||||
int loopIdx = -1; // direction of points in outline (0=CW, 1=CCW, -1=no points yet)
|
||||
double firstX;
|
||||
double firstY;
|
||||
bool lineClosed = false; // true when outline has been closed; only one outline is permitted
|
||||
|
||||
while( state )
|
||||
{
|
||||
while( !FetchIDFLine( model, iline, isComment ) && model.good() );
|
||||
|
||||
if( !model.good() )
|
||||
{
|
||||
// this should not happen; we should at least
|
||||
// have encountered the .END_ statement;
|
||||
// however, we shall make a concession if the
|
||||
// last line is an .END_ statement which had
|
||||
// not been correctly terminated
|
||||
if( !endMark.empty() && !strncasecmp( iline.c_str(), endMark.c_str(), 15 ) )
|
||||
{
|
||||
std::cerr << "IDF EXPORT: *WARNING* IDF file is not properly terminated\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
records.push_back( endMark );
|
||||
break;
|
||||
}
|
||||
|
||||
std::cerr << "IDF EXPORT: *ERROR* faulty IDF file\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
switch( state )
|
||||
{
|
||||
case 1:
|
||||
// accept comment lines, .ELECTRICAL, or .MECHANICAL;
|
||||
// all others are simply ignored
|
||||
if( isComment )
|
||||
{
|
||||
records.push_back( iline );
|
||||
break;
|
||||
}
|
||||
|
||||
if( !strncasecmp( iline.c_str(), ".electrical", 11 ) )
|
||||
{
|
||||
entryType = ".ELECTRICAL";
|
||||
endMark = ".END_ELECTRICAL";
|
||||
records.push_back( entryType );
|
||||
state = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
if( !strncasecmp( iline.c_str(), ".mechanical", 11 ) )
|
||||
{
|
||||
entryType = ".MECHANICAL";
|
||||
endMark = ".END_MECHANICAL";
|
||||
records.push_back( entryType );
|
||||
state = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// accept only a RECORD 2 compliant line;
|
||||
// anything else constitutes a malformed IDF file
|
||||
if( isComment )
|
||||
{
|
||||
std::cerr << "IDF EXPORT: bad IDF file\n";
|
||||
std::cerr << "* LINE: " << iline << "\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
std::cerr << "* REASON: comment within "
|
||||
<< entryType << " section\n";
|
||||
model.close();
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
if( !parseRec2( iline, isNewItem ) )
|
||||
{
|
||||
std::cerr << "IDF EXPORT: bad IDF file\n";
|
||||
std::cerr << "* LINE: " << iline << "\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
std::cerr << "* REASON: expecting RECORD 2 of "
|
||||
<< entryType << " section\n";
|
||||
model.close();
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
if( isNewItem )
|
||||
{
|
||||
records.push_back( iline );
|
||||
state = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
model.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 3:
|
||||
// accept outline entries or end of section
|
||||
if( isComment )
|
||||
{
|
||||
std::cerr << "IDF EXPORT: bad IDF file\n";
|
||||
std::cerr << "* LINE: " << iline << "\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
std::cerr << "* REASON: comment within "
|
||||
<< entryType << " section\n";
|
||||
model.close();
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
if( !strncasecmp( iline.c_str(), endMark.c_str(), 15 ) )
|
||||
{
|
||||
records.push_back( endMark );
|
||||
state = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if( lineClosed )
|
||||
{
|
||||
// there should be no further points
|
||||
std::cerr << "IDF EXPORT: faulty IDF file\n";
|
||||
std::cerr << "* LINE: " << iline << "\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
std::cerr << "* REASON: more than 1 outline in "
|
||||
<< entryType << " section\n";
|
||||
model.close();
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
if( !parseRec3( iline, loopIdx, firstX, firstY, lineClosed ) )
|
||||
{
|
||||
std::cerr << "IDF EXPORT: unexpected line in IDF file\n";
|
||||
std::cerr << "* LINE: " << iline << "\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
model.close();
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
records.push_back( iline );
|
||||
break;
|
||||
|
||||
default:
|
||||
std::cerr << "IDF EXPORT: BUG in " << __FUNCTION__ << ": unexpected state\n";
|
||||
model.close();
|
||||
return substituteComponent( aLibFile );
|
||||
break;
|
||||
} // switch( state )
|
||||
} // while( state )
|
||||
|
||||
model.close();
|
||||
|
||||
if( !lineClosed )
|
||||
{
|
||||
std::cerr << "IDF EXPORT: component outline not closed\n";
|
||||
std::cerr << "* FILE: " << fname << "\n";
|
||||
return substituteComponent( aLibFile );
|
||||
}
|
||||
|
||||
std::list< std::string >::iterator lbeg = records.begin();
|
||||
std::list< std::string >::iterator lend = records.end();
|
||||
|
||||
// TODO: check stream integrity
|
||||
while( lbeg != lend )
|
||||
{
|
||||
fprintf( aLibFile, "%s\n", lbeg->c_str() );
|
||||
++lbeg;
|
||||
}
|
||||
fprintf( aLibFile, "\n" );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_COMP::substituteComponent( FILE* aLibFile )
|
||||
{
|
||||
// the component outline does not exist or could not be
|
||||
// read; substitute a placeholder
|
||||
|
||||
// TODO: check the stream integrity
|
||||
geometry = "NOGEOM";
|
||||
partno = "NOPART";
|
||||
|
||||
if( parent->RegisterOutline( "NOGEOM_NOPART" ) )
|
||||
return true;
|
||||
|
||||
fprintf( aLibFile, ".ELECTRICAL\n" );
|
||||
fprintf( aLibFile, "\"NOGEOM\" \"NOPART\" MM 5\n" );
|
||||
// TODO: for now we shall use a simple cylinder; a more intricate
|
||||
// and readily recognized feature (a stylistic X) would be of
|
||||
// much greater value.
|
||||
fprintf( aLibFile, "0 0 0 0\n" );
|
||||
fprintf( aLibFile, "0 2.5 0 360\n" );
|
||||
fprintf( aLibFile, ".END_ELECTRICAL\n\n" );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_COMP::parseRec2( const std::string aLine, bool& isNewItem )
|
||||
{
|
||||
// RECORD 2:
|
||||
// + "Geometry Name"
|
||||
// + "Part Number"
|
||||
// + MM or THOU
|
||||
// + height (float)
|
||||
|
||||
isNewItem = false;
|
||||
|
||||
int idx = 0;
|
||||
bool quoted = false;
|
||||
std::string entry;
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2 in model file (no Geometry Name entry)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
geometry = entry;
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2 in model file (no Part No. entry)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
partno = entry;
|
||||
|
||||
if( geometry.empty() && partno.empty() )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2 in model file\n";
|
||||
std::cerr << " Geometry Name and Part Number are both empty.\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2, missing FIELD 3\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( strcasecmp( "MM", entry.c_str() ) && strcasecmp( "THOU", entry.c_str() ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2, invalid FIELD 3 \""
|
||||
<< entry << "\"\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2, missing FIELD 4\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( quoted )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2, invalid FIELD 4 (quoted)\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
// ensure that we have a valid value
|
||||
double val;
|
||||
std::stringstream teststr;
|
||||
teststr << entry;
|
||||
|
||||
if( !( teststr >> val ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 2, invalid FIELD 4 (must be numeric)\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
teststr.str( "" );
|
||||
teststr << geometry << "_" << partno;
|
||||
isNewItem = parent->RegisterOutline( teststr.str() );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool IDF_COMP::parseRec3( const std::string aLine, int& aLoopIndex,
|
||||
double& aX, double& aY, bool& aClosed )
|
||||
{
|
||||
// RECORD 3:
|
||||
// + 0,1 (loop label)
|
||||
// + X coord (float)
|
||||
// + Y coord (float)
|
||||
// + included angle (0 for line, +ang for CCW, -ang for CW, +360 for circle)
|
||||
//
|
||||
// notes:
|
||||
// 1. first entry may not be a circle or arc
|
||||
// 2. it would be nice, but not essential, to ensure that the
|
||||
// winding is indeed as specified by the loop label
|
||||
//
|
||||
|
||||
double x, y, ang;
|
||||
bool ccw = false;
|
||||
bool quoted = false;
|
||||
int idx = 0;
|
||||
std::string entry;
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, no data\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( quoted )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 1 is quoted\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( entry.compare( "0" ) && entry.compare( "1" ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 1 is invalid (must be 0 or 1)\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !entry.compare( "0" ) )
|
||||
ccw = true;
|
||||
|
||||
if( aLoopIndex == 0 && !ccw )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, LOOP INDEX changed from 0 to 1\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( aLoopIndex == 1 && ccw )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, LOOP INDEX changed from 1 to 0\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 2 does not exist\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( quoted )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 2 is quoted\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
std::stringstream tstr;
|
||||
tstr.str( entry );
|
||||
|
||||
if( !(tstr >> x ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, invalid X value in FIELD 2\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 3 does not exist\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( quoted )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 3 is quoted\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
tstr.clear();
|
||||
tstr.str( entry );
|
||||
|
||||
if( !(tstr >> y ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, invalid Y value in FIELD 3\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !GetIDFString( aLine, entry, quoted, idx ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 4 does not exist\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( quoted )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, FIELD 4 is quoted\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
tstr.clear();
|
||||
tstr.str( entry );
|
||||
|
||||
if( !(tstr >> ang ) )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, invalid ANGLE value in FIELD 3\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( aLoopIndex == -1 )
|
||||
{
|
||||
// this is the first point; there are some special checks
|
||||
aLoopIndex = ccw ? 0 : 1;
|
||||
aX = x;
|
||||
aY = y;
|
||||
aClosed = false;
|
||||
|
||||
// ensure that the first point is not an arc specification
|
||||
if( ang < -MIN_ANG || ang > MIN_ANG )
|
||||
{
|
||||
std::cerr << "IDF_COMP: *ERROR* invalid RECORD 3, first point has non-zero angle\n";
|
||||
std::cerr << " LINE: " << aLine << "\n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// does this close the outline?
|
||||
if( ang < 0.0 ) ang = -ang;
|
||||
|
||||
ang -= 360.0;
|
||||
|
||||
if( ang > -MIN_ANG && ang < MIN_ANG )
|
||||
{
|
||||
// this is a circle; the loop is closed
|
||||
aClosed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = (aX - x) * (aX - x);
|
||||
y = (aY - y) * (aY - y) + x;
|
||||
|
||||
if( y <= 1e-6 )
|
||||
{
|
||||
// the points are close enough; the loop is closed
|
||||
aClosed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE:
|
||||
// 1. ideally we would ensure that there are no arcs with a radius of 0; this entails
|
||||
// actively calculating the last point as the previous entry could have been an instruction
|
||||
// to create an arc. This check is sacrificed in the interest of speed.
|
||||
// 2. a bad outline can be crafted by giving at least one valid segment and then introducing
|
||||
// a circle; such a condition is not checked for here in the interest of speed.
|
||||
// 3. a circle specified with an angle of -360 is invalid, but that condition is not
|
||||
// tested here.
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// fetch a line from the given input file and trim the ends
|
||||
static bool FetchIDFLine( std::ifstream& aModel, std::string& aLine, bool& isComment )
|
||||
{
|
||||
aLine = "";
|
||||
std::getline( aModel, aLine );
|
||||
|
||||
isComment = false;
|
||||
|
||||
// A comment begins with a '#' and must be the first character on the line
|
||||
if( aLine[0] == '#' )
|
||||
isComment = true;
|
||||
|
||||
|
||||
while( !aLine.empty() && isspace( *aLine.begin() ) )
|
||||
aLine.erase( aLine.begin() );
|
||||
|
||||
while( !aLine.empty() && isspace( *aLine.rbegin() ) )
|
||||
aLine.erase( --aLine.end() );
|
||||
|
||||
if( aLine.empty() )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// extract an IDF string and move the index to point to the character after the substring
|
||||
static bool GetIDFString( const std::string& aLine, std::string& aIDFString,
|
||||
bool& hasQuotes, int& aIndex )
|
||||
{
|
||||
// 1. drop all leading spaces
|
||||
// 2. if the first character is '"', read until the next '"',
|
||||
// otherwise read until the next space or EOL.
|
||||
|
||||
std::ostringstream ostr;
|
||||
|
||||
int len = aLine.length();
|
||||
int idx = aIndex;
|
||||
|
||||
if( idx < 0 || idx >= len )
|
||||
return false;
|
||||
|
||||
while( isspace( aLine[idx] ) && idx < len ) ++idx;
|
||||
|
||||
if( idx == len )
|
||||
{
|
||||
aIndex = idx;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( aLine[idx] == '"' )
|
||||
{
|
||||
hasQuotes = true;
|
||||
++idx;
|
||||
while( aLine[idx] != '"' && idx < len )
|
||||
ostr << aLine[idx++];
|
||||
|
||||
if( idx == len )
|
||||
{
|
||||
std::cerr << "GetIDFString(): *ERROR*: unterminated quote mark in line:\n";
|
||||
std::cerr << "LINE: " << aLine << "\n";
|
||||
aIndex = idx;
|
||||
return false;
|
||||
}
|
||||
|
||||
++idx;
|
||||
}
|
||||
else
|
||||
{
|
||||
hasQuotes = false;
|
||||
|
||||
while( !isspace( aLine[idx] ) && idx < len )
|
||||
ostr << aLine[idx++];
|
||||
|
||||
}
|
||||
|
||||
aIDFString = ostr.str();
|
||||
aIndex = idx;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
#define IDF_H
|
||||
|
||||
#include <wx/string.h>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.1415926535897932384626433832795028841
|
||||
|
@ -46,6 +48,7 @@ class IDF_POINT;
|
|||
class IDF_SEGMENT;
|
||||
class IDF_DRILL_DATA;
|
||||
class IDF_OUTLINE;
|
||||
class IDF_LIB;
|
||||
|
||||
namespace IDF3 {
|
||||
enum KEY_OWNER
|
||||
|
@ -88,6 +91,20 @@ void GetOutline( std::list<IDF_SEGMENT*>& aLines,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Struct IDF_POINT
|
||||
* represents a vector of three doubles; this may be represent
|
||||
* a point in space, or scaling, translation or rotation along
|
||||
* three axes.
|
||||
*/
|
||||
struct IDF_VECTOR
|
||||
{
|
||||
double x;
|
||||
double y;
|
||||
double z;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @Class IDF_POINT
|
||||
* represents a point
|
||||
|
@ -287,6 +304,147 @@ public:
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* @Class IDF_COMP
|
||||
* is responsible for parsing individual component files and rewriting relevant
|
||||
* data to a library file.
|
||||
*/
|
||||
class IDF_COMP
|
||||
{
|
||||
private:
|
||||
/// filename (full path) of the IDF component footprint
|
||||
wxString componentFile;
|
||||
|
||||
/// reference designator; a valid designator or NOREFDES
|
||||
std::string refdes;
|
||||
|
||||
/// overall translation of the part (component location + 3D offset)
|
||||
double loc_x;
|
||||
double loc_y;
|
||||
double loc_z;
|
||||
|
||||
/// overall rotation of the part (3D Z rotation + component rotation)
|
||||
double rotation;
|
||||
|
||||
/// true if the component is on the top of the board
|
||||
bool top;
|
||||
|
||||
/// geometry of the package; for example, HORIZ, VERT, "HORIZ 0.2 inch"
|
||||
std::string geometry;
|
||||
|
||||
/// package name or part number; for example "TO92" or "BC107"
|
||||
std::string partno;
|
||||
|
||||
/// the owning IDF_LIB instance
|
||||
IDF_LIB* parent;
|
||||
|
||||
/**
|
||||
* Function substituteComponent
|
||||
* places a substitute component footprint into the library file
|
||||
* and creates an appropriate entry for the PLACEMENT section
|
||||
* @param aLibFile is the library file to write to
|
||||
* @return bool: true if data was successfully written
|
||||
*/
|
||||
bool substituteComponent( FILE* aLibFile );
|
||||
|
||||
// parse RECORD 2; return TRUE if all is OK, otherwise FALSE
|
||||
bool parseRec2( const std::string aLine, bool& isNewItem );
|
||||
|
||||
// parse RECORD 3; return TRUE if all is OK, otherwise FALSE
|
||||
bool parseRec3( const std::string aLine, int& aLoopIndex,
|
||||
double& aX, double& aY, bool& aClosed );
|
||||
|
||||
public:
|
||||
IDF_COMP( IDF_LIB* aParent );
|
||||
|
||||
/**
|
||||
* Function PlaceComponent
|
||||
* specifies the parameters of an IDF component outline placed on the board
|
||||
* @param aComponentFile is the IDF component file to include
|
||||
* @param aRefDes is the component reference designator; an empty string,
|
||||
* '~' or '0' all default to "NOREFDES".
|
||||
* @param aLocation is the overall translation of the part (board location + 3D offset)
|
||||
* @param aRotation is the overall rotation of the part (component rotation + 3D Z rotation)
|
||||
* @return bool: true if the specified component file exists
|
||||
*/
|
||||
bool PlaceComponent( const wxString aComponentFile, const std::string aRefDes,
|
||||
double aXLoc, double aYLoc, double aZLoc,
|
||||
double aRotation, bool isOnTop );
|
||||
|
||||
/**
|
||||
* Function WriteLib
|
||||
* parses the model file to extract information needed by the
|
||||
* PLACEMENT section and writes data (if necessary) to the
|
||||
* library file
|
||||
* @param aLibFile is the library file to write to
|
||||
* @return bool: true if data was successfully written
|
||||
*/
|
||||
bool WriteLib( FILE* aLibFile );
|
||||
|
||||
/**
|
||||
* Function WritePlacement
|
||||
* write the .PLACEMENT data of the component to the IDF board @param aLayoutFile
|
||||
* @return bool: true if data was successfully written
|
||||
*/
|
||||
bool WritePlacement( FILE* aLayoutFile );
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @Class IDF_LIB
|
||||
* stores information on IDF models ( also has an inbuilt NOMODEL model )
|
||||
* and is responsible for writing the ELECTRICAL sections of the library file
|
||||
* (*.emp) and the PLACEMENT section of the board file.
|
||||
*/
|
||||
class IDF_LIB
|
||||
{
|
||||
/// a list of component outline names and a flag to indicate their save state
|
||||
std::set< std::string > regOutlines;
|
||||
std::list< IDF_COMP* > components;
|
||||
bool libWritten;
|
||||
|
||||
/**
|
||||
* Function writeLib
|
||||
* writes all current library information to the output file
|
||||
*/
|
||||
bool writeLib( FILE* aLibFile );
|
||||
|
||||
/**
|
||||
* Function writeBrd
|
||||
* write placement information to the board file
|
||||
*/
|
||||
bool writeBrd( FILE* aLayoutFile );
|
||||
|
||||
public:
|
||||
virtual ~IDF_LIB();
|
||||
|
||||
/**
|
||||
* Function WriteFiles
|
||||
* writes the library entries to the *.emp file (aLibFile) and the
|
||||
* .PLACEMENT section to the *.emn file (aLayoutFile)
|
||||
* @param aLayoutFile IDF board file
|
||||
* @param aLibFile IDF library file
|
||||
* @return bool: true if all data was written successfully
|
||||
*/
|
||||
bool WriteFiles( FILE* aLayoutFile, FILE* aLibFile );
|
||||
|
||||
/**
|
||||
* Function RegisterOutline
|
||||
* adds the given string to a list of current outline entities.
|
||||
* @param aGeomPartString is a concatenation of the IDF component's
|
||||
* geometry name and part name; this is used as a unique identifier
|
||||
* to prevent redundant entries in the library output.
|
||||
* @return bool: true if the string was already registered,
|
||||
* false if it is a new registration.
|
||||
*/
|
||||
bool RegisterOutline( const std::string aGeomPartString );
|
||||
|
||||
bool PlaceComponent( const wxString aComponentFile, const std::string aRefDes,
|
||||
double aXLoc, double aYLoc, double aZLoc,
|
||||
double aRotation, bool isOnTop );
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @Class IDF_BOARD
|
||||
* contains objects necessary for the maintenance of the IDF board and library files.
|
||||
|
@ -294,6 +452,7 @@ public:
|
|||
class IDF_BOARD
|
||||
{
|
||||
private:
|
||||
IDF_LIB IDFLib; ///< IDF library manager
|
||||
std::list<IDF_DRILL_DATA*> drills; ///< IDF drill data
|
||||
int outlineIndex; ///< next outline index to use
|
||||
bool useThou; ///< true if output is THOU
|
||||
|
@ -375,6 +534,10 @@ public:
|
|||
* represent the Reference Designator association with a slot.
|
||||
*/
|
||||
bool AddSlot( double aWidth, double aLength, double aOrientation, double aX, double aY );
|
||||
|
||||
bool PlaceComponent( const wxString aComponentFile, const std::string aRefDes,
|
||||
double aXLoc, double aYLoc, double aZLoc,
|
||||
double aRotation, bool isOnTop );
|
||||
};
|
||||
|
||||
|
||||
|
@ -422,33 +585,4 @@ public:
|
|||
bool Write( FILE* aLayoutFile );
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @Class IDF_LIB
|
||||
* stores information on IDF models ( also has an inbuilt NOMODEL model )
|
||||
* and is responsible for writing the ELECTRICAL sections of the library file
|
||||
* (*.emp) and the PLACEMENT section of the board file.
|
||||
*/
|
||||
class IDF_LIB
|
||||
{
|
||||
// TODO: IMPLEMENT
|
||||
|
||||
public:
|
||||
/**
|
||||
* Function WriteLib
|
||||
* writes all current library information to the output file
|
||||
*/
|
||||
bool WriteLib( FILE* aLibFile );
|
||||
|
||||
// write placement information to the board file
|
||||
bool WriteBrd( FILE* aLayoutFile );
|
||||
|
||||
// bool Finish( void )
|
||||
// {
|
||||
// TODO: Write out the library (*.emp) file
|
||||
// idf_lib.Write( lib_file );
|
||||
// TODO: fclose( lib_file );
|
||||
// }
|
||||
};
|
||||
|
||||
#endif // IDF_H
|
||||
|
|
|
@ -1050,10 +1050,10 @@ void PCB_IO::format( MODULE* aModule, int aNestLevel ) const
|
|||
// Save 3D info.
|
||||
for( S3D_MASTER* t3D = aModule->Models(); t3D; t3D = t3D->Next() )
|
||||
{
|
||||
if( !t3D->m_Shape3DName.IsEmpty() )
|
||||
if( !t3D->GetShape3DName().IsEmpty() )
|
||||
{
|
||||
m_out->Print( aNestLevel+1, "(model %s\n",
|
||||
m_out->Quotew( t3D->m_Shape3DName ).c_str() );
|
||||
m_out->Quotew( t3D->GetShape3DName() ).c_str() );
|
||||
|
||||
m_out->Print( aNestLevel+2, "(at (xyz %s %s %s))\n",
|
||||
Double2Str( t3D->m_MatPosition.x ).c_str(),
|
||||
|
|
|
@ -1643,7 +1643,7 @@ void LEGACY_PLUGIN::load3D( MODULE* aModule )
|
|||
{
|
||||
S3D_MASTER* t3D = aModule->Models();
|
||||
|
||||
if( !t3D->m_Shape3DName.IsEmpty() )
|
||||
if( !t3D->GetShape3DName().IsEmpty() )
|
||||
{
|
||||
S3D_MASTER* n3D = new S3D_MASTER( aModule );
|
||||
|
||||
|
@ -1659,7 +1659,7 @@ void LEGACY_PLUGIN::load3D( MODULE* aModule )
|
|||
{
|
||||
char buf[512];
|
||||
ReadDelimitedText( buf, line + SZ( "Na" ), sizeof(buf) );
|
||||
t3D->m_Shape3DName = FROM_UTF8( buf );
|
||||
t3D->SetShape3DName( FROM_UTF8( buf ) );
|
||||
}
|
||||
|
||||
else if( TESTLINE( "Sc" ) ) // Scale
|
||||
|
@ -3513,11 +3513,11 @@ void LEGACY_PLUGIN::SaveModule3D( const MODULE* me ) const
|
|||
{
|
||||
for( S3D_MASTER* t3D = me->Models(); t3D; t3D = t3D->Next() )
|
||||
{
|
||||
if( !t3D->m_Shape3DName.IsEmpty() )
|
||||
if( !t3D->GetShape3DName().IsEmpty() )
|
||||
{
|
||||
fprintf( m_fp, "$SHAPE3D\n" );
|
||||
|
||||
fprintf( m_fp, "Na %s\n", EscapedUTF8( t3D->m_Shape3DName ).c_str() );
|
||||
fprintf( m_fp, "Na %s\n", EscapedUTF8( t3D->GetShape3DName() ).c_str() );
|
||||
|
||||
fprintf(m_fp,
|
||||
#if defined(DEBUG)
|
||||
|
|
|
@ -205,7 +205,7 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
|
|||
|
||||
// IDF3
|
||||
AddMenuItem( submenuexport, ID_GEN_EXPORT_FILE_IDF3,
|
||||
_( "I&DFv3 Board Shape Export" ), _( "Basic export of board shape only IDFv3 format" ),
|
||||
_( "I&DFv3 Export" ), _( "IDFv3 board and component export" ),
|
||||
KiBitmap( export_xpm ) );
|
||||
|
||||
AddMenuItem( filesMenu, submenuexport,
|
||||
|
|
|
@ -263,7 +263,7 @@ S3D_MASTER* PCB_PARSER::parse3DModel() throw( PARSE_ERROR )
|
|||
std::auto_ptr< S3D_MASTER > n3D( new S3D_MASTER( NULL ) );
|
||||
|
||||
NeedSYMBOLorNUMBER();
|
||||
n3D->m_Shape3DName = FromUTF8();
|
||||
n3D->SetShape3DName( FromUTF8() );
|
||||
|
||||
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue