diff --git a/pcb-ai-engineer/references/altium_celestial_library_setup.md b/pcb-ai-engineer/references/altium_celestial_library_setup.md new file mode 100644 index 0000000..d85776f --- /dev/null +++ b/pcb-ai-engineer/references/altium_celestial_library_setup.md @@ -0,0 +1,552 @@ +# Подключение Celestial Altium Library к Altium Designer + +Полная production-ready инструкция по подключению базы данных Celestial +(`issus/altium-library`, ≈212 000 компонентов, 311 views) к Altium Designer +под Windows. Все ссылки ведут на официальные источники (Microsoft Learn, +Download Center, GitHub). Альтернативы через Microsoft Store и `winget msstore` +не используются — они заблокированы для RU-региона. + +--- + +## 0. Что ты получишь в итоге + +- Полная database-library на ≈212 000 реальных компонентов с MPN, supplier + refs, 3D-моделями производителей, параметрической фильтрацией в Altium. +- BOM заполняется автоматически при Place — никакого ручного ввода MPN. +- 311 категорийных views прямо в `Components panel` (Resistors по размерам + пакетов, Capacitors Ceramic/Electrolytic/Tantalum, MOSFETs N/P-Ch, + MCUs, Motor Drivers, Voltage Regulators и т.д.). +- Обновления прилетают автоматически по мере добавления Mark Harris'ом новых + компонентов на облачный сервер. + +Объём локальных файлов после клонирования: ≈4–6 GB (в основном STEP-модели +через Git LFS). + +--- + +## 1. Регистрация на портале и получение DbLib + +### 1.1. Зарегистрируйся на портале + +Открой → `REGISTER` → заполни форму. +Email реальный — понадобится для активации и восстановления пароля. + +### 1.2. Создай Server Login + +Портал разделяет **аккаунт на портале** (твой email и пароль) и **логин к +SQL-серверу** (генерируется случайно, нужен для подключения Altium). + +1. Войди на портал. +2. `Server Logins` → `New Login`. +3. В списке баз выбери `altium_library` → `Create`. +4. Портал сгенерирует случайные username/password — скачай или запиши их + сразу, второй раз посмотреть пароль нельзя. + +**Важно, почему креды случайные:** DbLib хранит их plain-text на диске. Mark +Harris принципиально генерирует их, чтобы ты не вписал свой обычный пароль. + +### 1.3. Скачай DbLib + +`Server Logins` → `Manage` → напротив созданного логина кнопка **DbLib**. +Скачается файл вида `Celestial_Altium_Library_-_altium_library.DbLib` — +ini-файл с уже зашитой `ConnectionString` к твоему персональному логину. + +Открой его в текстовом редакторе и проверь первую строчку после +`[DatabaseLinks]`: + +```ini +ConnectionString = Provider=SQLNCLI11.1; User ID=alib_xxxx; Password=...; Initial Catalog=altium_library; Data Source=db.altiumlibrary.com,1433; Initial File Name=""; Server SPN="" +``` + +Ключевые детали: +- `Provider=SQLNCLI11.1` — SQL Server Native Client 11 (deprecated Microsoft'ом + в 2021, но именно его запрашивает этот DbLib). Будем ставить. +- `Data Source=db.altiumlibrary.com,1433` — сервер Mark Harris'а в OVH France + (51.68.218.24), не Azure SQL. + +--- + +## 2. Клонирование библиотеки + +Репозиторий `issus/altium-library` хранит SchLib/PcbLib/STEP локально, база +с параметрами — на облачном SQL. Оба нужны одновременно. + +### 2.1. Установи Git с поддержкой LFS + +```powershell +# Если Git ещё нет — ставим отсюда (официальный инсталлятор): +# https://git-scm.com/download/win +# В инсталляторе обязательно галочка "Git LFS support" — она по умолчанию включена. + +# Проверка: +git --version +git lfs version +``` + +Без Git LFS клонирование «прошуршит» по указателям, но **STEP-файлы не +скачаются** — вместо них будут текстовые stub'ы размером ~130 байт. + +### 2.2. Клонируй репозиторий + +```powershell +git lfs install # один раз на пользователя +cd C:\Work # или куда тебе удобно +git clone https://github.com/issus/altium-library.git +``` + +Клонирование займёт 5–15 минут (≈4–6 GB через LFS). + +### 2.3. Положи DbLib в папку репозитория + +Скачанный в 1.3 файл `*.DbLib` скопируй в **корень** клонированного +репозитория — рядом с `Altium Database Library V2.DbLib`, `symbols/`, +`footprints/`. Это важно: в DbLib footprint/symbol refs прописаны +**относительными путями**, и Altium ищет их относительно DbLib-файла. + +``` +C:\Work\altium-library\ +├─ Altium Database Library V2.DbLib ← шаблон из репо (не трогать) +├─ Celestial_Altium_Library_-_altium_library.DbLib ← твой, из портала +├─ symbols\ +├─ footprints\ +├─ STEP\ +└─ ... +``` + +### 2.4. Обновление базы в будущем + +Регулярно подтягивай свежие символы и футпринты: + +```powershell +cd C:\Work\altium-library +git pull +git lfs pull +``` + +--- + +## 3. Установка Windows-зависимостей + +Это дно происходящего: тебе нужен **устаревший драйвер Microsoft** из +инсталлятора **SQL Server 2012 SP4 Feature Pack**, потому что DbLib +требует `SQLNCLI11.1`. Плюс Visual C++ Redistributable — без него драйвер +не зарегистрируется в реестре. + +Ниже — всё через прямые MSI с `download.microsoft.com`, без Microsoft Store +и `winget msstore` (заблокированы для RU). + +### 3.1. Visual C++ Redistributable (x86 + x64) + +Если у тебя современный Windows 11 с Visual Studio / dotnet — уже стоит. +На чистой машине ставь обе архитектуры; `x64` не включает `x86`-часть, а +она нужна для 32-битных компонентов драйвера. + +Через `winget` (это community source, RU-блокировки не касается): + +```powershell +winget install --id Microsoft.VCRedist.2015+.x64 --exact --accept-package-agreements --accept-source-agreements +winget install --id Microsoft.VCRedist.2015+.x86 --exact --accept-package-agreements --accept-source-agreements +``` + +Или прямые инсталляторы: +- x64: +- x86: + +### 3.2. SQL Server Native Client 11 (sqlncli.msi) — ОБЯЗАТЕЛЬНО + +Это именно тот «старый» провайдер, который записан в DbLib. Он идёт в составе +SQL Server 2012 SP4 Feature Pack и распространяется как standalone MSI. + +Elevated PowerShell (запуск от администратора): + +```powershell +$url = "https://download.microsoft.com/download/B/E/D/BED73AAC-3C8A-43F5-AF4F-EB4FEA6C8F3A/ENU/x64/sqlncli.msi" +$msi = "$env:TEMP\sqlncli_x64.msi" + +Invoke-WebRequest -Uri $url -OutFile $msi -UseBasicParsing +msiexec /i $msi /qn IACCEPTSQLNCLILICENSETERMS=YES +``` + +Флаг `IACCEPTSQLNCLILICENSETERMS=YES` обязателен для silent install. Без него +`/qn` падает без ошибки, драйвер не ставится. + +**Проверка установки:** + +```powershell +Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SQLNCLI11" -ErrorAction SilentlyContinue | + Select-Object InstalledVersion +# Должно показать InstalledVersion 11.4.x (или выше) +``` + +### 3.3. Microsoft OLE DB Driver 19 for SQL Server — ОПЦИОНАЛЬНО + +Современный актуальный провайдер. Для Celestial как такового не нужен, но +пригодится для будущих проектов с SQL Server / Azure SQL, и ставится +side-by-side с SQLNCLI11 без конфликтов. + +```powershell +# Актуальная GA: MSOLEDBSQL 19.4.1 (2025-05-09) +$url = "https://go.microsoft.com/fwlink/?linkid=2318101" # x64 + Arm64 +$msi = "$env:TEMP\msoledbsql.msi" +Invoke-WebRequest -Uri $url -OutFile $msi -UseBasicParsing +msiexec /i $msi /qn IACCEPTMSOLEDBSQLLICENSETERMS=YES +``` + +### 3.4. НЕ ставь Microsoft Access + +Altium при проблемах с OLE DB fallback'ается на ошибку +«requires 64-bit Microsoft Access Database Engine». Это ложное сообщение. +`SQLNCLI11` — это OLE DB Provider, а не ODBC и **вообще не связан с Access**. +Установка Access/ACE ничего не починит и не требуется. + +--- + +## 4. Сетевой доступ до сервера + +Сервер `db.altiumlibrary.com` (51.68.218.24, OVH France) принимает соединения +только по TCP 1433. Это порт MSSQL, и он часто фильтруется: + +- Windows Firewall исходящий — обычно пропускает, но проверить стоит. +- Российские ISP — могут резать 1433 на uplink (anti-spam / anti-bruteforce). +- Корпоративные сети — почти всегда режут. +- Azure/OVH со стороны сервера — может whitelist'ить. + +### 4.1. Проверка доступности + +```powershell +Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433 +``` + +Ждёшь: +``` +TcpTestSucceeded : True +``` + +Если `False` — либо таймаут, либо RST. Смотри `RemoteAddress` — там должно +быть `51.68.218.24`. + +### 4.2. Если 1433 закрыт — заворачиваем через VPN + +Для твоей инфраструктуры (MikroTik + xray/AmneziaWG контейнеры на 192.168.9.147): + +1. На MikroTik в адрес-лист для VPN-маршрутизации добавь: + - `db.altiumlibrary.com` (MikroTik умеет DNS-name в address-list с автообновлением) + - или статически `51.68.218.24/32` +2. Убедись, что правило `/ip firewall mangle` для mark-routing захватывает + этот адрес (по `dst-address-list`). +3. Проверь с машины: + +```powershell +# Должен идти через VPN-интерфейс +Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433 +tracert -h 5 51.68.218.24 +``` + +Важно: SQLNCLI11 по умолчанию **не шифрует** трафик. Пароль из DbLib +летит по сети в TDS-фрейме. Если между машиной и сервером есть untrusted +сегмент — VPN не только для обхода блока, но и для минимальной защиты +транспорта. + +--- + +## 5. Подключение в Altium Designer + +На этом этапе у тебя должно быть: +- ✅ `SQLNCLI11` стоит (проверено через реестр) +- ✅ `db.altiumlibrary.com:1433` доступен (TcpTestSucceeded : True) +- ✅ DbLib лежит в папке с клонированным репо + +### 5.1. Открой Altium Designer + +Любой проект, можно пустой. Открой панель `Components` +(`View → Panels → Components`, или снизу справа `Panels → Components`). + +### 5.2. Окно File-based Libraries Preferences + +В панели `Components` нажми иконку меню (≡ или три точки — зависит от +версии AD) → в разных версиях Altium этот пункт называется по-разному: + +- AD 20+ (включая 26.x): **`File-based Libraries Preferences...`** +- Старые AD: **`Libraries Preferences...`** + +Откроется окно `Available File-based Libraries`. + +### 5.3. Установка DbLib + +1. Вкладка **`Installed`**. +2. Кнопка **`Install`** внизу → выбери + `C:\Work\altium-library\Celestial_Altium_Library_-_altium_library.DbLib`. +3. Проверь, что в списке появилась строка с типом `Database`. +4. Галочка `Activate` должна быть включена. +5. **НЕ закрывай окно сразу** — Altium начнёт подключение и может вывести ошибку. + +### 5.4. Первая загрузка + +На этом шаге Altium: +1. Коннектится к `db.altiumlibrary.com:1433`. +2. Выполняет ~600 SELECT-запросов (один на каждый view) для получения схемы + колонок и параметров фильтрации. +3. Строит локальный индекс. + +На хорошем интернете через прямой канал — 30–60 секунд. Через VPN с RTT +150 мс — до 2–3 минут. Splash Altium будет показывать +`Loading Document Celestial Altium Library - altium_library.DbLib`. + +Не перебивай, не закрывай Altium. Если висит >5 минут — смотри Troubleshooting. + +### 5.5. Проверка результата + +В `Components panel` сверху появится дропдаун с views. Должно быть примерно +так: + +``` +Components ▾ +├─ Capacitors - Ceramic - 0402 +├─ Capacitors - Ceramic - 0603 +├─ ... (18 views под конденсаторы) +├─ Connectors - ... (18 views) +├─ Diodes - ... (5 views) +├─ Inductors - Power +├─ MOSFET - Single - N-Ch +├─ MOSFET - Single - P-Ch +├─ Motor Drivers Controllers +├─ Resistors - Surface Mount - 0402 +├─ ... (12 views под резисторы) +└─ Voltage Regulators - DC DC Switching Regulators +``` + +Выбери, например, `Resistors - Surface Mount - 0603` → справа от списка +компонентов появится панель параметрической фильтрации (Resistance, +Tolerance, Power Rating, Temperature Coefficient, Manufacturer). + +Всё — база работает. + +--- + +## 6. Использование + +### 6.1. Размещение компонента + +1. В схеме → панель `Components` → выбери нужный view. +2. Отфильтруй по параметрам (например, Resistance = 10k, Tolerance = 1%). +3. Двойной клик на компоненте → компонент появится в курсоре. +4. Разместишь на схеме — Altium автоматически: + - Скачает symbol из локального `symbols/` (по Library Ref из БД). + - Скачает footprint из локального `footprints/`. + - Пропишет все параметры в атрибутах компонента (MPN, Manufacturer, + Supplier, Price, Datasheet URL). + +### 6.2. Генерация BOM + +`Project → Project Options → OutputJob Files → Report Outputs → Bill of Materials`. +В BOM автоматически попадут `Manufacturer Part Number`, `Manufacturer`, +`Supplier 1 Part Number`, `Supplier 1 Unit Price` и т.д. — заполнять руками +ничего не нужно. + +### 6.3. Если нужного компонента нет в Celestial + +1. Создай свой SchLib/PcbLib рядом с клоном (например, `C:\Work\altium-library-custom\`). +2. В `File-based Libraries Preferences → Installed` добавь рядом со страницей + Celestial DbLib. +3. Свои компоненты работают параллельно, без конфликтов. + +Либо отправь PR в `issus/altium-library` — Mark принимает, если параметры и +3D-модели от производителя. + +--- + +## 7. Troubleshooting + +### 7.1. «64-bit Microsoft Access Database Engine required» + +**Причина:** Altium не смог загрузить OLE DB провайдер, указанный в DbLib +(`SQLNCLI11.1`), и fallback'нулся на общее misleading сообщение про Access. + +**Решение:** +1. Убедись, что SQLNCLI11 стоит: + `Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SQLNCLI11"` +2. Если стоит, а ошибка сохраняется — закрой Altium полностью (проверь через + Task Manager, что `X2.EXE` не висит), запусти заново. +3. Если не помогло — переустанови SQLNCLI11 с `/l*v log.txt` для диагностики: + `msiexec /i sqlncli.msi /l*v "$env:TEMP\sqlncli.log" IACCEPTSQLNCLILICENSETERMS=YES` + +### 7.2. «Connection Failed. Check your connection settings» + +**Причина:** драйвер OK, но не доходит до сервера. + +**Решение:** +1. `Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433` +2. Если False — настрой VPN (см. раздел 4.2). +3. Если True, но Altium всё равно ругается — проверь пароль в DbLib (не + скопировался ли лишний пробел), либо создай новый Server Login на портале + и скачай свежий DbLib. + +### 7.3. Views с префиксом `z_` в списке + +**Причина:** DbLib устарел, в нём есть ссылки на underlying tables, которые +не имеют Altium-совместимых колонок. + +**Решение:** скачай свежий DbLib с портала (Server Logins → Manage → DbLib), +замени свой. **Не удаляй старый до проверки нового** — если что-то пойдёт не +так, вернёшь. + +### 7.4. Components panel показывает views, но внутри пусто + +**Причина:** сетевое подключение «оборвалось» посередине загрузки (timeout +на отдельных views). + +**Решение:** +1. Закрой Altium полностью. +2. Если через VPN — проверь стабильность канала. +3. Запусти Altium, подожди полной загрузки (иногда нужен F5 в панели + `Refresh`). + +### 7.5. «Footprint not found» при Place + +**Причина:** компонент только что добавили в облачную БД, а локальные +SchLib/PcbLib ещё не обновлены. + +**Решение:** +```powershell +cd C:\Work\altium-library +git pull +git lfs pull +``` + +В Altium: `Components panel` → `Refresh (F5)`. + +### 7.6. STEP-модели не отображаются в 3D + +**Причина:** клон сделан без Git LFS, или `git lfs pull` не выполнен. + +**Решение:** +```powershell +cd C:\Work\altium-library +git lfs install +git lfs pull +``` + +Проверь размер файла `STEP\*.STEP` — рабочие модели весят 50–500 KB, +LFS-указатели — ровно 133 байта. + +### 7.7. Altium падает при открытии DbLib + +**Причина:** conflict с Altium Vault / Altium 365 workspace (попытка +загружать один и тот же компонент из двух источников). + +**Решение:** временно disconnect workspace +(`File → Altium 365 → Sign Out`), перезапусти Altium, подключи DbLib, +потом заново подключись к workspace. + +--- + +## 8. Автоматизация: production-ready установщик одной командой + +Чтобы поднять всё на новой машине одним вызовом — скрипт ниже. Запускать +**от администратора**, только после того, как уже есть скачанный с портала +DbLib. + +```powershell +#Requires -RunAsAdministrator + +param( + [Parameter(Mandatory=$true)] + [string]$RepoDir = "C:\Work\altium-library", + + [Parameter(Mandatory=$true)] + [string]$DbLibPath, # путь к скачанному из портала .DbLib + + [switch]$InstallMSOLEDBSQL # опционально поставить ещё и современный провайдер +) + +$ErrorActionPreference = "Stop" + +# 1. Git + LFS +if (-not (Get-Command git -ErrorAction SilentlyContinue)) { + winget install --id Git.Git --exact --accept-package-agreements --accept-source-agreements +} +git lfs install + +# 2. VC++ Redist +winget install --id Microsoft.VCRedist.2015+.x64 --exact --accept-package-agreements --accept-source-agreements +winget install --id Microsoft.VCRedist.2015+.x86 --exact --accept-package-agreements --accept-source-agreements + +# 3. SQLNCLI11 — ОБЯЗАТЕЛЬНО +$sqlncli = "$env:TEMP\sqlncli_x64.msi" +Invoke-WebRequest -UseBasicParsing ` + -Uri "https://download.microsoft.com/download/B/E/D/BED73AAC-3C8A-43F5-AF4F-EB4FEA6C8F3A/ENU/x64/sqlncli.msi" ` + -OutFile $sqlncli +Start-Process msiexec -ArgumentList "/i", $sqlncli, "/qn", "IACCEPTSQLNCLILICENSETERMS=YES" -Wait + +# 4. MSOLEDBSQL 19 (опционально) +if ($InstallMSOLEDBSQL) { + $msoledb = "$env:TEMP\msoledbsql.msi" + Invoke-WebRequest -UseBasicParsing ` + -Uri "https://go.microsoft.com/fwlink/?linkid=2318101" ` + -OutFile $msoledb + Start-Process msiexec -ArgumentList "/i", $msoledb, "/qn", "IACCEPTMSOLEDBSQLLICENSETERMS=YES" -Wait +} + +# 5. Клон репозитория +if (-not (Test-Path $RepoDir)) { + New-Item -ItemType Directory -Path (Split-Path $RepoDir -Parent) -Force | Out-Null + git clone https://github.com/issus/altium-library.git $RepoDir +} else { + Push-Location $RepoDir + git pull + git lfs pull + Pop-Location +} + +# 6. Копируем DbLib в папку репо +Copy-Item $DbLibPath -Destination $RepoDir -Force + +# 7. Проверки +Write-Host "`n=== Проверки ===" -ForegroundColor Cyan +$sqlncli_ver = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SQLNCLI11" -ErrorAction SilentlyContinue).InstalledVersion +Write-Host "SQLNCLI11 version: $sqlncli_ver" +$tcp = Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433 -WarningAction SilentlyContinue +Write-Host "db.altiumlibrary.com:1433 reachable: $($tcp.TcpTestSucceeded)" +if (-not $tcp.TcpTestSucceeded) { + Write-Warning "Порт 1433 недоступен — настрой VPN (см. раздел 4.2 инструкции)" +} + +Write-Host "`nГотово. Открывай Altium → Components panel → File-based Libraries Preferences → Install → $DbLibPath" -ForegroundColor Green +``` + +Запуск: +```powershell +.\install-celestial.ps1 -DbLibPath "$env:USERPROFILE\Downloads\Celestial_Altium_Library_-_altium_library.DbLib" +``` + +--- + +## 9. Ссылки + +- Celestial Library портал: +- GitHub репозиторий: +- Get Started: +- Troubleshooting: +- Discord сообщества: +- Mark Harris (автор): + +### Microsoft — прямые ссылки на MSI + +- SQL Server Native Client 11 x64: + +- MSOLEDBSQL 19 x64 + Arm64: + +- MSOLEDBSQL 19 x86: + +- VC++ Redist 2015-2022 x64: + +- VC++ Redist 2015-2022 x86: + + +--- + +## 10. Changelog этой инструкции + +| Дата | Изменения | +|---|---| +| 2026-04-18 | Первая версия. Проверено на Altium Designer 26.4.1, Windows 11, MSOLEDBSQL 19.4.1.0, SQLNCLI 11.4.x. |