Posts tagged with 'Components'

Introduction

The plugin Component Analysis can be found under the grid "Analysis" respectively "Assembly".

Here you will find two tab pages available for performing the Component Analysis: "Component Distance Analysis" and "Component Placement Analysis". These single analysis functions are described below.

Component Distance Analysis

The "Component Distance Analysis" option allows you to check the distance between components and between components and the board outline. This analysis is important to ensure e.g. the manufacturability during the placement and soldering process.

In the first block (1) you can define the different check values:

  • "Outline to Outline": Min. needed distance between component bodies
  • "Pad to Outline": Min. needed distance between the copper pads of one component to the body of the neighbour components
  • "Pad to Pad": Min. needed distance between the copper pads of one component to the copper pads of the neighbour components
  • "Outline to Board Outline": Min. needed distance between component bodies and the board outline

Here you also have the possibility, to ignore unplaced components (by ignoring components with a ".comp_ignore' attribute).

In the second block (2), you can define "Special Distances acc. Property". That means, you can define the same set of rules as in (1) but with different values for sub groups of components. The sub groups are build by a given component property. Examples are:

  • if your design has a property with package groups per component, you can set different check values for e.g. SOTs or ICs
  • if your design has a property with detailed component descriptions, you can set different check values for e.g. ceramic capacitors or mosfets

The results of the analysis are displayed in the window on the bottom (3). You can also view the analysis results directly in the tool. Critical errors can also be marked for later use (e.g. in the 'Extended Design Report').

With the buttons on the top right side of the window you can export the previously defined settings so that you can reuse them for later analyses. Already saved settings can be imported via the "Import Settings" button. 

The last result can be saved and reloaded with the buttons on the lower left side (4). This stored result is also used in the 'Extended Design Report'.

Clicking on the question mark on the top right of the window opens the corresponding page of our online manual.


Following picture shows an example error of this analysis:

The copper pad of the X1-1 is too close the the component body of C36.

 

Component Placement Analysis

The "Component Placement Analysis" option allows you to check, if the MPN Package of a component fits the CAD Package.
A MPN Package (MPN = Material Part Number) is the real component outline of a part. This outline is often much smaller than the corresponding CAD package body. The MPN Package can also contain the contact surface of the pin. In this analysis, this contact surface of the pins is analyzed. You can define, where the contact surface has to be situated inside the copper pad.

A standard design has no MPN Package definitions included. EasyLogix offers the 'EasyLogix Part Library' (EPL) to add detailed part information like datasheets, MPN packages, 3D step files, ... to your design.

In the first block (1), you can define the different check values:

  • "Outer Distance": The minimum distance of the pins contact surface to the outer edge of the copper pad in % of the pad's width
  • "Inner Distance": The minimum distance of the pins contact surface to the inner edge of the copper pad in % of the pad's width
  • "Side Distance": The minimum distance of the pins contact surface to the side edges of the copper pad in % of the pad's height
  • "Center Distance": The minimum distance of the pins contact surface to all edges of the copper pad in % of the pad's min. size - only for pins that are located under its component body

In the second block (2), you can define filters to ignore unplaced components (by ignoring components with a ".comp_ignore' attribute) and components without MPN package definitions.

In the third block (3), you can define "Special Distances acc. Property". That means, you can define the same set of rules as in (1) but with different values for sub groups of components. The sub groups are build by a given component property. Examples are:

  • if your design has a property with package groups per component, you can set different check values for e.g. SOTs or ICs
  • if your design has a property with detailed component descriptions, you can set different check values for e.g. ceramic capacitors or mosfets

The results of the analysis are displayed in the window on the bottom (4). You can also view the analysis results directly in the tool. Critical errors can also be marked for later use (e.g. in the 'Extended Design Report').

With the buttons on the top right side of the window you can export the previously defined settings so that you can reuse them for later analyses. Already saved settings can be imported via the "Import Settings" button. 

The last result can be saved and reloaded with the buttons on the lower left side (5). This stored result is also used in the 'Extended Design Report'.

Clicking on the question mark on the top right of the window opens the corresponding page of our online manual.


Following picture shows an example error of this analysis:

The contact surface of the pin 2 of the MPN Package for D30 is not matching the "inner distance" rule. That means in this case, the pin's contact surface is partly outside the copper pad. A reason could be, that the choosen part (MPN) does not fit to the CAD data. Soldering issues and failures are likely.

 

OIB Server Manager

When you open the "SIPLACE OIB Connector" (in the 'Machine Export' menu) the first time, you have to first enter your OIB server settings by clicking on the gear button (1)


Following dialog will open:

In this server manager, you can organize multiple OIB servers. To create a new one, please press on the little green "+" button and enter a name.
Afterwards you'll have to specify the OIB server adress by entering an IP/Hostname + Port, or directly enter the 'net.tcp://...' adress (1).

When this is done, you'll have to specify two server directories by clicking on the small browse button (2):

  • "Component Main Path": This is the OIB directory, where your part library is located. Parts in this directory are only read, but never written or changed.
  • "Component User Path": This is the OIB directory, where parts, that do not exist in the main path yet, are created by PCB-Investigator. The user has to complete the information of those parts in the SIPLACE Software and can then move them to the main path later.

Click "Save" and close the dialog to preceeed.

Placement List Creator

To start, please select a server and click "Connect" (1).

With the "Placement List Creator" tab, you can create placement list elements for each component side on the OIB server.


To start, you have to do a few settings in block (2):

  • 'Current Step': Select the board step, for which placement lists should be created
  • 'Group Components by': Choose whether to use the internal 'Part Number' or any other Property in your CAD data to get the list of part numbers. These part numbers are the 'key' to search for parts on the OIB server.
  • 'Component Type Filter': You can filter components by the '.comp_mount_type' attribute, e.g. to get only SMT components

Always when you change settings in (2), you will have to 'Refresh' the list and 'Match Parts via OIB' again (3).

When the matching process is done, you will see all your filtered parts in the list (4), including an overlay of the matching OIB part definition on the selected server. Found OIB parts are centered on the CAD package center. Details of the found OIB part and the fitting state are listed on the bottom side (5).
The 'Status' column indicates, whether a OIB part was found or not, and if the found part fits onto the CAD package. The condition for fitting is, that the pin definition of the OIB part must at least partly overlap the CAD package pin.

If the found part does not fit, you have the possibility to shift its position or to rotate it until it fits (6). With the two buttons in this block on the right, you can open the property dialog of the CAD component or zoom to it.

If the OIB part has a polarity definition, this polarity marker is visualized in red. The fitting alorithm then also uses the polarity information, to recognize if the component is correctly rotated (CAD polarity pin is same as OIB polarity pin).

Example of the fitting process (6) (by rotating 90° clockwise):

=>

 

When clicking the 'Create Placement List via OIB' button (7), you are asked to select a folder on the OIB server and enter the name for the placement list(s) for top and/or bottom side. Afterwards, the placement lists are created via OIB. Missing parts, that where not found during the matching process, are automatically created in the 'Component User Path' (see 'OIB Server Manager'). Those created parts are dummy parts without any real outlines or pin definitions. Their information must be completed by the user in the SIPLACE Software afterwards. Components that have the ".comp_ignore" attribute are marked as 'omitted' in the placement list.

Here is a screenshot of the result in the SIPLACE Software:

Board Creator

After having created the placement list of the single board(s), you can create the panel data with the "Board Creator" tab.


To start, you have to select the panel step that should be created (1). It is also possible to create panels in panels (recursive), when the most outer panel is selected.

For the given panel, the included single board(s) is/are listed unter (2). Here an already existing placement list on the OIB server must be selected per board and side. If the placement lists where created before in this session with the "Placement List Creator", the information is already prefilled. If not, you can click the small browse button and select the right placement list.

In the block (3), there are different options available:

  • "Export Board Outline": if checked, the complex board outline of the CAD data is exported. This may need some time. If not checked, the bounding box is used
  • "Export Fiducials": if you want to export objects with ".pad_usage=gfiducial/lfiducial", please check this box and select a fiducial type from the OIB server by clicking on the little browse button
  • "Export Inkspots": if you want to export objects with ".board_mark=bbm" (Bad Board Marker), please check this box and select a fiducial type from the OIB server by clicking on the little browse button
  • "Requires trace information": This field on the OIB server can be set or not here
  • "Requires PCB barcode verification": This field on the OIB server can be set or not here
  • "Default processing orientation": 0/90/180/270° for Top or Bot (sets the corresponding fields on the OIB server)

In the block (4), you can choose which CAD layers should be exported and imported in OIB for this board per side. It is mainly thought for paste/mask layers.

When clicking the 'Create Board via OIB' button (5), you are asked to select a folder on the OIB server and enter the name for the board entry. Afterwards, the board is created via OIB.

Here is a screenshot of the result in the SIPLACE Software:

 

 

SIPLACE QD Exporter

With the "SIPLACE QD Exporter" tool, you can create '.qd' files including placement lists and board information for ASM machines.


To start, you have to do a few settings in block (1):

  • 'Current Step': Select the board or panel step, that should be exported
  • 'Group Components by': Choose whether to use the internal 'Part Number' or any other Property in your CAD data to get the list of part numbers. These part numbers are the 'key' to search for parts in SIPLACE.
  • 'Component Type Filter': You can filter components by the '.comp_mount_type' attribute, e.g. to get only SMT components

Always when you change settings in (1), you will have to click at 'Refresh' to update the list. In the list (2), you will see all packages and the corresponding parts for each step or sub-step of your selected (panel) step.

It is then important so select list entry by list entry to check the rotation correction. If a entry is selected, you'll see the package drawing on the right side. You have to rotate this package to be displayed in exactly the same way, as it is defined on the ASM machine ('make it ASM conform'). You can confirm this by checking the "User Confirmed" checkbox in the list's last column. The rotation can be done by using the buttons in (3). Here, the rotation can also be reset and with the two buttons in this block on the right, you can open the property dialog of the CAD component or zoom to it.

In the block (4), you can choose which CAD layers should be exported as gerber files next to the '.qd' file. These gerbers can then be also imported in SIPLACE. The mirroring/translation of the bottom gerber is already done in the gerber itself, so that you do not need to transform the layers in SIPLACE.

In the block (5), there are different options available:

  • "Export Fiducials": if you want to export objects with ".pad_usage=gfiducial/lfiducial", please check this box and enter the fiducial path/name that is defined in SIPLACE.
  • "PCB Height": here you can enter the height of the PCB in the given unit.
  • "Project name": this name of your project, will be exported also to the '.qd' file
  • "Export Top Side": if checked, you'll get a '.qd' file for the top side of your PCB
  • "Export Bottom Side": if checked, you'll get a '.qd' file for the bottom side of your PCB

When clicking the 'Export QD File(s)' button (6), you are asked to select a folder where the files are exported to.

 

Here are some screenshots of the result in the SIPLACE Software:

 

 

Component Report

The Component Report in PCB-Investigator is a useful tool to get a summary of all components used in the PCB. This can be very helpful to make sure that all required components are present on the board and to make sure that they are placed and wired correctly.

 

component_report

     1. The path of the currently loaded job is displayed here

     2. The window is for customizing temporary field contents of the layout.
      All items of the layout type "Custom" are listed here. The changes are
      only temporary.

     3. With this button you can choose your printer

     4. With this button you can see the print preview

     5. At "Layout Options" you can set the options for creating the layout.
      More about this in the following paragraph.

     6. The Last Button is for printing your Component Report

 

 

 

 

Layout Options


1. Tablepartitioning sets which attributes/properties of the CMP should be listed and which attribute/property should be used for coloring (Component with same attribute value get same color)

2. Layer options gives you the possibility to display different layers during printing

3. Drawing Options can be used to change the color or thickness if you like

4. Layout of the side is used to create your own page layout and can be extended as you wish.

Pagetype: Image or Table
  • Image => Used for the pages where the image of the component is visible and for the preview page.
  • Table => Used for the pages where only the table is visible (only important if 0 was previously selected for Row per Page)
Layout Item: Predefined layout items.
  • Layername: Layer name
  • Date: Date
  • Page_Number: Numbering of the page (related image and table pages have the same number here)
  • Custom: Custom value, which will be displayed on the main dialog as well

Custom Value: Will only be filled if the item was set to Custom before. Values filled here will be saved in the layout.

Alignment: Used to determine where on the page this element should be placed. Same alignments lead to the fact that these are arranged afterwards under each other.
  • Top_Left
  • Top_Center 
  • Top_Right
  • Bottom_Left
  • Bottom_Center
  • Bottom_Right

5. Page Options gives you the options in which paper format to print. In addition, you can select how many lines of the table should be displayed on one page (0 means that the table will have its own page). Furthermore you can sort the table by attributes and choose between predefined page layouts like:

  • HeaderFooter - Simple layout with a header and a footer.
  • TopLeft - All important information is placed at the top left of the preview image
  • Custom - Completely own layout

all three layouttypes are shown in the print preview at the end of this page.

Page Arrangement is Important only for Rows per page = 0 (table on extra page)

  • Image then Table: First all images of the colored components are listed, then all tables
  • First the image with the colored components and directly afterwards the corresponding table.

Custom Layout

Custom Layout

 

HeaderFooter Layout

HeaderFooter Layout

 

 

 

 

 

TopLeft Layout

HeaderFooter Layout

Analyse Interfaces

All Plugins have the following two Interfaces for direct calls from the outside.

///<summary
  /// Analysis interface for scripts and plugins.
 ///</summary

→ The Header from the first Interface.

public interface IPCBIAnalysis {
   ///<summary
  /// The name of this analysis to identify it with the settings.
  ///</summary
  string Name { get; }

///<summary
  /// The readable name of this analysis
  ///</summary
  string Title { get; }

///<summary
  /// The path to the results directory of this analysis relative to the job path
  ///</summary
  string ResultsFolderName { get; }

///<summary
  /// The preview icon for this analysis
  ///</summary
  Icon PreviewIcon { get; }

///<summary
  /// Set if the file preview should show if results are available
  ///</summary
 Set if the file preview should show if results are available

///<summary
  /// Create a instance of rules to define the default standard rules.
 ///</summary
 PCBI.Automation.Rules.RulesContainer GetStandardRules();
 // void AddToUpdateProgress(PCB_Investigator.PCBIWindows.PCBIWorkingDialog working, int minValue, int maxValue);
 // bool Execute(string ResultFilePath);

 
For more comfort there is the IPluginAnalysis, which provides even more functions:

public interface IPluginAnalysis: IPlugin, IPCBIAnalysis{

 ///<summary
   /// 
  ///</summary
  ///
void AddToUpdateProgress(PCB_Investigator.PCBIWindows.PCBIWorkingDialog working, int minValue, int maxValue);


bool Execute(IAnalysisParams analysisParams);
bool Execute(string resultFilePath); }

The script is allowed to increment

values between minValue and maxValue.