Centroid File Kicad



KiCad supports STEP file integration and can export board and component models into an integrated STEP file. KiCad uses a few temporary file formats internally. The files it creates with these extensions (marked above with '. ' ) can be excluded from version control software since they can be automatically regenerated from the source files. The footprint anchor (also called component origin) is used by automated Pick and Place (PNP) machines for locating and placing SMD components on a PCB. For most standard components, the anchor should generally be located on the centroid of the component body. In the KiCad footprint editor, the footprint anchor is always located at the origin (0, 0). This guide’s aim has been to describe the procedure for generating Gerber files from KiCad as simply and completely as possible. If you still find yourself unclear on any part of the process, please do not hesitate to contact a member of the Bittele sales team by sending an email to sales@7pcb.com, or calling our Toronto office at 1-416-800.

Centroid file kicad image
  1. KiCad PCB EDA Suite Public Member Functions Protected Attributes Private Attributes List of all members. CXYPLANE Class Reference. Mcentroid OBJECT3DTYPE mobjtype. Definition at line 33 of file cplane.cpp.
  2. Create a folder somewhere convenient called “KiCAD libraries” In the web tool click “Build Library Component”; save the file. In most modern browsers this will end up in the downloads folder: the file should be called: LDO-TL1963-TO263-5.lib. Move this file to your KiCad libraries folder you created and rename the file mySymbols.lib.

What is KiCad?

KiCad is a free, easy to download software that is used for electronic design automation (EDA) and computer aided design (CAD). While using this program, PCB design schematics can be realized from their electrical circuits. Within, there are tools that allow the creation of a bill of materials (BOM), artwork, 3D view of the PCB + components and gerber files. This documents purpose will be to guide Bittele’s clients through the step by step process specifically for generating the gerber files using KiCad. Similarly, a guide for exporting gerbers using another commonly used program (Eagle) can be found here.

What are Gerber files?

Centroid file kicad toolGerber files are the artwork of the layers that will be used to construct the board once it’s being fabricated. The industry standard file type used for manufacturing and assembling PCB’s are gerber file types. Therefore, they are easily recognized and processed by our manufacturing equipment.

Generating Gerber Files

This guide assumes that you have finished designing your PCB within KiCad and are ready to export the gerber files.
1) Select the ‘Plot’ button (located next to the printer icon).
This will open the plot window.
The image above shows the many different layers that are used in this example project. In general, there are only 10 layers that are required for PCB fabrication and assembly (paste layers not required for fabrication only):
  • Top Copper (Top) + Top Soldermask (F.Mask) + Top Silkscreen (F.SilkS) + Top Paste (F.Paste)
  • Bottom Copper (Bottom) + Bottom Soldermask (B.Mask) + Bottom Silkscreen (B.SilkS) + Bottom Paste (B.Paste)
  • Board outline (Edge.Cuts)
  • Drill file (not shown in image above)
2) Make sure the Plot format is set to ‘Gerber’ and all the aforementioned layers have been selected. Next, you will click on the ‘Generate Drill File’ button. You will be using the default values here. Click on ‘Drill File’ or press enter to generate the drill file (see image below):
3) Under the messages window will show where the drill files have now been generated. Click on the close button to return to the previous window. Click on ‘Plot’ (beside Generate Drill File). The gerber files for the layers will be generated (shown once again under the messages window), then click ‘Close’.
4) Once your gerber files have been generated, they can be reviewed to catch any potential errors before being sent to us for a PCB fabrication quote. Return to the main KiCad project window and click on the GerbView – Gerber viewer button (see image below):
5) On the window that pops up, click ‘File’ > ‘Load Gerber File’.
6) Select all of the layers shown and click ‘Open’.
7) In the same manner, click on ‘File’ > ‘Load EXCELLON Drill File’.
8) Select the drill file(s) and click ‘Open’.
Notice here that 2 drill files have been created. The first represents ‘plated drill holes’ while the second represents the ‘non-plated drill holes’. This will lead us to seeing 11 files instead of 10 files later.
9) Once all of your layers have been imported into GerbView, you can perform all your final checks (you can view each layer one by one and so on). Once you are satisfied that your design is correct, you will be ready to quote and order your boards.
10) Navigate to the directory on your computer where your KiCad project resides. Select and zip the following 11 files:
A list explaining each type of file can be seen below:
  • *.drl - Drill file
  • *.gbs - Gerber Bottom Soldermask
  • *.gbp - Gerber Bottom Paste
  • *.gbo - Gerber Bottom Silkscreen (Overlay)
  • *.gbl - Gerber Bottom Layer
  • *.Edge.Cuts.gm1 - Board Outline (Gerber Mechanical 1)
  • *.gts - Gerber Top Soldermask
  • *.gtp - Gerber Top Paste
  • *.gto - Gerber Top Silkscreen (Overlay)
  • *.drl - Drill file
  • *.gtl - Gerber Top Layer
