view pads2gpcb/struct.h @ 114:f3e81535819b

TSSOP14_MNF.fp: pads need to rectangular fingers, not oval
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 12 Jun 2020 03:21:37 +0000
parents a7f0e9bb3fb7
children
line wrap: on
line source

struct pad_shape_info {
	int	defined;
	int	valid;
	int	rounded;
	int	elongated;
	long	short_dim;
	long	long_dim;
	int	angle;
};

struct coord_pair {
	long	x;
	long	y;
};

struct footprint_pad {
	struct	coord_pair end1;
	struct	coord_pair end2;
	long	thickness;
	long	clearance;
	long	mask;
	struct	pad_shape_info shape;
};

struct element_line {
	struct	coord_pair end1;
	struct	coord_pair end2;
	long	thickness;
};

struct element_arc {
	struct	coord_pair centre;
	long	width;
	long	height;
	int	start_angle;
	int	delta_angle;
	long	thickness;
};

struct footprint_body {
	int	src_units;
	int	npins;
	struct	footprint_pad *pins;
	struct	pad_shape_info default_pad;
	long	mark_x;
	long	mark_y;
	long	refdes_x;
	long	refdes_y;
	int	refdes_dir;
	int	refdes_scale;
	struct	element_line *silk_lines;
	struct	element_arc *silk_arcs;
	int	num_silk_lines;
	int	num_silk_arcs;
};

struct part_decal {
	char	*name;
	struct	footprint_body *body;
	struct	part_decal *next;
};

#define	MAX_DECALS_PER_PART_TYPE	16

struct part_type {
	char	*name;
	int	ndecals;
	struct	part_decal *decals[MAX_DECALS_PER_PART_TYPE];
	int	num_alpha_pins;
	char	**alpha_pins;
	struct	part_type *next;
};

struct part_instance {
	char	*name;
	char	*newname;
	struct	part_type *type;
	struct	part_decal *decal;
	long	mark_x;
	long	mark_y;
	int	ori;
	int	onbottom;
	struct	footprint_body *body;
	struct	part_instance *next;
};