FunTest - User Defined Highlighting For Components And Nets In CAMCAD

Discussion created by chris_czernel on Sep 14, 2009

FunTest - Functional Test Highlighting For Components And Nets With CAMCAD


I wrote this Visual Basic 6 utility in 2005 at the request of a customer looking to highlight components and nets relative to functional test of PCB assemblies. The customer explained to me that the output from the functional test system was something like "Step 2 Failed". However, there was no indication as to what component(s) and net(s) were exercised in the functional test. So what the customer asked for was the ability to setup a simple configuration file for their test engineers that could be used as the basis for highlighting components and nets in CAMCAD related to specific functional tests.  In simple terms, the setup file was outlined to be something like this:


FunctionalTestStep1 | C1, C2, C3 | Red

FunctionalTestStep1 | $N123, $N567 | Yellow

FunctionalTestStep2 | U1, R12 | Red


So selecting the FunctionalTestStep1 entry would cause three components to be highlighted in red and two nets to be highlighted in yellow. Selecting FunctionalTestStep2 would cause two components to be highlighted in red.


After some feedback, the functional steps were subdivided into procedures. So functional test step 1 could be broken down into 2 or more procedures, with each procedure highlighting different components or nets. The idea was the first procedure highlighted all the components and nets directly used in the functional test. The subsequent procedures could be setup to highlight just a specific few components or nets within the larger set (to identify the most probable parts that historically failed that test step), or are parts to check after the primary parts are verified.  There is also a function that reviews the components and nets in the setup file and compares them to the data in CAMCAD, so that it's easy to spot places where the setup file lists components or nets that do not exist in the layout file.


ScreenHunter_01 Sep. 14 11.48.gif

(click picture to enlarge)


This code is being offered to the Community primarily as an example of how to create a custom application which does specific component and net highlighting in CAMCAD.  The original purpose was targeted towards functional test step visualization however the code is quite generic and could be used in a variety of ways.  Note - I am not looking to add to or modify this tool, I am just providing it to the Community base as-is, as an example of what CAMCAD automation can do.


The setup file is called funtest.txt. Inside the file are instructions for creating data lines. Those instructions are also copied below.  Note - the example setup file works with the CAMCAD sample layout called pads.asc, distributed with CAMCAD in the Samples\PADS directory.



; Funtest Input File, funtest.txt
; This file is the input file for FunTest. The
; configuration of data lines must follow these
; rules:
; 1) Comment character is a semicolon
; 2) Component data lines follow the format
; 3) Net data lines follow the format
;  where
;    Step = The functional test step
;    Procedure = Each unique procedure is displayed in the
;                procedure list
;    R = The Red value for the highlight, 0-255
;    G = The Green value for the highlight, 0-255
;    B = The Blue value for the highlight, 0 - 255
;    Component / Net = Identifies the type of data line to FunTest
;    Refdes.csv / Nets.csv = A comma delimited list of component reference
;                            designators or netnames.
; 4) All fields separated with a pipe character (|). The last field
;    by itself is a comma delimited list, either of nets or components


; Usage
; When a step is selected, the procedure list is populated with
; each unique procedure. When a procedure is selected in the
; procedure list, each data line matching that procedure is
; executed. This allows one or many data lines to be defined
; for any unique procedure name. There is no limit to the
; number of steps and no limit to number of procedures underneath
; a step.
1|Procedure 1|255|0|0|COMP|C1,C2,C3,C4
1|Procedure 1|255|0|0|NET|A10,$$$7551
1|Procedure 2|255|0|0|COMP|C1
1|Procedure 2|0|255|0|COMP|C3
1|Procedure 2|0|0|255|COMP|C4
1|Procedure 2|255|100|100|COMP|C5
1|Procedure 2|255|0|0|NET|A10
1|Procedure 3|255|0|0|COMP|C2,C3
1|Procedure 3|255|0|0|NET|A10,$$$7551
1|Procedure 4|255|0|0|COMP|C3,C4
1|Procedure 4|255|0|0|NET|$$$7551



The whole VB6 project is included in the attached zip file. I hope this serves as a useful example for anyone looking to create a custom tool for automated highlighting of components and nets in CAMCAD for whatever purpose.