These are all the production files that we require in order to produce your quote and fabricate your boards. We will then process the quote once the order has been made to have the boards fabricated in our facilities in China.
This guide’s aim has been to describe the procedure for generating Gerber files from KiCad as simply and completely as possible. If you still find yourself unclear on any part of the process, please do not hesitate to contact a member of the Bittele sales team by sending an email to sales@7pcb.com, or calling our Toronto office at 1-416-800-7540. We are happy to help with any of your queries.
KicadFileRelated Articles:

Search articles:


#include <cobject.h>

Public Member Functions

COBJECT (OBJECT3D_TYPE aObjType)
const void SetBoardItem (BOARD_ITEM *aBoardItem)
BOARD_ITEM * GetBoardItem () const
void SetMaterial (const CMATERIAL *aMaterial)
const CMATERIAL * GetMaterial () const
float GetModelTransparency () const
void SetModelTransparency (float aModelTransparency)
virtual SFVEC3FGetDiffuseColor (const HITINFO &aHitInfo) const =0
virtual ~COBJECT ()
virtual bool Intersects (const CBBOX &aBBox) const =0
Function Intersects. More...
virtual bool Intersect (const RAY &aRay, HITINFO &aHitInfo) const =0
Functions Intersect. More...
virtual bool IntersectP (const RAY &aRay, float aMaxDistance) const =0
Functions Intersect for shadow test. More...
const CBBOX & GetBBox () const
const SFVEC3F & GetCentroid () const

Protected Attributes

CBBOXm_bbox
SFVEC3Fm_centroid
OBJECT3D_TYPEm_obj_type
const CMATERIAL * m_material
BOARD_ITEM * m_boardItem
float m_modelTransparency

Detailed Description

Centroid file kicad tool

Definition at line 51 of file cobject.h.

Constructor & Destructor Documentation

COBJECT()

Definition at line 39 of file cobject.cpp.

41m_obj_type = aObjType;
42COBJECT3D_STATS::Instance().AddOne( aObjType );
44m_modelTransparency = 0.0f;
46 }
OBJECT3D_TYPE m_obj_type
BOARD_ITEM * m_boardItem
const CMATERIAL * m_material
void AddOne(OBJECT3D_TYPE aObjType)
float m_modelTransparency
static const CBLINN_PHONG_MATERIAL s_defaultMaterial
static COBJECT3D_STATS & Instance()

References COBJECT3D_STATS::AddOne(), COBJECT3D_STATS::Instance(), m_boardItem, m_material, m_modelTransparency, m_obj_type, and s_defaultMaterial.

~COBJECT()

Definition at line 84 of file cobject.h.

Member Function Documentation

GetBBox()

Definition at line 111 of file cobject.h.

CBBOX m_bbox

References m_bbox.

Referenced by CGENERICCONTAINER::Add(), and CBVH_PBRT::Intersect().

GetBoardItem()

Definition at line 70 of file cobject.h.

BOARD_ITEM * m_boardItem

References m_boardItem.

Referenced by C3D_RENDER_RAYTRACING::IntersectBoardItem().

GetCentroid()

const SFVEC3F& COBJECT::GetCentroid () const
inline

Definition at line 113 of file cobject.h.

SFVEC3F m_centroid

References m_centroid.

GetDiffuseColor()

virtual SFVEC3F COBJECT::GetDiffuseColor (const HITINFO & aHitInfo) const
pure virtual

Implemented in CTRIANGLE, CXYPLANE, CVCYLINDER, CROUNDSEG, CLAYERITEM, and CDUMMYBLOCK.

Referenced by C3D_RENDER_RAYTRACING::shadeHit().

GetMaterial()

const CMATERIAL* COBJECT::GetMaterial () const
inline

Definition at line 78 of file cobject.h.

const CMATERIAL * m_material

References m_material.

Referenced by CBVH_PBRT::IntersectP(), and C3D_RENDER_RAYTRACING::shadeHit().

GetModelTransparency()

float COBJECT::GetModelTransparency () const
inline

Definition at line 79 of file cobject.h.

float m_modelTransparency

References m_modelTransparency.

Referenced by C3D_RENDER_RAYTRACING::shadeHit().

Intersect()

virtual bool COBJECT::Intersect (const RAY & aRay,
HITINFO & aHitInfo
) const
pure virtual

Functions Intersect.

Intersect

Parameters
aRay
aHitInfo
Returns
true if the aRay intersects the object

Implemented in CTRIANGLE, CXYPLANE, CVCYLINDER, CROUNDSEG, CLAYERITEM, and CDUMMYBLOCK.

