Core Concepts ============= Understanding the client-server architecture and the EDB object hierarchy is key to working effectively with PyEDB. Architecture: Client-Server Model --------------------------------- PyEDB operates on a client-server model: 1. **Client (Your Script):** The lightweight `pyedb` Python package. It contains the high-level API and sends commands. 2. **Server (The Engine):** The RPC service. It holds the actual EDB data, performs all computations on EDB. Your EDB project exists on the **server**. The client is a remote control. This is why PyEDB can be so lightweight and run on systems without the full Ansys computational engine. The EDB Hierarchy ----------------- The object model within the EDB server remains the same: * **EDB Project**: The top-level object, representing the entire *.edb* file on the server. * **Cell**: Represents the PCB design itself. * **Layout**: The container for all the physical data. * **Stackup**: The definition of layers. * **Primitives**: The basic geometric shapes. * **Net List**: The collection of all electrical nets. * **Component List**: The collection of all components. * **Simulation Setup**: Definitions for how to analyze the design. Key PyEDB client classes (like `Edb`, `Nets`, `Components`) are **handles** or **proxies** that send commands to the corresponding objects inside the server.