⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.h

📁 该软件为EDA行业所用
💻 H
字号:
typedef unsigned int   Uint;
typedef unsigned char  Uchar;

//LIA component define
typedef struct _alts{
	bool ieeeAlt;
	bool deMorganAlt;
} ALTS;
typedef struct _compHeader{
	CString sourceLibrary;
	CString compType;
	int		numPins;
	Uchar	numParts;
	CString composition;
	ALTS	alts;
	CString refDesPrefix;
} COMPHEADER;

typedef struct _compPin{
	CString pinDes;
	CString pinName;
	CString	strPartNum;
	int		partNum;
	Uint	symPinNum;
	Uchar	gateEq;
	Uchar 	pinEq;
	CString	pinType;
} COMPPIN,*PCOMPPIN;

	
typedef struct _attachedSymbol{
	int		partNum;
	Uchar	numparts;
	CString	strPartNum;
	CString altType;
	CString symbolName;
	CString symbolPathName;
	CString	symbolFileName;
	CString	tmpSymbolFileName;
} ATTACHEDSYMBOL,*PATTACHEDSYMBOL;

typedef struct _attachedPattern{
	Uchar	patternNum;
	CString	patternName;
	Uint	numPads;
} ATTACHEDPATTERN;


typedef struct _compDef{							//component definition
	ATTACHEDPATTERN attachedPattern;
	bool		isAttachedSymbol;
	bool		isCompPin;
	CString		deviceName;
	CString 	originalName;
	CString		allCompPinName;
	CString		allCompPinDes;
	COMPHEADER	compHeader;
	CArray		<COMPPIN,COMPPIN&> compPinCA;
	CArray		<ATTACHEDSYMBOL,ATTACHEDSYMBOL&> attachedSymbolCA;
	UINT		maxPadNum;
	CArray		<UINT,UINT&> padNumCA;
	CArray		<CString,CString&>	aliasComponentCA;
} COMPDEF;



//LIA symbol define
typedef struct _aliasSymbol {
	CString srcSymbolName;
	CString	desSymbolName;
	CString srcSymbolFileName;
	CString	desSymbolFileName;
} ALIASSYMBOL;

typedef struct _arc{
	float	startAngle;
	float	endAngle;
	float	sweepAngle;
	float	biAangle;
	float	angle[3];
	float	x[4];
	float	y[4];
	float	radius;
	float	xRadius,yRadius;//a -long axis b-short axis
	CString style;
} ARC;

typedef struct _attr{
	CString attrName;
	CString attrContent;
	float	pt[2];
	bool	isVisible;
	CString justify;
} ATTR;

typedef struct _line{
	float	x[2];
	float	y[2];
	CString style;
} LINE;

typedef struct _retangle {
	int coordinate[4];
	int x[2];
	int	y[2];
	int borderType;
	int borderColor;
	int fillColor;
	char select;
	char isFilled;
} RECTANGLE;
typedef struct _poly{
	//float	x[50];
	//float	y[50];
	CArray	<float,float&> xCA;
	CArray	<float,float&> yCA;
	char	numPoints;
} POLY;


typedef struct _pin{
	bool	isInvert;
	bool	isClock;
	char	pinTypeIndex;
	bool	dispPin;
	bool	dispPinName;
	bool	dispPinDes;
	char	location;
	char	pinDesAlign;
	char	pinNameAlign;
	char	pinTypeAlign;
	Uint	pinNum;
	int		partNum;
	bool	isFlipped;						//place flag of not above pinName
	float	x[2],y[2];
	Uint	rotation;
	Uint	pinLength;
	CString	pinDes;
	CString	pinName;
	CString	pinType;
	CString thisKeyWord;
} PIN,*PINDEFP;

typedef struct _homoPinName{
	int		numPins;
	CString	pinName;
} HOMOPINNAME,*HOMO;

typedef struct _IEEESYMBOL {
	float symbolNum;
	float x0;
	float y0;
	float size;
	float degree;
	float lineType;
	float color;
	float isSelected;
	float x[10],y[10];
} IEEESYMBOL, *IEEESYMBOLP;

typedef struct _signal{
	CString pinName;
	CString pinDes;
} SIGNAL;

typedef struct _text{
	CString	textContent;
	float	x,y;
	Uint 	rotation;
	CString	justify;
} TEXT;

typedef struct _hetero {
	CString		symbolName;
	Uchar		numParts;
	CString		strPartNums;
	//CArray		<int,int&>partNumCA;
} HETERO;

typedef struct _symbolDef{							//symbol definition
	float	xMin,yMin,xMax,yMax;
	float	x,y;
	UINT	numSymbols;
	Uint	numParts;
	Uint	numAliasSymbols;
	int		partNum;
	char	rotation;
	CString deviceName;								//if deviceName=="" don't creat this symbol
	CString	desc;
	CString originalName;
	CString	symbolName;
	CString symbolPathName;
	CString symbolFileName;
	CString	symbolListFileName;
	CString hetero;
	CString	thisKeyWord;
	CString symbolClass;
	CString manufacture;
	CArray	<PIN,PIN&> pinCA;
	CArray	<LINE,LINE&> lineCA;
	CArray	<ATTR,ATTR&> attrCA;
	CArray	<ARC,ARC&> arcCA;
	CArray	<SIGNAL,SIGNAL&> signalCA;
	CArray	<HETERO,HETERO&> heteroCA;
	CArray	<HOMOPINNAME,HOMOPINNAME&> homoPinNameCA;
	CArray	<CString,CString&>	aliasComponentCA;
	CArray	<RECTANGLE,RECTANGLE&> retangleCA;
	CArray	<TEXT,TEXT&> LableCA;
	CArray	<CString,CString&> polylineStrCA;
	CArray	<CString,CString&> IEEESymbolCA;
	CArray	<CString,CString&> BezierCA;
}SYMBOLDEF;

typedef struct _schDef {
	CString placedSymbolName;
	UINT numSymbols;
	UINT x,y;
} SCHDEF;
//Expediont Part definition


typedef struct _partDef{							//device definition	
	CString		desc;
	CString 	deviceName;	
	CString		refDesPrefix;
	CString		partFileName;
	CString		partFilePath;
	CString		partName;
	CString		partFileBuf;
	CString		partition;
	Uint		numPartFiles;
	UINT		numPads;
	CString		attachedSymbolName;					//symbolName or HeteroName(max234_1,max234_2)
	CString		attachedPatternName;				//if attachedPatternName="" don't creat this part
	Uint		numHeteros;	
	CArray		<CString,CString&>	heteroNameCA;	//symbolName of different heteros
	CArray		<COMPPIN,COMPPIN&>	supplyCA;
	CArray		<COMPPIN,COMPPIN&>	powerCA;
	CArray		<CString,CString&>	NCPinDesCA;
	CArray		<CString,CString&>	pkgTypeCA;
} PARTDEF;
	

//Homonym pinName


//SAMEPINNAME

/* Note:
part definition refer to the definition of part in Expedtion

compDef refer to the definition of component in PROTEL DXP

In protel number of parts equal number of heteros

In Expedition number of parts don't equal number of heteros

Heteros and parts are different in symbol,if parts have same

symbol,they are parts,if parts in Protel have different symbol

thay are heteros.

*/	



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -