📐 CATIA V5 VBA макрос — выравнивание выносок (Balloons) в чертежах Drafting
📐 CATIA V5 VBA — автоматическое выравнивание Balloons в чертежах Drafting В этом видео показан VBA-макрос VBAProjectAlignBalloons для CATIA V5, который помогает автоматически выравнивать выноски / позиционные обозначения (Balloons) вдоль выбранной линии и уменьшать пересечения линий-указателей (Leaders). 🔗 GitHub — исходный код и готовый `.catvba`: https://github.com/ivashinpavel07/CATIA-V5-VBA-Align-Balloons --- 🧩 В чём проблема стандартного выравнивания? В CATIA V5 Drafting Design команда позиционирования элементов (Element Positioning) имеет ограниченные возможности при работе с Balloons. При автоматическом размещении большого количества позиций можно получить ситуацию, когда: ✔️ Balloons выровнены геометрически, но расположены в неудачном порядке; ✔️ линии-указатели Leaders пересекаются между собой; ✔️ после автоматической расстановки требуется ручная корректировка; ✔️ оформление сборочного чертежа занимает дополнительное время. Поэтому задача макроса — не просто поставить Balloons на одну линию, а подобрать более подходящий порядок их размещения. --- ⚙️ Как работает макрос Работа выполняется через немодальную пользовательскую форму **UserForm**, поэтому окно макроса можно оставить открытым и одновременно продолжать выбирать объекты непосредственно в чертеже CATIA. ### 1️⃣ Задаётся линия выравнивания Пользователь выбирает в чертеже объект `Line2D` и нажимает: 📍 «Извлечь координаты линии» Макрос получает координаты: `StartPoint → X1, Y1` `EndPoint → X2, Y2` Таким образом определяется направление и длина линии, вдоль которой будут размещаться Balloons. ### 2️⃣ Выбираются позиционные обозначения После нажатия: 📐 «Выровнить позиции вдоль линии» макрос запускает интерактивный множественный выбор объектов. Обрабатываются `DrawingText`, у которых имеется как минимум один `DrawingLeader`. ### 3️⃣ Рассчитываются точки размещения Если выбрано `N` Balloons, линия делится на `N + 1` равных интервалов. За счёт этого позиции распределяются равномерно **между начальной и конечной точками линии**, а не ставятся непосредственно на её концах. ### 4️⃣ Анализируется геометрия Leaders Для каждого Balloon макрос получает точку привязки первого Leader: `Leaders.Item(1)` Для очередной будущей позиции строится направление: `Target Point → Leader Anchor Point` После этого вычисляется угол относительно направления линии выравнивания. ### 5️⃣ Определяется порядок Balloons Макрос сравнивает оставшиеся позиции и выбирает Balloon в соответствии с рассчитанной геометрией. Выбранный Balloon переносится в текущую точку, исключается из дальнейшего анализа, после чего алгоритм переходит к следующей позиции. 🔄 Процесс повторяется до размещения всех выбранных Balloons. --- 🔀 Почему становится меньше пересечений Leaders? Макрос не выполняет прямую геометрическую проверку пересечения каждой пары линий-указателей. Вместо этого он пытается согласовать: **порядок Balloons на линии ↔ расположение точек привязки их Leaders** То есть вместо случайного или последовательного размещения позиционные обозначения переставляются в соответствии с геометрией их Anchor Points. Благодаря этому во многих типовых ситуациях удаётся существенно уменьшить количество перекрёстных Leaders и получить более читаемый чертёж. --- 🚀 Что даёт макрос ✔️ автоматическое выравнивание нескольких Balloons; ✔️ одинаковый шаг между позициями; ✔️ изменение порядка Balloons с учётом геометрии Leaders; ✔️ уменьшение количества пересечений линий-указателей; ✔️ меньше ручной корректировки; ✔️ более быстрое оформление сборочных чертежей. --- 📦 GitHub В репозитории доступны: • готовый `VBAProjectAlignBalloons.catvba`; • исходный код VBA; • `ModuleAlignBalloons.bas`; • `UserFormAlignBalloons.frm`; • ресурсы UserForm; • GIF с демонстрацией работы; • описание алгоритма. 🔗 https://github.com/ivashinpavel07/CATIA-V5-VBA-Align-Balloons 🎞 Последняя опубликованная версия: https://github.com/ivashinpavel07/CATIA-V5-VBA-Align-Balloons/releases/latest --- ⚠️ Текущие ограничения • анализируется первый Leader каждого `DrawingText`; • при наличии нескольких Leaders остальные пока не участвуют в расчёте; • прямой алгоритм определения геометрического пересечения Leaders не используется; • на сложных чертежах после автоматического размещения может потребоваться небольшая ручная корректировка. 💡 В дальнейшем алгоритм можно развивать: добавить непосредственную проверку пересечений, анализ коллизий с геометрией вида и дополнительные режимы позиционирования. #CATIA #CATIAV5 #VBA #Macro #Drafting #CAD #Automation #Balloons
Название:
📐 CATIA V5 VBA макрос — выравнивание выносок (Balloons) в чертежах Drafting
Категория:
Разное