HDR['comp_count_real']['v']; $i++)
{
for ($j=1; $j<=$pcb->COMP[$i]['pads_count']['v']; $j++)
{
$pad_ofs = $pcb->COMP[$i]['pad'.$j.'_ofs']['v'];
if ($pad_ofs == $ofs)
{
return $pcb->COMP[$i]['pad'.$j.'_net']['v'];
}
}
}
}
// include class
include("p/" . $proj[$PROJ_ID]['dir'] . "/Class_OrCad21.php");
// parse
// ------------------------------------------------------------------------------------------------
$pcb = new orcad21("p/" . $proj[$PROJ_ID]['dir'] . "/sprint05.pcb");
echo"file size = [".$pcb->FileSize."]
";
if (!$pcb->Parse())
{
echo"parser error
";
return;
}
// print results
// ------------------------------------------------------------------------------------------------
echo"min_x = ".$pcb->MinPosX.", min_y = ".$pcb->MinPosY."
";
echo"max_x = ".$pcb->MaxPosX.", max_y = ".$pcb->MaxPosY."
";
// transform all coordinates from "orcad-top-left" to "pcad-bottom-left"
$pcb->ChangePos(0,0, 0,($pcb->MaxPosY + $pcb->MinPosY), 1);
// check ref duplicated
$REF = array();
echo"validate ref...
";
for($i=1; $i<=$pcb->HDR['comp_count_real']['v']; $i++)
{
$ref1 = $pcb->COMP[$i]['name1_str']['v'];
$ref2 = ValidateRef($pcb->COMP[$i]['name1_str']['v']);
if ($ref1 != $ref2)
{
echo"name [$ref1] change to [$ref2]
";
$pcb->COMP[$i]['name1_str']['v'] = $ref2;
}
}
echo"check duplicates...
";
$found = 0;
for($i=1; $i<=$pcb->HDR['comp_count_real']['v']; $i++)
{
$ref = $pcb->COMP[$i]['name1_str']['v'];
$REF[$ref] = $REF[$ref] + 1;
if ($REF[$ref] > 1)
$found = 1;
}
if ($found)
{
echo"duplicate found!
";
foreach ($REF as $ref => $m)
{
if ($REF[$ref] > 1)
{
echo"[$ref] = ".$REF[$ref]."
";
$id = 1;
for($i=0; $i<=$pcb->HDR['comp_count_real']['v']; $i++)
{
$comp_ref = $pcb->COMP[$i]['name1_str']['v'];
if ($comp_ref == $ref)
{
$pcb->COMP[$i]['name1_str']['v'] = $comp_ref . "_DUP".$id;
$id++;
}
}
}
}
}
$REF = array();
echo"check duplicates...
";
$found = 0;
for($i=1; $i<=$pcb->HDR['comp_count_real']['v']; $i++)
{
$ref = $pcb->COMP[$i]['name1_str']['v'];
$REF[$ref] = $REF[$ref] + 1;
if ($REF[$ref] > 1)
$found = 1;
}
if ($found)
echo"duplicate found!
";
else
echo"no duplicates now
";
echo"
";
// build ...