Forge
markdowne8ad0934
1# Fundamentals: модели расширений CAD (v1)
2
3**Мир:** `engineering.cad`
4
5---
6
7## Scope
8
9Как **типы API** соотносятся с языком, деплоем и отладкой — обобщённо для multi-CAD .NET-плагинов.
10
11---
12
13## Core concepts
14
15### 1) Managed .NET plugin (основной контур)
16
17- **Class library** (DLL), загружаемая хостом САПР.
18- Ссылки на interop/API DLL вендора (`HintPath`).
19- Конфигурации MSBuild: `Debug_<ProductVer>`, `Release_<ProductVer>` + define (`E3D310`, `ADM19`, `NC26.0`, …).
20- Отладка: attach к процессу САПР, подготовка окружения (addins path, env vars).
21
22### 2) ObjectARX (native, AutoCAD)
23
24- C++ проекты, заголовки в `ObjectArx/<year>/inc`.
25- Отдельный toolchain, версия ARX **жёстко** привязана к версии AutoCAD.
26- Не смешивать с managed без явной границы (mixed mode — редко и сложно).
27
28### 3) AVEVA PML / .NET mix
29
30- **PML** — макросы/скрипты в среде AVEVA.
31- **.NET addins** — `Aveva.Core`, UI framework, database filters.
32- Константы `AVEVA_CORE_LIBS`, `ADM`, `E3D` в csproj выбирают **набор ссылок**.
33
34### 4) Tekla Open API
35
36- NuGet-пакет с набором `Tekla.Structures.*.dll`.
37- Версия пакета ↔ год Tekla (`2020.0.2` ↔ TS 2020).
38- Плагины Model / Drawing / Catalog — разные entry points, общие NuGet.
39
40### 5) Self-contained утилиты рядом с плагином
41
42- Иногда отдельный **exe/dll** (например SQL logging) выносится из общей библиотеки, чтобы не тянуть зависимости в основной addin.
43- Деплой: набор файлов рядом с addin + опциональный **внешний** config для строки подключения *(не публиковать в KB)*.
44
45---
46
47## Anti-patterns
48
49- Копировать NuGet Tekla в «общий References» без версии — конфликт с другими годами TS.
50- Один `AnyCPU` для всех AVEVA addins — многие продукты **x86**.
51- Хардкодить секреты в репозиторий вместо локального config-файла в деплое.
52
53---
54
55## Links
56
57- [kb-cad-platforms-fundamentals-v1.md](kb-cad-platforms-fundamentals-v1.md)
58- [kb-cad-build-references-fundamentals-v1.md](kb-cad-build-references-fundamentals-v1.md)
59
60**Версия:** v1.0 · 2026-06-04
61
View only · write via MCP/CIDE