Referenced by CCONTAINER::Intersect(), CBVH_PBRT::Intersect(), and C3D_RENDER_RAYTRACING::render_preview().

IntersectP()

virtual bool COBJECT::IntersectP (const RAY & aRay,
float aMaxDistance
) const
pure virtual

Functions Intersect for shadow test.

Intersect

Parameters
aRay
aMaxDistance- max distance of the test
Returns
true if the aRay intersects the object

Implemented in CTRIANGLE, CXYPLANE, CVCYLINDER, CROUNDSEG, CLAYERITEM, and CDUMMYBLOCK.

Referenced by CCONTAINER::IntersectP(), and CBVH_PBRT::IntersectP().

Intersects()

virtual bool COBJECT::Intersects (const CBBOX & aBBox) const
pure virtual

Function Intersects.

Intersects - a.Intersects(b) ⇔ !a.Disjoint(b) ⇔ !(a ∩ b = ∅) It intersects if the result intersection is not null

Parameters
aBBox
Returns

Implemented in CTRIANGLE, CXYPLANE, CVCYLINDER, CROUNDSEG, CLAYERITEM, and CDUMMYBLOCK.

SetBoardItem()

const void COBJECT::SetBoardItem (BOARD_ITEM * aBoardItem)
inline

Definition at line 69 of file cobject.h.

BOARD_ITEM * m_boardItem

References m_boardItem.

Referenced by C3D_RENDER_RAYTRACING::add_3D_models().

SetMaterial()

void COBJECT::SetMaterial (const CMATERIAL * aMaterial)
inline

Definition at line 72 of file cobject.h.

74m_material = aMaterial;
75m_modelTransparency = aMaterial->GetTransparency(); // Default transparency is from material

Centroid File Kicad Extension

const CMATERIAL * m_material
float m_modelTransparency
float GetTransparency() const

References CMATERIAL::GetTransparency(), m_material, and m_modelTransparency.

Referenced by C3D_RENDER_RAYTRACING::add_3D_models(), C3D_RENDER_RAYTRACING::create_3d_object_from(), C3D_RENDER_RAYTRACING::createItemsFromContainer(), C3D_RENDER_RAYTRACING::insert3DPadHole(), C3D_RENDER_RAYTRACING::insert3DViaHole(), and C3D_RENDER_RAYTRACING::Reload().

SetModelTransparency()

void COBJECT::SetModelTransparency (float aModelTransparency)
inline

Definition at line 80 of file cobject.h.

float m_modelTransparency

References m_modelTransparency.

Referenced by C3D_RENDER_RAYTRACING::add_3D_models().

Member Data Documentation

m_bbox

Definition at line 54 of file cobject.h.

Referenced by CDUMMYBLOCK::CDUMMYBLOCK(), CLAYERITEM::CLAYERITEM(), CROUNDSEG::CROUNDSEG(), CVCYLINDER::CVCYLINDER(), CXYPLANE::CXYPLANE(), GetBBox(), CDUMMYBLOCK::Intersect(), CLAYERITEM::Intersect(), CROUNDSEG::Intersect(), CVCYLINDER::Intersect(), CDUMMYBLOCK::IntersectP(), CLAYERITEM::IntersectP(), CROUNDSEG::IntersectP(), CVCYLINDER::IntersectP(), CDUMMYBLOCK::Intersects(), CLAYERITEM::Intersects(), CROUNDSEG::Intersects(), CVCYLINDER::Intersects(), CXYPLANE::Intersects(), CTRIANGLE::Intersects(), and CTRIANGLE::pre_calc_const().

Centroid File Kicad

m_boardItem

Centroid File Kicad File

Definition at line 59 of file cobject.h.

Centroid File Kicad Tutorial

Referenced by COBJECT(), GetBoardItem(), and SetBoardItem().

m_centroid

Definition at line 55 of file cobject.h.

Referenced by CDUMMYBLOCK::CDUMMYBLOCK(), CLAYERITEM::CLAYERITEM(), CROUNDSEG::CROUNDSEG(), CVCYLINDER::CVCYLINDER(), CXYPLANE::CXYPLANE(), GetCentroid(), and CTRIANGLE::pre_calc_const().

m_material

Definition at line 57 of file cobject.h.

Referenced by COBJECT(), GetMaterial(), CDUMMYBLOCK::Intersect(), CLAYERITEM::Intersect(), CROUNDSEG::Intersect(), CVCYLINDER::Intersect(), CXYPLANE::Intersect(), CTRIANGLE::Intersect(), and SetMaterial().

m_modelTransparency

Definition at line 63 of file cobject.h.

Referenced by COBJECT(), GetModelTransparency(), SetMaterial(), and SetModelTransparency().

m_obj_type

Definition at line 56 of file cobject.h.

Referenced by COBJECT().

The documentation for this class was generated from the following files: