📄 readme.txt
字号:
技术说明:
对于多个part的情况:part所对应的symbol
1. symbolname 相同
2. pakageType 相同
3. 每个symbol上对应的pinNumber pinName相同
4. pinDes =p1Des;p2Des...
5. parts=N(N>=1)
6. no hetero
而对于hetero而言
1. symbolnName is different
2. pakageType is same one
3. pinName according to same pinNum on different symbol is different
4. hetero=symName1;symName2....
5. parts=1
6. hetero=N(N>=1)
compN(n) 有多少个hetero 就业多少个compN
pinAttr stuct include: (attribut of pin with cell pin order)
partNum
symPinNum
pinName
pinDes
pinType;
symAttr struct include:(attribte of pin with symbol pin order)
numParts(heteros(0 - n-1) and parts(1-n))
heteroFlag(heteros from 0 to n-1)
partNum
symbolName
dxFileName
heteroFileName
Hetero;
pinDes[0]//keep string of pindestionation 1,3,5
========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : LIB2DXD
========================================================================
AppWizard has created this LIB2DXD application for you. This application
not only demonstrates the basics of using the Microsoft Foundation classes
but is also a starting point for writing your application.
This file contains a summary of what you will find in each of the files that
make up your LIB2DXD application.
LIB2DXD.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
LIB2DXD.h
This is the main header file for the application. It includes other
project specific headers (including Resource.h) and declares the
CLIB2DXDApp application class.
LIB2DXD.cpp
This is the main application source file that contains the application
class CLIB2DXDApp.
LIB2DXD.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
LIB2DXD.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\LIB2DXD.ico
This is an icon file, which is used as the application's icon. This
icon is included by the main resource file LIB2DXD.rc.
res\LIB2DXD.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
/////////////////////////////////////////////////////////////////////////////
AppWizard creates one dialog class:
LIB2DXDDlg.h, LIB2DXDDlg.cpp - the dialog
These files contain your CLIB2DXDDlg class. This class defines
the behavior of your application's main dialog. The dialog's
template is in LIB2DXD.rc, which can be edited in Microsoft
Visual C++.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named LIB2DXD.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
If your application uses MFC in a shared DLL, and your application is
in a language other than the operating system's current language, you
will need to copy the corresponding localized resources MFC42XXX.DLL
from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
For example, MFC42DEU.DLL contains resources translated to German.) If you
don't do this, some of the UI elements of your application will remain in the
language of the operating system.
/////////////////////////////////////////////////////////////////////////////
////////////////////////tmp///////////////////////////////////
switch(layer3)
{
case 2211: //pinNum
strGet(Word,RBRACKET);
break;
case 2: //pt
strGet(Word,SPACE);
strGet(Word,RBRACKET);
break;
case 3: //rotation
strGet(Word,RBRACKET);
break;
case 4: //isFilpped
strGet(Word,RBRACKET);
break;
case 2215: //pinLength
strGet(Word,RBRACKET);
break;
case 2216: //pinDisplay
while(BracketCnt>=4) //while-6 ****
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
strGet(Word,RBRACKET);
}
else
{
BufOffset++;
BracketCnt--;
}
} //while-6 end ****
break;
case 2217: //pinDes
while(BracketCnt>=4) //while-7 start ****
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
/////////////////////////
while(BracketCnt>=5)//while-8 start *****
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
strGet(Word,SPACE);
layer4=DXPWordAnalyze(Word);
switch (layer4)
{
case 0: //skip
strGet(Word,34);
break;
case 2: //pt
strGet(Word,SPACE);
strGet(Word,RBRACKET);
BufOffset=SeekBracket(BufOffset);
BracketCnt--;
BufOffset++;
strGet(Word,34); //pinDestination
break;
case 3: //rotation
strGet(Word,RBRACKET);
break;
}
}
else
{
BufOffset++;
BracketCnt--;
}
} //while-8 end *****
/////////////////////////
}
else
{
BufOffset++;
BracketCnt--;
}
} //while-7 end ****
break;
case 2218: //pinName
while(BracketCnt>=4) //while-9 start ****
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
/////////////////////////
while(BracketCnt>=5)//while-10 start *****
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
strGet(Word,SPACE);
layer4=DXPWordAnalyze(Word);
switch (layer4)
{
case 0: //skip
strGet(Word,34);
break;
case 2: //pt
strGet(Word,SPACE);
strGet(Word,RBRACKET);
BufOffset=SeekBracket(BufOffset)+1;
BracketCnt--;
strGet(Word,34); //pinDestination
break;
case 3: //rotation
strGet(Word,RBRACKET);
break;
}
}
else
{
BufOffset++;
BracketCnt--;
}
} //while-10 end *****
/////////////////////////
}
else
{
BufOffset++;
BracketCnt--;
}
} //while-9 end ****
break; //case 2218 end
} //while-5 end ***
//////////////////////////////////tmp2//////////////////////////
switch(layer2) //switch-2 start
{
case 2210: //pin
while(BracketCnt>=3)//get pin line attr etc.while-5 start ***
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
strGet(Word,SPACE);
layer3=DXPWordAnalyze(Word);
}
else
{
BufOffset++;
BracketCnt--;
}
} //while-4 end **
break; //case 2210 end
case 2220: //line
i=0;
while(BracketCnt>=3)//get pin line attr etc.
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
strGet(Word,SPACE);
layer3=DXPWordAnalyze(Word);
switch(layer3)
{
case 2: //pt
strGet(Word,SPACE);
x[i]=atof(Word);
strGet(Word,RBRACKET);
y[i]=atof(Word);
i++;
break;
case 2221: //line style
strGet(Word,RBRACKET);
break;
}
}
else
{
BufOffset++;
BracketCnt--;
}
}
break;
case 2230: //attr
strGet(AttributeClass,34);
strGet(Attribute,34); //get attribute of SubClass
while(BracketCnt>=3)
{
BufOffset=SeekBracket(BufOffset);
if (*BufOffset==40)
{
BufOffset++;
BracketCnt++;
strGet(Word,SPACE);
layer4=DXPWordAnalyze(Word);
switch (layer4)
{
case 0: //skip
strGet(Word,34);
break;
case 2: //pt
strGet(Word,SPACE);
strGet(Word,RBRACKET);
break;
case 5: //rotation
strGet(Word,RBRACKET);
break;
}
}
else
{
BufOffset++;
BracketCnt--;
} //if (*BufOffset==40)
} //while(BracketCnt>=3)
break; // case 2230: //attr
} // switch(layer2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -