fix: Update schematic format to KiCAD 9 and fix invalid UUIDs (#37)
- Update schematic version from 20230121 (KiCAD 7) to 20240101 (KiCAD 9) - Replace invalid all-zeros UUIDs in template files with valid UUIDs - Add post-copy UUID regeneration to ensure each project gets unique UUID - Add UTF-8 encoding and Unix line endings for cross-platform compatibility Fixes the root cause where templates were copied with invalid UUIDs and outdated version format, causing KiCAD 9.0.x to reject the schematic files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,21 @@ class SchematicManager:
|
||||
if os.path.exists(template_path):
|
||||
# Copy template to target location
|
||||
shutil.copy(template_path, output_path)
|
||||
|
||||
# Regenerate UUID to ensure uniqueness for each created schematic
|
||||
import re
|
||||
with open(output_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
new_uuid = str(uuid.uuid4())
|
||||
content = re.sub(
|
||||
r'\(uuid [0-9a-fA-F-]+\)',
|
||||
f'(uuid {new_uuid})',
|
||||
content,
|
||||
count=1 # Only replace first (schematic) UUID
|
||||
)
|
||||
with open(output_path, 'w', encoding='utf-8', newline='\n') as f:
|
||||
f.write(content)
|
||||
|
||||
logger.info(f"Created schematic from template: {output_path}")
|
||||
else:
|
||||
# Fallback: create minimal schematic
|
||||
|
||||
Reference in New Issue
Block a user