65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| // multilayer begin
 | |
| $pcad_pcb  = "  (multiLayer\r\n";
 | |
| 
 | |
| // - via
 | |
| for($i=0; $i<=$pcb->HDR['net_points_count']['v']; $i++)
 | |
| {
 | |
| 	$net1 = $pcb->NETPOI[$i]['net_id']['v'];
 | |
| 	$net = getNetByPadOfs($pcb, $net1);
 | |
| 	$netref = "";
 | |
| 	if ($net) $netref = "(netNameRef \"$net\") ";
 | |
| 
 | |
| 	$flags = hex($pcb->NETPOI[$i]['flags']['v']);
 | |
| 	$flags_hdr = substr($flags, 1, 1);
 | |
| 
 | |
| 	if ( ($flags_hdr == "6") or ($flags_hdr == "7") ) {} else continue;
 | |
| 
 | |
| 	$st = $pcb->NETPOI[$i]['style']['v'];
 | |
| 	$x = $pcb->NETPOI[$i]['pos_x']['v'];
 | |
| 	$y = $pcb->NETPOI[$i]['pos_y']['v'];
 | |
| 
 | |
| 	$pcad_pcb .= "    (via (viaStyleRef \"$st\") (pt $y $x) $netref)\r\n";
 | |
| }
 | |
| //file_put_contents($out_file, $pcad_pcb, FILE_APPEND | LOCK_EX);
 | |
| 
 | |
| // - components
 | |
| for($i=1; $i<=$pcb->HDR['comp_count_real']['v']; $i++)
 | |
| {
 | |
| 	$C = $pcb->COMP[$i];
 | |
| 
 | |
| 	$name1 = ValidateRef($C['name1_str']['v']);
 | |
| 	$name2 = ValidateRef($C['name2_str']['v']);
 | |
| 	$pattern = $C['style']['v'] . "_1";
 | |
| 	$x = $C['pos_x']['v'];
 | |
| 	$y = $C['pos_y']['v'];
 | |
| 
 | |
| 	$delta = $C['rotate']['v'] - $C['style_rotate']['v'];
 | |
| 	$r = (2 - $delta);
 | |
| 
 | |
| 	$comment = "";
 | |
| //	$comment = ";; styleR=[".$C['style_rotate']['v']."], compR=".$C['rotate']['v'].", calcR=$r";
 | |
| 
 | |
| 	$pcad_pcb .= "    (pattern (patternRef \"$pattern\") (refDesRef \"$name1\") (pt $y $x) (rotation ".($r*90).") (patternGraphicsNameRef \"Primary\")\r\n";
 | |
| 	$pcad_pcb .= "      (patternGraphicsRef $comment\r\n";
 | |
| 	$pcad_pcb .= "        (patternGraphicsNameRef \"Primary\")\r\n";
 | |
| 
 | |
| 	$tr = ($C['rotate']['v'] +3) %4;
 | |
| 	if (($tr == 1) or ($tr == 3)) $tr = ($tr +2) %4;
 | |
| 
 | |
| // can be experimenting
 | |
| if ($C['pads_count']['v'] > 12)
 | |
| 	$pcad_pcb .= "        (attr \"RefDes\" \"$name1\" (rotation ".($tr*90).") (isVisible True) (justify Center) (textStyleRef \"(DefaultTTF)\") )\r\n";
 | |
| 
 | |
| 	$pcad_pcb .= "      )\r\n";
 | |
| 	$pcad_pcb .= "    )\r\n";
 | |
| 
 | |
| //file_put_contents($out_file, $pcad_pcb, FILE_APPEND | LOCK_EX);
 | |
| }
 | |
| 
 | |
| // multilayer end.
 | |
| $pcad_pcb .= "  )\r\n";
 | |
| file_put_contents($out_file, $pcad_pcb, FILE_APPEND | LOCK_EX);
 | |
| 
 |