kicad-sch-api

Getting Started

  • Documentation
    • πŸ“š Documentation Index
      • Getting Started
      • Why Use This Library?
      • API Reference
      • Common Recipes
      • Orthogonal Routing
      • Architecture
    • πŸ“– Quick Links by Task
      • I want to…
        • Learn the Basics
        • Understand Why to Use This
        • Build a Specific Circuit
        • Automate Circuit Generation
        • Integrate with AI Agents
        • Use Automatic Wire Routing
        • Understand the Codebase
        • Find Specific Method Documentation
    • πŸ“‚ Additional Documentation
    • 🎯 Learning Path
      • Beginner (1-2 hours)
      • Intermediate (Half day)
      • Advanced (1-2 days)
      • Expert (Ongoing)
    • πŸ’‘ Tips for Success
      • Do’s
      • Don’ts
    • 🀝 Contributing to Documentation
      • Documentation Style Guide
    • πŸ“ž Getting Help
      • Documentation Issues
      • Usage Questions
      • Bug Reports
    • πŸ”„ Documentation Updates
  • Getting Started with kicad-sch-api
    • What is kicad-sch-api?
    • Why Would You Use This?
      • 1. Automate Repetitive Circuit Design
      • 2. Build Circuit Generation Tools
      • 3. MCP Server Integration
      • 4. Circuit Analysis & Validation
    • Installation
    • Your First Circuit (5 Minutes)
      • Step 1: Create a New Schematic
      • Step 2: Add Components
      • Step 3: Connect Components with Wires
      • Step 4: Save Your Circuit
      • Open it in KiCAD!
    • Common Patterns
      • Pattern 1: Parameterized Circuits
      • Pattern 2: Reading and Analyzing Existing Schematics
      • Pattern 3: Circuit Transformations
      • Pattern 4: Component Property Management
    • Understanding Positions and Coordinates
    • Working with Pins
    • Analyzing Connectivity ⭐ NEW
      • Basic Connectivity Check
      • Get Net Information
      • Find Connected Pins
    • Working with Hierarchical Designs ⭐ NEW
      • Build Hierarchy Tree
      • Find Reused Sheets
      • Validate Sheet Connections
      • Trace Signals Through Hierarchy
      • Visualize Hierarchy
    • Next Steps
    • Getting Help
    • Common Questions
      • Q: Can I modify existing KiCAD schematics?
      • Q: Does this replace KiCAD?
      • Q: What KiCAD versions are supported?
      • Q: Can I use this with AI agents?
      • Q: Is the output guaranteed to be valid?
  • Why Use kicad-sch-api?
    • The Problem: Manual Circuit Design Doesn’t Scale
      • Scenario 1: Repetitive Design Work
      • Scenario 2: Design Space Exploration
      • Scenario 3: Automated Testing
    • What Makes This Library Different?
      • 1. Exact Format Preservation
      • 2. Real KiCAD Library Integration
      • 3. Professional Object-Oriented API
      • 4. Performance Optimized
      • 5. AI Agent Ready
    • Use Cases
      • 1. Circuit Generation from Specifications
      • 2. Automated Test Circuit Generation
      • 3. Schematic Validation and Analysis
      • 4. BOM Management and Cost Optimization
      • 5. Circuit Template Libraries
      • 6. Educational Tools
    • Comparison to Alternatives
      • vs. Manual KiCAD GUI Design
      • vs. Other Python KiCAD Libraries
      • vs. Direct S-Expression Manipulation
    • Real-World Success Stories
      • Story 1: Automated Test Suite Generation
      • Story 2: Design Space Exploration
      • Story 3: AI-Powered Circuit Design
    • When NOT to Use This Library
      • ❌ Don’t use for:
      • βœ… Do use for:
    • Getting Started
    • FAQ

User Guide

  • API Reference
    • Table of Contents
    • Creating Schematics
      • create_schematic(name: str) β†’ Schematic
      • load_schematic(filepath: str) β†’ Schematic
    • Component Operations
      • Schematic.components
      • components.add(lib_id, reference, value, position, **kwargs) β†’ Component
      • components.get(reference: str) β†’ Optional[Component]
      • Component Removal
        • components.remove(reference: str) β†’ bool
        • components.remove_by_uuid(uuid: str) β†’ bool
        • components.remove_component(component: Component) β†’ bool
      • components.filter(**criteria) β†’ List[Component]
      • components.bulk_update(criteria: Dict, updates: Dict) β†’ int
      • Component Object
        • Properties
        • Methods
        • Text Effects
    • Wire Operations
      • Schematic.wires
      • wires.add(start=None, end=None, points=None, **kwargs) β†’ str
      • add_wire_between_pins(from_ref, from_pin, to_ref, to_pin) β†’ Optional[str]
      • add_wire_to_pin(point, component_ref, pin) β†’ Optional[str]
      • wires.get(uuid: str) β†’ Optional[Wire]
      • wires.remove(uuid: str) β†’ bool
      • wires.get_by_point(point, tolerance=None) β†’ List[Wire]
    • Connectivity Analysis
      • are_pins_connected(ref1, pin1, ref2, pin2) β†’ bool
      • get_net_for_pin(component_ref, pin_number) β†’ Optional[Net]
      • get_connected_pins(component_ref, pin_number) β†’ List[Tuple[str, str]]
      • Connectivity Cache Management
    • Hierarchy Management
      • hierarchy.build_hierarchy_tree(root_schematic, root_path) β†’ HierarchyNode
      • hierarchy.find_reused_sheets() β†’ Dict[str, List[SheetInstance]]
      • hierarchy.validate_sheet_pins() β†’ List[SheetPinConnection]
      • hierarchy.trace_signal_path(signal_name, start_path=None) β†’ List[SignalPath]
      • hierarchy.flatten_hierarchy(prefix_references=False) β†’ Dict
      • hierarchy.visualize_hierarchy(include_stats=False) β†’ str
    • Label Operations
      • Schematic.labels
      • add_label(text, position, **kwargs) β†’ str
      • labels.find_by_text(text, exact=True) β†’ List[LabelElement]
      • labels.remove(uuid: str) β†’ bool
    • Collections API
      • Common Methods
      • Modification Tracking
    • Configuration
      • Property Positioning
      • Tolerances
      • Defaults
      • Grid and Spacing
      • Sheet Settings
    • File Operations
      • Schematic.save(filepath: str = None)
    • Hierarchical Sheets
      • add_hierarchical_sheet(name, filename, position, size, **kwargs)
      • add_hierarchical_label(text, label_type, position, **kwargs)
    • Junctions
      • junctions.add(position, **kwargs) β†’ str
    • No-Connect Symbols
      • no_connects.add(position, **kwargs) β†’ NoConnectElement
    • Text Elements
      • texts.add(text, position, **kwargs) β†’ TextElement
    • Validation
      • Schematic.validate() β†’ List[ValidationIssue]
    • Utilities
      • Point Class
    • Type Hints
    • Error Handling
    • Complete Example
  • Common Recipes and Patterns
    • Table of Contents
    • Basic Circuit Patterns
      • Recipe 1: Voltage Divider
      • Recipe 2: RC Low-Pass Filter
      • Recipe 3: LED with Current-Limiting Resistor
    • Component Management
      • Recipe 4: Find and Update Components
      • Recipe 5: Bulk Property Updates
      • Recipe 6: Component Validation
    • Wiring and Connectivity
      • Recipe 7: Auto-Route Between Components
      • Recipe 8: Create Multi-Point Wires
      • Recipe 9: Label Management
    • Circuit Analysis
      • Recipe 10: Generate Bill of Materials
      • Recipe 11: Find Unconnected Pins
      • Recipe 12: Component Statistics
    • Connectivity Analysis
      • Recipe 13: Check if Components are Connected
      • Recipe 14: Find All Components on the Same Net
      • Recipe 15: Trace Power Rail Distribution
      • Recipe 16: Validate Circuit Connectivity
      • Recipe 17: Find Floating Nets
    • Hierarchy Management
      • Recipe 18: Validate Hierarchical Design
      • Recipe 19: Flatten Hierarchical Design for Analysis
      • Recipe 20: Trace Signal Through Hierarchy
      • Recipe 21: Visualize Hierarchy with Stats
      • Recipe 22: Generate Hierarchy Report
    • Batch Operations
      • Recipe 13: Generate Test Circuits
      • Recipe 14: Parameter Sweep
      • Recipe 15: Design Variants
    • Advanced Patterns
      • Recipe 16: Template System
      • Recipe 17: Configuration-Driven Generation
    • More Examples
    • Contributing Recipes
  • Advanced Hierarchy Management
    • Overview
    • Part 1: Creating Hierarchical Schematics
      • Component Reference Problem (Issue #100)
      • Solution: set_hierarchy_context()
      • Quick Start Example
      • Complete Hierarchical Design Pattern
      • Critical Requirements
      • What Happens Internally
      • Real-World Example
    • Part 2: Analyzing Hierarchical Schematics
    • Features Implemented
      • 1. Sheet Reuse Tracking βœ…
      • 2. Cross-Sheet Signal Tracking βœ…
      • 3. Sheet Pin Validation βœ…
      • 4. Hierarchy Flattening βœ…
      • 5. Hierarchy Visualization βœ…
      • 6. Hierarchy Statistics βœ…
    • Architecture
      • Core Classes
        • HierarchyManager
        • HierarchyNode
        • SheetInstance
        • SheetPinConnection
        • SignalPath
    • API Reference
      • Building Hierarchy
      • Sheet Reuse
      • Validation
      • Signal Tracing
      • Flattening
      • Statistics
      • Visualization
    • Usage Patterns
      • Pattern 1: Validate Hierarchical Design
      • Pattern 2: Analyze Reusable Modules
      • Pattern 3: Flatten for Analysis
      • Pattern 4: Generate Hierarchy Report
    • Testing
      • Test Coverage
    • Examples
    • Implementation Notes
      • Design Decisions
      • Performance Considerations
    • Integration
      • With ConnectivityAnalyzer
      • With SheetManager
    • Limitations
    • Future Enhancements
    • See Also
    • Changelog
  • Orthogonal Routing Guide
    • Table of Contents
    • Overview
      • What is Orthogonal Routing?
      • When to Use This
    • Quick Start
      • Basic Usage
      • With Real Components
    • Core Concepts
      • RoutingResult
      • Direct vs L-Shaped Routing
      • Segments
    • API Reference
      • create_orthogonal_routing()
      • validate_routing_result()
    • Direction Modes
      • AUTO (Default)
      • HORIZONTAL_FIRST
      • VERTICAL_FIRST
      • Comparison Example
    • KiCAD Y-Axis Inversion
      • Critical Concept
      • What This Means
      • Practical Example
      • Why This Matters
      • Testing Y-Axis Awareness
    • Practical Examples
      • Example 1: Voltage Divider
      • Example 2: Filter Chain
      • Example 3: Power Distribution
    • Best Practices
      • 1. Validate All Routing Results
      • 2. Use AUTO Direction for General Routing
      • 3. Check for Direct Routing
      • 4. Grid Alignment
      • 5. Add Junction Markers
      • 6. Use Type Hints
    • Integration with MCP Server
      • MCP Tool: connect_components()
      • Example Usage with AI
    • Troubleshooting
      • Problem: Diagonal Wire Segments
      • Problem: Disconnected Segments
      • Problem: Unexpected Corner Position
      • Problem: Wire Doesn’t Appear in KiCAD
      • Problem: Routing Through Obstacles
    • Further Reading
    • Contributing
  • Architecture Overview
    • High-Level Architecture
    • Core Components
      • 1. Schematic Object (core/schematic.py)
      • 2. Collections (core/collections/)
      • 3. Element Wrappers (core/components.py, core/labels.py, etc.)
      • 4. Data Types (core/types.py)
      • 5. Parser & Formatter (parsers/)
      • 6. Library Integration (library/)
      • 7. Managers (core/managers/)
      • 8. Configuration (core/config.py)
    • Data Flow Examples
      • Creating a Component
      • Saving a Schematic
      • Loading a Schematic
    • Key Design Patterns
      • 1. Collection Pattern
      • 2. Wrapper Pattern
      • 3. Factory Pattern
      • 4. Manager Pattern
      • 5. Configuration Pattern
    • Performance Optimizations
      • 1. O(1) Lookups
      • 2. Lazy Loading
      • 3. Bulk Operations
      • 4. Indexed Collections
    • Extension Points
      • Adding New Element Types
      • Adding New Operations
      • Custom Validation
    • Testing Strategy
      • 1. Format Preservation Tests
      • 2. Unit Tests
      • 3. Integration Tests
    • Common Questions
  • Electrical Rules Check (ERC) User Guide
    • What is ERC?
    • Quick Start
      • Basic Usage
      • Understanding Results
    • Common Errors
      • E001: Pin Conflict
      • E004: Duplicate Reference
      • W002: Dangling Wire
      • W008: Missing Value
    • Configuration
      • Changing Severity Levels
      • Suppressing Warnings
      • Custom Pin Conflict Rules
    • Exporting Results
      • JSON Export
      • Dictionary Export
      • Text Report
    • Filtering Results
      • By Severity
      • By Component
    • Running Specific Checks
    • Integration Examples
      • CI/CD Pipeline
      • Batch Validation
      • Pre-Save Validation
    • Error Code Reference
      • Errors (E-xxx)
      • Warnings (W-xxx)
    • Best Practices
      • 1. Run ERC Early and Often
      • 2. Use Custom Config for Your Standards
      • 3. Document Suppressed Warnings
      • 4. Integrate with Version Control
    • Performance
    • Troubleshooting
      • β€œNo violations found but I see errors”
      • β€œToo many false positives”
      • β€œCustom components not validated”
    • Further Reading
    • Questions?

MCP Server (AI Agents)

  • MCP Server Usage Examples
    • Table of Contents
    • Setup
      • Prerequisites
      • Claude Code Integration
    • Basic Component Operations
      • Example 1: Create Schematic and Add Component
      • Example 2: List and Filter Components
      • Example 3: Update Component Properties
      • Example 4: Remove Component
    • Building Complete Circuits
      • Example 5: Voltage Divider (Verified βœ…)
      • Example 6: LED Circuit with Current Limiting Resistor
      • Example 7: RC Low-Pass Filter
    • Advanced Examples
      • Example 8: Multi-Component Circuit Analysis
      • Example 9: Pin Discovery for Complex ICs
      • Example 10: Batch Component Updates
    • Common Patterns
      • Pattern 1: Component Placement with Grid Alignment
      • Pattern 2: Vertical Component Stacking
      • Pattern 3: Pin-to-Pin Wiring
      • Pattern 4: Label Placement Near Wires
      • Pattern 5: Junction Placement
    • Troubleshooting
      • Issue 1: Components Not Connecting
      • Issue 2: Labels Not On Wires
      • Issue 3: Component Rotation
      • Issue 4: Schematic Not Saving
      • Issue 5: Component Not Found
    • Best Practices
    • Additional Resources
  • MCP Server Logging Integration Guide
    • Quick Start
      • 1. Initialize Logging in Server Startup
      • 2. Use in Tool Implementations
      • 3. Component-Specific Operations
      • 4. Wire/Connection Operations
    • Advanced Usage Patterns
      • Pattern 1: Bulk Operations with Progress Logging
      • Pattern 2: Validation with Detailed Logging
      • Pattern 3: Hierarchical Operations
    • Debugging Tools
      • Query Recent Errors
      • Analyze Performance
      • Track Specific Component
    • Configuration by Environment
      • Development Configuration
      • Production Configuration
    • Testing with Logs
      • Unit Test Example
    • Best Practices
      • 1. Always Use Operation Context for User-Facing Operations
      • 2. Use Component-Specific Logger for Component Operations
      • 3. Log at Appropriate Levels
      • 4. Include Context in Exception Logging
      • 5. Use Timer Decorator for Performance-Critical Functions
    • Troubleshooting
      • Issue: Logs are empty
      • Issue: Wrong log format
      • Issue: Logs filling disk
      • Issue: DEBUG logs not appearing
    • Migration Checklist
    • References

Developer Documentation

  • Product Requirements Document: Electrical Rules Check (ERC)
    • Executive Summary
    • Problem Statement
      • Current State
      • User Pain Points
      • Impact
    • Goals & Success Metrics
      • Primary Goals
      • Success Metrics
    • Requirements
      • Functional Requirements
        • FR1: Pin Type Validation
        • FR2: Pin Conflict Matrix
        • FR3: Connectivity Validation
        • FR4: Component Validation
        • FR5: Power Supply Validation
        • FR6: Hierarchical Design Validation
        • FR7: Net Labeling Validation
      • Non-Functional Requirements
        • NFR1: Performance
        • NFR2: Usability
        • NFR3: Configurability
        • NFR4: Compatibility
    • User Stories
      • US1: AI Agent Validation
      • US2: Manual Design Validation
      • US3: Batch Validation
      • US4: Custom Rule Configuration
    • Technical Design
      • Architecture
      • API Design
      • Data Models
      • Pin Conflict Matrix Implementation
    • Validation Rules
      • Error-Level Violations (E-xxx)
      • Warning-Level Violations (W-xxx)
      • Info-Level Violations (I-xxx)
    • Implementation Phases
      • Phase 1: Core Infrastructure (2 hours)
      • Phase 2: Pin Validation (2 hours)
      • Phase 3: Connectivity Validation (2 hours)
      • Phase 4: Component & Power Validation (2 hours)
      • Phase 5: Integration & Testing (2 hours)
    • Testing Strategy
      • Unit Tests
      • Integration Tests
      • Reference Tests
      • Performance Tests
    • Questions for Product Owner
      • Scope Questions
      • Feature Priority
      • API Design
      • Compatibility
    • Success Criteria
      • Minimum Viable Product (MVP)
      • Full Release
    • Risks & Mitigation
    • Dependencies
      • Internal
      • External
    • Documentation Requirements
    • Appendix
      • KiCAD Pin Type Reference
  • Entity Relationship Diagram: Electrical Rules Check (ERC)
    • System Overview
    • Entity Relationship Diagram
    • Detailed Entity Descriptions
      • Core Entities
        • 1. ElectricalRulesChecker
        • 2. ERCViolation
        • 3. ERCResult
        • 4. ERCConfig
      • Validator Entities
        • 5. PinTypeValidator
        • 6. ConnectivityValidator
        • 7. ComponentValidator
        • 8. PowerValidator
        • 9. HierarchyValidator
      • Supporting Entities
        • 10. PinConflictMatrix
        • 11. Net
        • 12. CustomRule (Abstract)
    • Data Flow Diagram
    • Validation Flow Sequence
    • Database Schema (if persisting results)
    • Extension Points
      • Adding Custom Validators
      • Custom Pin Conflict Matrix
    • Summary
  • ReadTheDocs Setup Guide
    • What’s Configured
      • Configuration Files
      • Documentation Structure
    • Local Testing
      • Build Documentation Locally
      • Build Other Formats
    • ReadTheDocs Deployment
      • Initial Setup
      • Webhook Integration
      • Custom Domain (Optional)
    • Adding New Documentation
      • Adding Markdown Pages
      • Adding New API Modules
    • Troubleshooting
      • Build Failures
      • Local Build Warnings
      • Documentation Not Updating
    • Version Management
    • Maintenance
      • Updating Sphinx Configuration
      • Updating ReadTheDocs Configuration
      • Monitoring Build Status
    • Resources

API Documentation

  • API Reference
    • Core Package
      • Component
        • Component.__init__()
        • Component.__repr__()
        • Component.__str__()
        • Component.copy_properties_from()
        • Component.footprint
        • Component.get_pin()
        • Component.get_pin_position()
        • Component.get_property()
        • Component.get_symbol_definition()
        • Component.in_bom
        • Component.lib_id
        • Component.library
        • Component.list_pins()
        • Component.move()
        • Component.on_board
        • Component.pin_uuids
        • Component.pins
        • Component.position
        • Component.properties
        • Component.reference
        • Component.remove_property()
        • Component.rotate()
        • Component.rotation
        • Component.set_property()
        • Component.show_pins()
        • Component.symbol_name
        • Component.to_dict()
        • Component.translate()
        • Component.update_from_library()
        • Component.uuid
        • Component.validate()
        • Component.value
      • ComponentCollection
        • ComponentCollection.__contains__()
        • ComponentCollection.__getitem__()
        • ComponentCollection.__init__()
        • ComponentCollection.add()
        • ComponentCollection.add_ic()
        • ComponentCollection.bulk_update()
        • ComponentCollection.filter()
        • ComponentCollection.filter_by_type()
        • ComponentCollection.get()
        • ComponentCollection.get_statistics()
        • ComponentCollection.in_area()
        • ComponentCollection.near_point()
        • ComponentCollection.remove()
        • ComponentCollection.remove_by_uuid()
        • ComponentCollection.remove_component()
        • ComponentCollection.sort_by_position()
        • ComponentCollection.sort_by_reference()
        • ComponentCollection.validate_all()
      • DuplicateElementError
        • DuplicateElementError.__init__()
      • ElementNotFoundError
        • ElementNotFoundError.__init__()
      • KiCADConfig
        • KiCADConfig.get_property_position()
        • KiCADConfig.should_add_title_block()
      • KiCadSchError
      • PinInfo
        • PinInfo.__post_init__()
        • PinInfo.electrical_type
        • PinInfo.length
        • PinInfo.name
        • PinInfo.number
        • PinInfo.orientation
        • PinInfo.position
        • PinInfo.shape
        • PinInfo.to_dict()
        • PinInfo.uuid
      • Schematic
        • Schematic.__enter__()
        • Schematic.__exit__()
        • Schematic.__init__()
        • Schematic.__repr__()
        • Schematic.__str__()
        • Schematic.add_global_label()
        • Schematic.add_hierarchical_label()
        • Schematic.add_image()
        • Schematic.add_label()
        • Schematic.add_rectangle()
        • Schematic.add_sheet()
        • Schematic.add_sheet_pin()
        • Schematic.add_text()
        • Schematic.add_text_box()
        • Schematic.add_wire()
        • Schematic.add_wire_between_pins()
        • Schematic.add_wire_to_pin()
        • Schematic.are_pins_connected()
        • Schematic.auto_route_pins()
        • Schematic.backup()
        • Schematic.bus_entries
        • Schematic.components
        • Schematic.connect_pins_with_wire()
        • Schematic.create()
        • Schematic.draw_bounding_box()
        • Schematic.draw_component_bounding_boxes()
        • Schematic.export_bom()
        • Schematic.export_dxf()
        • Schematic.export_netlist()
        • Schematic.export_pdf()
        • Schematic.export_svg()
        • Schematic.export_to_python()
        • Schematic.file_path
        • Schematic.generator
        • Schematic.get_component_pin_position()
        • Schematic.get_connected_pins()
        • Schematic.get_net_for_pin()
        • Schematic.get_statistics()
        • Schematic.get_validation_summary()
        • Schematic.hierarchical_labels
        • Schematic.hierarchy
        • Schematic.junctions
        • Schematic.labels
        • Schematic.library
        • Schematic.list_component_pins()
        • Schematic.load()
        • Schematic.modified
        • Schematic.nets
        • Schematic.no_connects
        • Schematic.remove_hierarchical_label()
        • Schematic.remove_label()
        • Schematic.remove_rectangle()
        • Schematic.remove_sheet()
        • Schematic.remove_wire()
        • Schematic.run_erc()
        • Schematic.save()
        • Schematic.save_as()
        • Schematic.set_hierarchy_context()
        • Schematic.set_paper_size()
        • Schematic.set_title_block()
        • Schematic.sheets
        • Schematic.texts
        • Schematic.title_block
        • Schematic.uuid
        • Schematic.validate()
        • Schematic.version
        • Schematic.wires
      • SymbolLibraryCache
        • SymbolLibraryCache.__init__()
        • SymbolLibraryCache.add_library_path()
        • SymbolLibraryCache.clear_cache()
        • SymbolLibraryCache.discover_libraries()
        • SymbolLibraryCache.get_library_symbols()
        • SymbolLibraryCache.get_performance_stats()
        • SymbolLibraryCache.get_symbol()
        • SymbolLibraryCache.get_symbol_info()
        • SymbolLibraryCache.search_symbols()
      • ValidationError
        • ValidationError.__init__()
        • ValidationError.add_issue()
        • ValidationError.get_errors()
        • ValidationError.get_warnings()
      • ValidationIssue
        • ValidationIssue.category
        • ValidationIssue.context
        • ValidationIssue.level
        • ValidationIssue.message
        • ValidationIssue.suggestion
      • create_schematic()
      • get_symbol_cache()
      • get_symbol_info()
      • load_schematic()
      • schematic_to_python()
      • search_symbols()
      • use_grid_units()
      • Schematic
        • Schematic
        • create_schematic()
        • load_schematic()
    • Collections
      • Base Collection
        • BaseCollection
        • BatchContext
        • IndexRegistry
        • IndexSpec
        • PropertyDict
        • ValidationLevel
      • Component Collection
        • Component
        • ComponentCollection
      • Wire Collection
        • WireCollection
      • Label Collection
        • LabelCollection
        • LabelElement
      • Junction Collection
        • JunctionCollection
    • Element Wrappers
      • Components
        • Component
        • ComponentCollection
      • Wires
        • WireCollection
      • Labels
        • LabelCollection
        • LabelElement
      • Junctions
        • JunctionCollection
      • Texts
        • TextCollection
        • TextElement
    • Data Types
      • BusEntry
        • BusEntry.__post_init__()
        • BusEntry.position
        • BusEntry.rotation
        • BusEntry.size
        • BusEntry.stroke_type
        • BusEntry.stroke_width
        • BusEntry.uuid
      • HierarchicalLabelShape
        • HierarchicalLabelShape.BIDIRECTIONAL
        • HierarchicalLabelShape.INPUT
        • HierarchicalLabelShape.OUTPUT
        • HierarchicalLabelShape.PASSIVE
        • HierarchicalLabelShape.TRISTATE
        • HierarchicalLabelShape.UNSPECIFIED
      • Image
        • Image.data
        • Image.position
        • Image.scale
        • Image.uuid
      • Junction
        • Junction.color
        • Junction.diameter
        • Junction.position
        • Junction.uuid
      • Label
        • Label.justify_h
        • Label.justify_v
        • Label.label_type
        • Label.position
        • Label.rotation
        • Label.shape
        • Label.size
        • Label.text
        • Label.uuid
      • LabelType
        • LabelType.GLOBAL
        • LabelType.HIERARCHICAL
        • LabelType.LOCAL
      • Net
        • Net.add_connection()
        • Net.components
        • Net.labels
        • Net.name
        • Net.remove_connection()
        • Net.wires
      • NoConnect
        • NoConnect.position
        • NoConnect.uuid
      • PinInfo
        • PinInfo.__post_init__()
        • PinInfo.electrical_type
        • PinInfo.length
        • PinInfo.name
        • PinInfo.number
        • PinInfo.orientation
        • PinInfo.position
        • PinInfo.shape
        • PinInfo.to_dict()
        • PinInfo.uuid
      • PinShape
        • PinShape.CLOCK
        • PinShape.CLOCK_LOW
        • PinShape.EDGE_CLOCK_HIGH
        • PinShape.INPUT_LOW
        • PinShape.INVERTED
        • PinShape.INVERTED_CLOCK
        • PinShape.LINE
        • PinShape.NON_LOGIC
        • PinShape.OUTPUT_LOW
      • PinType
        • PinType.BIDIRECTIONAL
        • PinType.FREE
        • PinType.INPUT
        • PinType.NO_CONNECT
        • PinType.OPEN_COLLECTOR
        • PinType.OPEN_EMITTER
        • PinType.OUTPUT
        • PinType.PASSIVE
        • PinType.POWER_IN
        • PinType.POWER_OUT
        • PinType.TRISTATE
        • PinType.UNSPECIFIED
      • Point
        • Point.distance_to()
        • Point.offset()
        • Point.x
        • Point.y
      • Rectangle
        • Rectangle.bottom_right
        • Rectangle.center
        • Rectangle.contains()
        • Rectangle.height
        • Rectangle.top_left
        • Rectangle.width
      • Schematic
        • Schematic.component_count()
        • Schematic.components
        • Schematic.connection_count()
        • Schematic.generator
        • Schematic.get_component()
        • Schematic.get_net()
        • Schematic.junctions
        • Schematic.labels
        • Schematic.lib_symbols
        • Schematic.nets
        • Schematic.rectangles
        • Schematic.sheets
        • Schematic.title_block
        • Schematic.uuid
        • Schematic.version
        • Schematic.wires
      • SchematicPin
        • SchematicPin.length
        • SchematicPin.name
        • SchematicPin.number
        • SchematicPin.pin_shape
        • SchematicPin.pin_type
        • SchematicPin.position
        • SchematicPin.rotation
      • SchematicRectangle
        • SchematicRectangle.center
        • SchematicRectangle.end
        • SchematicRectangle.fill_type
        • SchematicRectangle.height
        • SchematicRectangle.start
        • SchematicRectangle.stroke_type
        • SchematicRectangle.stroke_width
        • SchematicRectangle.uuid
        • SchematicRectangle.width
      • SchematicSymbol
        • SchematicSymbol.add_properties()
        • SchematicSymbol.add_property()
        • SchematicSymbol.fields_autoplaced
        • SchematicSymbol.footprint
        • SchematicSymbol.get_pin()
        • SchematicSymbol.get_pin_position()
        • SchematicSymbol.get_property_effects()
        • SchematicSymbol.hidden_properties
        • SchematicSymbol.in_bom
        • SchematicSymbol.instances
        • SchematicSymbol.lib_id
        • SchematicSymbol.library
        • SchematicSymbol.on_board
        • SchematicSymbol.pin_uuids
        • SchematicSymbol.pins
        • SchematicSymbol.position
        • SchematicSymbol.properties
        • SchematicSymbol.reference
        • SchematicSymbol.rotation
        • SchematicSymbol.set_property_effects()
        • SchematicSymbol.symbol_name
        • SchematicSymbol.unit
        • SchematicSymbol.uuid
        • SchematicSymbol.value
      • Sheet
        • Sheet.dnp
        • Sheet.exclude_from_sim
        • Sheet.fields_autoplaced
        • Sheet.filename
        • Sheet.fill_color
        • Sheet.in_bom
        • Sheet.name
        • Sheet.on_board
        • Sheet.pins
        • Sheet.position
        • Sheet.size
        • Sheet.stroke_type
        • Sheet.stroke_width
        • Sheet.uuid
      • SheetPin
        • SheetPin.name
        • SheetPin.pin_type
        • SheetPin.position
        • SheetPin.size
        • SheetPin.uuid
      • SymbolInfo
        • SymbolInfo.datasheet
        • SymbolInfo.description
        • SymbolInfo.keywords
        • SymbolInfo.lib_id
        • SymbolInfo.library
        • SymbolInfo.name
        • SymbolInfo.pins
        • SymbolInfo.power_symbol
        • SymbolInfo.reference_prefix
        • SymbolInfo.unit_count
        • SymbolInfo.unit_names
      • SymbolInstance
        • SymbolInstance.path
        • SymbolInstance.project
        • SymbolInstance.reference
        • SymbolInstance.unit
      • Text
        • Text.bold
        • Text.color
        • Text.exclude_from_sim
        • Text.face
        • Text.italic
        • Text.position
        • Text.rotation
        • Text.size
        • Text.text
        • Text.thickness
        • Text.uuid
      • TextBox
        • TextBox.exclude_from_sim
        • TextBox.fill_type
        • TextBox.font_size
        • TextBox.justify_horizontal
        • TextBox.justify_vertical
        • TextBox.margins
        • TextBox.position
        • TextBox.rotation
        • TextBox.size
        • TextBox.stroke_type
        • TextBox.stroke_width
        • TextBox.text
        • TextBox.uuid
      • TitleBlock
        • TitleBlock.comments
        • TitleBlock.company
        • TitleBlock.date
        • TitleBlock.rev
        • TitleBlock.size
        • TitleBlock.title
      • Wire
        • Wire.end
        • Wire.from_start_end()
        • Wire.is_horizontal()
        • Wire.is_simple()
        • Wire.is_vertical()
        • Wire.length
        • Wire.points
        • Wire.start
        • Wire.stroke_type
        • Wire.stroke_width
        • Wire.uuid
        • Wire.wire_type
      • WireType
        • WireType.BUS
        • WireType.WIRE
      • point_from_dict_or_tuple()
    • Configuration
      • DefaultValues
        • DefaultValues.fill_type
        • DefaultValues.font_size
        • DefaultValues.pin_name_size
        • DefaultValues.pin_number_size
        • DefaultValues.project_name
        • DefaultValues.stroke_type
        • DefaultValues.stroke_width
      • FieldNames
        • FieldNames.arc
        • FieldNames.at
        • FieldNames.bezier
        • FieldNames.center
        • FieldNames.circle
        • FieldNames.color
        • FieldNames.effects
        • FieldNames.end
        • FieldNames.fill
        • FieldNames.font
        • FieldNames.generator
        • FieldNames.generator_version
        • FieldNames.junction
        • FieldNames.label
        • FieldNames.lib_id
        • FieldNames.mid
        • FieldNames.no_connect
        • FieldNames.paper
        • FieldNames.pin
        • FieldNames.polyline
        • FieldNames.property
        • FieldNames.pts
        • FieldNames.radius
        • FieldNames.rectangle
        • FieldNames.sheet
        • FieldNames.sheet_instances
        • FieldNames.size
        • FieldNames.start
        • FieldNames.stroke
        • FieldNames.symbol
        • FieldNames.type
        • FieldNames.uuid
        • FieldNames.version
        • FieldNames.width
        • FieldNames.wire
        • FieldNames.xy
      • FileFormatConstants
        • FileFormatConstants.file_type
        • FileFormatConstants.generator_default
        • FileFormatConstants.generator_version_default
        • FileFormatConstants.version_default
      • GridSettings
        • GridSettings.component_spacing
        • GridSettings.power_offset
        • GridSettings.standard_grid
        • GridSettings.unit_spacing
      • KiCADConfig
        • KiCADConfig.get_property_position()
        • KiCADConfig.should_add_title_block()
      • PaperSizeConstants
        • PaperSizeConstants.default
        • PaperSizeConstants.valid_sizes
      • PositioningSettings
        • PositioningSettings.grid_size
        • PositioningSettings.use_grid_units
      • PropertyOffsets
        • PropertyOffsets.footprint_rotation
        • PropertyOffsets.hidden_property_offset
        • PropertyOffsets.reference_x
        • PropertyOffsets.reference_y
        • PropertyOffsets.value_x
        • PropertyOffsets.value_y
      • SheetSettings
        • SheetSettings.default_stroke_type
        • SheetSettings.default_stroke_width
        • SheetSettings.file_offset_y
        • SheetSettings.name_offset_y
      • ToleranceSettings
        • ToleranceSettings.coordinate_precision
        • ToleranceSettings.position_tolerance
        • ToleranceSettings.wire_segment_min
    • Parser & Formatter
      • Parser
        • SExpressionParser
      • Formatter
        • CompactFormatter
        • DebugFormatter
        • ExactFormatter
        • FormatRule
      • Element Parsers
        • SymbolParser
        • WireParser
        • LabelParser
    • Library Integration
      • Symbol Cache
        • LibraryStats
        • SymbolDefinition
        • SymbolLibraryCache
        • get_symbol_cache()
        • get_symbol_info()
        • search_symbols()
        • set_symbol_cache()
      • Symbol Resolver
        • SymbolResolver
      • Symbol Validators
        • SymbolValidator
      • Discovery
        • ComponentSearchIndex
        • ensure_index_built()
        • get_search_index()
    • Utilities
      • Validation
        • SchematicValidator
        • ValidationError
        • ValidationIssue
        • ValidationLevel
        • collect_validation_errors()
        • validate_schematic_file()
      • Geometry
        • apply_transformation()
        • calculate_position_for_pin()
        • distance_between_points()
        • points_equal()
        • snap_to_grid()
        • SymbolBoundingBoxCalculator

Project Info

  • GitHub Repository
  • PyPI Package
kicad-sch-api
  • Search


© Copyright 2024, Circuit-Synth.

Built with Sphinx using a theme provided by Read the Docs.