You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							45 lines
						
					
					
						
							1.2 KiB
						
					
					
				| #!/usr/bin/python | |
| 
 | |
| # Convert a footprint library from one format to another, e.g. legacy to pretty. | |
| 
 | |
| # 1) Entered following command line, script takes to arguments: oldLibPath & newLibPath | |
| # $ PYTHONPATH=. <path_to>/lib_convert.py /usr/local/share/kicad/modules/smd_dil.mod /tmp/smd_dil.pretty | |
| 
 | |
| # inspect one footprint found in new librarypath /tmp/smd_dil.pretty | |
| 
 | |
| 
 | |
| from __future__ import print_function | |
| from pcbnew import * | |
| import sys | |
| 
 | |
| if len( sys.argv ) < 3 : | |
|     print( "usage: script srcLibraryPath dstLibraryPath" ) | |
|     sys.exit(1) | |
| 
 | |
| 
 | |
| src_libpath = sys.argv[1] | |
| dst_libpath = sys.argv[2] | |
| 
 | |
| 
 | |
| src_type = IO_MGR.GuessPluginTypeFromLibPath( src_libpath ); | |
| dst_type = IO_MGR.GuessPluginTypeFromLibPath( dst_libpath ); | |
| 
 | |
| src_plugin = IO_MGR.PluginFind( src_type ) | |
| dst_plugin = IO_MGR.PluginFind( dst_type ) | |
| 
 | |
| try: | |
|     dst_plugin.DeleteLibrary( dst_libpath ) | |
| except: | |
|     None    # ignore, new may not exist if first run | |
| 
 | |
| dst_plugin.CreateLibrary( dst_libpath ) | |
| 
 | |
| list_of_parts = src_plugin.FootprintEnumerate( src_libpath ) | |
| 
 | |
| ii = 0; | |
| for part_id in list_of_parts: | |
|     footprint = src_plugin.FootprintLoad( src_libpath, part_id ) | |
|     dst_plugin.FootprintSave( dst_libpath, footprint ) | |
|     ii = ii+1 | |
|     print( ii, footprint.GetFPID().GetUniStringLibId(), "->", dst_libpath ) | |
| 
 |