Home › Forums › Bug Reports › Import Library Dialog with many sNp files failes.
Tagged: library import sNp
- This topic has 0 replies, 1 voice, and was last updated 2 years, 9 months ago by ddieterle.
-
AuthorPosts
-
24. February 2022 at 10:13 #2948
According to the forum topic How create a library (or user library) of sNp-files ? I tried to create a new user library with many (=1060) sNp files:
Unfortunately the text entry field can not hold all the file names to create the new library. It truncates the file list after 32767 characters:
Obviously the conversion stops with an error message:
Is there a way of modifying the import dialog, so that a folder, instead of a set of single files, can be selected?
For testing purposes the sNp library can be downloaded here: GJM
—
# For a workaround I created a quick-n-dirty python script generation the QucsStudio library:
import sys
import os
from pathlib import Path
import shutilif len(sys.argv) <= 1:
print(“Syntax: python create_user_qucs_library.py library_directory_containing_the_data_files number_description_lines {capacitor|coil|BJT|FET} new_library_name”)library_directory_containing_the_data_files = sys.argv[1]
number_description_lines = int(sys.argv[2])
sNp_component_type = sys.argv[3]
new_library_name = sys.argv[4]
new_library_file_name = new_library_name+”.lib”hs = open(new_library_file_name, ‘w’, newline=”)
hs.write(“<QucsStudio Library 4.2.2 \””+new_library_name+”\”>\n\n”)# 1. Create library XML File
for sNp_file in os.scandir(library_directory_containing_the_data_files):
component_name = Path(sNp_file.name).stem
hs.write(“<Component “+component_name+”>\n”)
hs.write(” <Description>\n”)
with open(sNp_file) as current_component_sNp_file:
for description_line_idx in range(number_description_lines):
intendet_description_line = ” “+next(current_component_sNp_file)[1:]
hs.write(intendet_description_line)
hs.write(” </Description>\n”)
hs.write(” <Model>\n”)
hs.write(” SPfile _”+component_name+”_ 1 280 320 -26 -40 0 0 \”*/”+new_library_name+”#”+sNp_file.name+”\” 0 \”2\” 0 \”polar\” 0 \”linear\” 0 \”open\” 0 \”none\” 0 \””+sNp_component_type+”\” 0\n”)
hs.write(” </Model>\n”)
hs.write(“</Component>\n\n”)
hs.close()# 2. Move library XML File to qucs library user directory
user_home_dir = str(Path.home())
qucs_user_lib_dir = os.path.join(user_home_dir, “.qucs\\user_lib”)
shutil.move(new_library_file_name, qucs_user_lib_dir)# 3. Move and Rename sNp files
for sNp_file in os.scandir(library_directory_containing_the_data_files):
library_name_extended_sNp_file_name = new_library_name+”#”+sNp_file.name
shutil.copy(sNp_file, os.path.join(qucs_user_lib_dir, library_name_extended_sNp_file_name))—
The result is a successful created library (below the 1060th component is selected) 🙂
- This topic was modified 6 months, 4 weeks ago by maelh. Reason: Convert all remaining http links to https links
-
AuthorPosts
- You must be logged in to reply to this topic.