Re: Как устроены современные САПР, 3Д редакторы внутри?
От: BlackEric http://black-eric.lj.ru
Дата: 10.03.24 18:11
Оценка:
Здравствуйте, CleverBoy, Вы писали:

Я бы начал с изучения исходников открытых САПР. KiCad EDA A Cross Platform and Open Source Electronics Design Automation Suite.
Наверняка есть что-то ещё.

Но обычно части кода выносятся в библиотеки и потом переиспользуются.
Ну и что бы влиять на проект нужно с должности разработчика подняться повыше. А будете ли вы на этой должности открывать иде вопрос открытый.
https://github.com/BlackEric001
Re: Как устроены современные САПР, 3Д редакторы внутри?
От: Wawan Россия http://www.wawan.ru/resume
Дата: 10.03.24 20:35
Оценка: :))
дай нейронным связям успевать расти отражая структуру проекта у тебя в голове, расслабиться, античный код это другой мир где нет места суете
Re: Как устроены современные САПР, 3Д редакторы внутри?
От: cppguard  
Дата: 11.03.24 01:06
Оценка: 2 (1)
Здравствуйте, CleverBoy, Вы писали:

CB>Не хочется изобретать "велосипед"...


А придётся =) Если отбросить всякую экзотику, то можно сказать, что современные САПР вращаются вокруг твердотелого моделирования. Это когда аналитически тело рассматривается как сплошное, хотя на экран по-прежнему выводятся только видимые грани. Из открытых проектов можно глянуть Open Cascade, который, несмотря на открытость, разрабатывается не фриками-гиками, а вполне себе мамонтами от мира промышленной автоматизации. Кто-то говорит, что Open Cascad технологически сильнее закрытых решений. Ядром большинства САПР как раз является ядро твердотелого моделирования (solid body modelling), все более-менее серьёзные программи пишут либо свои, либо лицензируют чужие. Вторым важным компонентом современного САПРа является решатель (solver) систем ограничения. Он нужен как для разрешения ограничений в процессе разработки эскиза (sketch), так и для моделирования ограничений в сборке (assembly). Собственно, имея в наличии ядро и решатель, собрать аналог солида или компаса не составляет труда. Дьявол как всегда в деталях =)

Что касается изучения кода. Есть FreeCAD и SolveSpace — вполне себе годные программы, их код можно посмотреть. Злые языки говорят, что они для баловства, но реально промышленные САПР вырываются вперёд за счёт всяких плюшек, которых нет у свободных решений. А базовое моделирование оно у всех одинаковое. Ещё есть OpenSCAD — язык программирования для твердотелого моделирования. Не знаю, насолько изучение этого проекта будет полезно, ведь там, по сути, просто вызовы стандартных функций ядра. Но тоже можно глянуть. Если говорить про САПР как про предметную область (моделирование отношений, БД), то внезапно есть несколько старых годных книжек конца СССР. Например, "Теоретические основы САПР", 1987г. за авторством Корячко, Курейчик, Норенков. Насколько они актуальны, сказать не могу, но, как говорится, на безрыбье... =)

Наконец, для ознакомления с рынком, терминами и прочими понятиями нормальных пацанов, я рекомендую бегло почитать dwg.ru и isicad.ru.
Re: Как устроены современные САПР, 3Д редакторы внутри?
От: no_ise  
Дата: 11.03.24 06:50
Оценка:
Здравствуйте, CleverBoy, Вы писали:

CB>Всем привет,

CB>Волею судеб...
CB>Вот и хочется посмотреть, а как это делают монстры. Solid, Autocad и т.д.


Давно это было, помнится, в ObjectArx достаточно много всего, именно как все внутри... такая же архитектура у многочисленных клонов AutoCad

https://help.autodesk.com/view/OARX/2024/ENU/?guid=GUID-9B4F6629-8B7D-460B-802B-6D2C25966994
Re[5]: Как устроены современные САПР, 3Д редакторы внутри?
От: CleverBoy Россия  
Дата: 11.03.24 11:00
Оценка:
ЗP>Возьмите за правило выполнять мелкий рефакторинг что бы вы ни меняли. Месяца через три начнете получать первые результаты

Вот казалось бы простой вопрос:
Представим себе окно SolidWorks с открытой 3Д моделькой трамвая.
И там нажимаем правой кнопкой мыши, должно появиться меню с командами.
Команды работы с 3Д примитивами, с объектами предметной области, общие команды ко всему объекту.

Кто, где, как формирует это меню?
Из глобального списка команд? или у каждого объекта свой маленький список? или как?
Вот такие мелкие вопросы/ответы и хотелось подглядеть у монстров.
Таких вопросов у меня сотни.

Рефакторить хочется в "глобально правильном" направлении.
Не хочется сразу же переделывать свои новоизобретенные "велосипеды"
Re[6]: Как устроены современные САПР, 3Д редакторы внутри?
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.03.24 15:41
Оценка:
Здравствуйте, CleverBoy, Вы писали:

CB>Вот казалось бы простой вопрос:

CB> Представим себе окно SolidWorks с открытой 3Д моделькой трамвая.
CB>И там нажимаем правой кнопкой мыши, должно появиться меню с командами.
CB>Команды работы с 3Д примитивами, с объектами предметной области, общие команды ко всему объекту.

Мне трудно представить SolidWorks, но я могу представить САПР которым занимался более 10 лет

CB>Кто, где, как формирует это меню?


Меню обычно прописывается в конфигурации, типа такого
{
Id
Title
Hotkey
items: [
{ Title, идентификатор-команды, hot-key, дефолтный статус },
{ Title идентификатор-команды hot-key, subMenu: id-of-submenu }
]
}

Все что вам надо — знать идентификатор.

По каждой команде вам надо знать
1. доступна ли , если да, то показываете
2. включена-отключена, если отключена — показываете в дизабленом виде
3. статус — например, переключение слоев — галочка будет нарисована рядом с текущим слоем

По суб-меню — возможность добавлять по месту, в зависимости от контекста, для группировки конкретных действий

Каждое меню — возможность добавлять айтемы по месту, в зависимости от контекста

CB>Из глобального списка команд? или у каждого объекта свой маленький список? или как?


Все что в глобальном меню — это глобальный список
Контекстное меню — прописано в глобальном с указанием контенкста

CB>Вот такие мелкие вопросы/ответы и хотелось подглядеть у монстров.

CB>Таких вопросов у меня сотни.

Валяйте сюда

CB>Рефакторить хочется в "глобально правильном" направлении.

CB>Не хочется сразу же переделывать свои новоизобретенные "велосипеды"
о
Тулбары, кстати говоря, и многие кнопки на ui ничем от пунктов меню не отличаются — те же Title, идентификатор-команды, hot-key, статус

Со всей этой кунсткамерой, а такого будет несколько сотен минимум, нужен внятный механизм обновления,что бы состояние кнопок хорошо менялось

Я бы предложил классический MVC в качестве архитектуры, к нему проще всего привести древнее приложение.

Тут понадобится внятная модель приложения, через которую легко вычислять состояние любой команды

Как только сможете нарисовать такое, и реализовать, можно потиху начать развязывать компоненты через неё.

Главное правило — не пихать в модель приложения вообще всё состояние. Упоретесь задолго до окончания отладки и коллеги вас не поймут
Re[6]: Как устроены современные САПР, 3Д редакторы внутри?
От: Stanislav V. Zudin Россия  
Дата: 12.03.24 16:53
Оценка:
Здравствуйте, CleverBoy, Вы писали:

ЗP>>Возьмите за правило выполнять мелкий рефакторинг что бы вы ни меняли. Месяца через три начнете получать первые результаты


CB>Вот казалось бы простой вопрос:

CB> Представим себе окно SolidWorks с открытой 3Д моделькой трамвая.
CB>И там нажимаем правой кнопкой мыши, должно появиться меню с командами.
CB>Команды работы с 3Д примитивами, с объектами предметной области, общие команды ко всему объекту.

CB>Кто, где, как формирует это меню?

CB>Из глобального списка команд? или у каждого объекта свой маленький список? или как?

Присоединюсь к мнению камрада Pauelа про MVC.

Поверх модели может быть несколько контроллеров (будут ли они взаимодополнять или заменять друг друга — вопрос на подумать).
С каждым контроллером может работать несколько видов.

3Д моделька трамвая отображается в какой-то вьюхе. У вьюхи есть обработчик событий (конечный автомат, обрабатывающий действия с мышой и клавой, их может быть много, иногда их полезно собирать в стек).
Скажем, обработчик сгенерил событие "Popup menu request". По координатам курсора находим активный объект — это может быть выделенная деталь трамвая, сам трамвай или рабочее поле. У активного объекта можно запросить это самое Popup menu.
В зависимости от контекста это меню может доставаться по идентификатору из ресурсов, а может генериться в рантайме. (ООП: инкапсуляция, полиморфизм, бла-бла-бла )

Если ты переключишься из 3Д в 2Д или в режим редактирования/ввода данных/поиска/и т.п., то у тебя может активироваться другой обработчик событий или возможно другая вьюха. У который будет другая логика обработки событий.

CB>Вот такие мелкие вопросы/ответы и хотелось подглядеть у монстров.

CB>Таких вопросов у меня сотни.

В старых системах точно не стоит черпать вдохновение

Можно посмотреть на опенсорсные редакторы. Векторная графика, САПРы. Кикад и inkscape уже упомянули.
Но в их кишках я не копался, может оказаться, что там будет пример как делать не следует

CB>Рефакторить хочется в "глобально правильном" направлении.



Примерный роадмап наверняка известен, т.е. куда придётся расти ты знаешь.
Можно прикинуть, что потребуется от системы, в эту сторону и расти.
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: Как устроены современные САПР, 3Д редакторы внутри?
От: σ  
Дата: 12.03.24 18:04
Оценка:
C>Кто-то говорит, что Open Cascad технологически сильнее закрытых решений.



Наверное можно найти такие закрытые решения, но вообще OpenCASCADE известен своей любовью превращаться в тыкву от любых малость нетривиальных вещей
  Скрытый текст
Вчера попытался добавить fillet и словил сегфолт.
Re[3]: Как устроены современные САПР, 3Д редакторы внутри?
От: cppguard  
Дата: 12.03.24 23:05
Оценка:
Здравствуйте, σ, Вы писали:

σ>Наверное можно найти такие закрытые решения, но вообще OpenCASCADE известен своей любовью превращаться в тыкву от любых малость нетривиальных вещей


Я просто процитировал чьё-то мнение =) По мне так, оба подхода имеют права на жизнь. Коммерческие САПРы нужно пиратить или покупать за овердофига, но при этом FreeCAD не умеет строить оси симметрии, без чего сложно представить промышленное проектирование. Но при этом FreeCAD достаточно лёгкий, поэтому если мне нужно что-то для дома сделать, я его запускаю. Про аналоги OpenFOAM я вообще не говорю — подобные коммерческие решения стоят как годовой бюджет моего города. Так что приходится как-то балансировать. Я даже в последнее время Компас полюбил, потому что он всё таки с ГОСТ-ом дружит гораздо лучше Солида, но это не отменяет того, что Компас пишут деды из девяностых, поэтому и интерфейс вырвиглазный и тяжёлое ядро.
Re[4]: Как устроены современные САПР, 3Д редакторы внутри?
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.03.24 16:12
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Я просто процитировал чьё-то мнение =) По мне так, оба подхода имеют права на жизнь. Коммерческие САПРы нужно пиратить или покупать за овердофига, но при этом FreeCAD не умеет строить оси симметрии, без чего сложно представить промышленное проектирование. Но при этом FreeCAD достаточно лёгкий, поэтому если мне нужно что-то для дома сделать, я его запускаю.

У меня с FreeCAD непонимание прямо с самого начала. Это не первая CAD-программа, которую я осваиваю, но первая, в которой у меня такое сильное желание разбить клавиатуру о монитор.

Примерно в чём угодно нарисовать 2d или 3d чертёж, скажем, дома, или стола, или ещё чего нибудь, проблемы не составляет. Но во FreeCAD — какая-то наркомания. Буквально всё — от структуры меню до моторики клавиатуры и мыщи — сделано максимально противоестественным способом
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Как устроены современные САПР, 3Д редакторы внутри?
От: Slipstream  
Дата: 14.03.24 02:08
Оценка:
Если совсем глобально, то обычно есть как минимум два "слоя", но иногда больше: модель и "представление".
В "простом" случае 3D рисовалки в модели будут лежать объекты геометрического ядра (наприрмер, C3D), а в представлении будут 3D-меши, пригодные для визуализации.

На практике представление может состоять из набора (дерева) объектов, которые иногда один в один, а иногда не один в один отображают объекты модели.
В эти объекты можно тыкать (через еще один слой, связанный непосредственно с визуализацией) и вызывать на них команды.
Должны ли объекты-представления сами знать о своих командах, или команды знают о представлениях (или только о моделях) -- решайте. В разных случаях удобно по-разному.

Там вам советовали конфиг-файлы с командами. Так обычно и делают, но мне всегда больше нравилось иметь фактически то же самое, только в коде.
Без возможности заменить без компиляции; зато с проверками, навигацией и пр.
Тем более, что и миллениалы недавно изобрели "configuration as code"

Вам рассказывали про геометрические ядра и решатели. С учетом того, что у вас "геология", скорее всего твердотельного моделирования у вас и нет, и оно не нужно.

Вам советовали Фаулера и Мартина. Лично мне нравятся книжки, в которых рассказывается про General Responsibility ASsignment Principles.
Может быть понравятся и вам, тем более, что вопросы у вас именно токого рода, типа как чья ответственность предоставлять команды.
Re[5]: Как устроены современные САПР, 3Д редакторы внутри?
От: cppguard  
Дата: 14.03.24 08:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Примерно в чём угодно нарисовать 2d или 3d чертёж, скажем, дома, или стола, или ещё чего нибудь, проблемы не составляет. Но во FreeCAD — какая-то наркомания. Буквально всё — от структуры меню до моторики клавиатуры и мыщи — сделано максимально противоестественным способом


Не могу согласиться про мышь. Там ведь внизу есть варианты раскладок самые разные. Мне вот очень нравится "Touchpad", в которой зажимаешь Alt и крутишь без нажатия кнопки, а с Shift — перемещаешь. Для работы с ноута это самая лучшая комбинация. Насчёт меню — трудно сказать. Меня пугает меню компаса и солида, потому что выглядит как неубранный стол, хотя я согласен, что во фрикаде не хватает графических элементов в меню настройки инструментов моделирования.

В целом я пока решил так: FreeCAD для 3D печати, потому что быстрее и проще, а Солид и Компас для машинной обработки, потому что позволяют очень точно задать различные параметры. И объём работы, который требуется, чтобы довести FreeCAD до возможности сразу засылать деталь в ЧПУ (или хотя бы сгенерировать чертёж по ГОСТ) — колоссальный, поэтому не вижу, что в ближайшем будущем ситуация изменится.
Re[2]: Как устроены современные САПР, 3Д редакторы внутри?
От: Maniacal Россия  
Дата: 14.03.24 08:39
Оценка:
Здравствуйте, Qulac, Вы писали:

CB>>Не хочется изобретать "велосипед"...


Q>Мне кажется, что такие штуки внутри должны быть похожи на 3d — игрушки.

Я один раз решил подебажить софтайсом Quake1 (не помню зачем). Там просто перемалывалка скриптов. Одна и та же функция с соответствующим ветвлением используется в цикле для всего. Сейчас исходники, вроде, в открытом доступе, как делать нечего будет, может, гляну на код с другого конца.
Re[6]: Как устроены современные САПР, 3Д редакторы внутри?
От: Wawan Россия http://www.wawan.ru/resume
Дата: 14.03.24 09:26
Оценка: +2 :)
Здравствуйте, CleverBoy, Вы писали:
CB>Кто, где, как формирует это меню?
CB>Из глобального списка команд? или у каждого объекта свой маленький список? или как?
CB>Вот такие мелкие вопросы/ответы и хотелось подглядеть у монстров.

ох уж эти муки выбора
возьми монетку, орел — вариант А. решка — вариант Б
подбрасывай
если пока она летит в голове внезапно появилась мысль "только бы не орел" или "только бы не решка" — то выбор то уже на самом деле сделан и наконец-то услышан.
если в голове тишина значит делай как выпадет монета, варианты одинаковые
не благодари
Re[6]: Как устроены современные САПР, 3Д редакторы внутри?
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.03.24 14:23
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Не могу согласиться про мышь. Там ведь внизу есть варианты раскладок самые разные.

Все слова знакомые, но я ни слова не понял.
С мышью у меня основные претензии к тому, что она мешает клавиатуре. Ну вот я пытаюсь сделать самую простую в мире вещь — в режиме Draft нарисовать ломаную нужной мне формы. Естественно, размеры сегментов мне нужно вводить в миллиметрах с клавиатуры, ведь пытаться "накликать" их мышкой — безумие.
Но в диалоге, который про ввод координат, клавиатура работает очень странно — иногда Enter эквивалентен нажатию "Ok", иногда — нет. Иногда пробел — это Ok, иногда — "сделать предпоследний сегмент невидимым".
Поэтому нажимать Ok надо мышкой. Но каждое движение мышкой затирает только что введённые в окошки X и Y координаты
Большей упоротости я не встречал вообще нигде. Вот просто если бы передо мной поставили задачу "спроектировать CAD, которой невозможно пользоваться", то я бы не сдюжил сделать ещё хуже.

Ладно, может быть, авторы этого бреда рассчитывали на то, что я всё же буду вводить контуры мышкой, при помощи снэппинга?
Агащаспрям. Вот я начал сегмент с предыдущей точки, хочу опустить перпендикуляр на существующую прямую. Например, вертикальный сегмент подвожу к горизонтальной линии. Подводим мышку поближе к целевой линии... Ага, программа "понимает", что я неспроста сюда повёл курсором — она мне "помогает" при помощи частичного снэппинга. Вот только фризит она ровно противоположную координату — то есть замораживает X, хоть он и не попал на вертикаль, зато даёт "играть" Y-ком, при котором невозможно попасть точно в заданную прямую.

Ну, допустим, я не заметил этого подвоха, и кликнул — получился у меня сегмент, который идёт под углом 89.5 к прямой, и его конец лежит не на этой прямой, а на полпиксела в сторону.
Наверное, есть какой-то простой способ это исправить? Ну там, пододвинуть одну из точек ломаной?
Лично я — не нашёл. То ли я дебил, то ли структура контекстных меню упоротая.

С учётом того, что я успешно освоил DesignSpark и ArchiCAD, не говоря уже о SkethUp, я склоняюсь ко второму варианту.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как устроены современные САПР, 3Д редакторы внутри?
От: CleverBoy Россия  
Дата: 15.03.24 04:57
Оценка:
S>Вам советовали Фаулера и Мартина. Лично мне нравятся книжки, в которых рассказывается про General Responsibility ASsignment Principles.
S>Может быть понравятся и вам, тем более, что вопросы у вас именно токого рода, типа как чья ответственность предоставлять команды.

О, персональное большое спасибо!
Почитал выжимки, да, наверно это как раз для меня.
Но так тяжело, сразу в голове, применить это к чужому "макароно" коду в миллионы строк.
Буду больше читать про GRASP и пробовать.
Re[7]: Как устроены современные САПР, 3Д редакторы внутри?
От: Wawan Россия http://www.wawan.ru/resume
Дата: 15.03.24 11:41
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, cppguard, Вы писали:


C>>Не могу согласиться про мышь. Там ведь внизу есть варианты раскладок самые разные.

S>Все слова знакомые, но я ни слова не понял.
S>С мышью у меня основные претензии к тому, что она мешает клавиатуре. Ну вот я пытаюсь сделать самую простую в мире вещь — в режиме Draft нарисовать ломаную нужной мне формы. Естественно, размеры сегментов мне нужно вводить в миллиметрах с клавиатуры, ведь пытаться "накликать" их мышкой — безумие.
S>Но в диалоге, который про ввод координат, клавиатура работает очень странно — иногда Enter эквивалентен нажатию "Ok", иногда — нет. Иногда пробел — это Ok, иногда — "сделать предпоследний сегмент невидимым".
S>Поэтому нажимать Ok надо мышкой. Но каждое движение мышкой затирает только что введённые в окошки X и Y координаты
S>Большей упоротости я не встречал вообще нигде. Вот просто если бы передо мной поставили задачу "спроектировать CAD, которой невозможно пользоваться", то я бы не сдюжил сделать ещё хуже.

S>Ладно, может быть, авторы этого бреда рассчитывали на то, что я всё же буду вводить контуры мышкой, при помощи снэппинга?

S>Агащаспрям. Вот я начал сегмент с предыдущей точки, хочу опустить перпендикуляр на существующую прямую. Например, вертикальный сегмент подвожу к горизонтальной линии. Подводим мышку поближе к целевой линии... Ага, программа "понимает", что я неспроста сюда повёл курсором — она мне "помогает" при помощи частичного снэппинга. Вот только фризит она ровно противоположную координату — то есть замораживает X, хоть он и не попал на вертикаль, зато даёт "играть" Y-ком, при котором невозможно попасть точно в заданную прямую.

S>Ну, допустим, я не заметил этого подвоха, и кликнул — получился у меня сегмент, который идёт под углом 89.5 к прямой, и его конец лежит не на этой прямой, а на полпиксела в сторону.

S>Наверное, есть какой-то простой способ это исправить? Ну там, пододвинуть одну из точек ломаной?
S>Лично я — не нашёл. То ли я дебил, то ли структура контекстных меню упоротая.

у меня бы нервов не хватило такой квест проходить
я думаю все CAD системы такие, потому что интерфейс делают тоже программисты (мы же гении во всём), а это боль и страдания для пользователей, а у пользователей нет выбора, что фирма купила — там и рисуйте!
вот бы собирать статистику сколько раз пользователь матерится пытаясь что-то сделать, но вряд ли такое есть, разработчики не хотят расстраивать начальство, и начальство себя.
могу только посочувствовать
Re[8]: Как устроены современные САПР, 3Д редакторы внутри?
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.03.24 11:54
Оценка:
Здравствуйте, Wawan, Вы писали:

W>у меня бы нервов не хватило такой квест проходить

Ну, вот у меня и не хватает. Хорошо, что клавиатура прочная
W>я думаю все CAD системы такие, потому что интерфейс делают тоже программисты (мы же гении во всём), а это боль и страдания для пользователей, а у пользователей нет выбора, что фирма купила — там и рисуйте!
То-то и оно, что не все. Вот DesignSpark — очень понятная. Мне там тоже пришлось пару раз гуглить, как что-то сделать, но как только освоил парочку базовых вещей — дальше всё очень интуитивно. Нарисовал 2d, заэкструдил, а потом есть всего несколько базовых манипуляций типа push/pull, move, и т.д. которые консистентно применяются ко всему. И состряпать произвольный 2d или 3d объект не особо сложно — при помощи алгебры.
Скажем, нужно сделать отверстие под шуруп с головкой-невидимкой — нет проблем: нарисовал контур на нужной грани, "продавил" его при помощи push, а потом сделал push круглого ребра и получил фаску. Все места, которые можно сделать "мышкой", продублированы клавиатурой — если мне нужен точный размер, то я просто его ввожу и нажимаю Enter. Всё работает как надо.
То же самое — SketchUp, хоть и чуть менее управляемо — там надо наловчиться ловить мышкой нужные режимы выравнивания.

W>вот бы собирать статистику сколько раз пользователь матерится пытаясь что-то сделать, но вряд ли такое есть, разработчики не хотят расстраивать начальство, и начальство себя.

W>могу только посочувствовать
Спасибо.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Как устроены современные САПР, 3Д редакторы внутри?
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.03.24 15:41
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Но в диалоге, который про ввод координат, клавиатура работает очень странно — иногда Enter эквивалентен нажатию "Ok", иногда — нет. Иногда пробел — это Ok, иногда — "сделать предпоследний сегмент невидимым".

S>Поэтому нажимать Ok надо мышкой. Но каждое движение мышкой затирает только что введённые в окошки X и Y координаты
S>Большей упоротости я не встречал вообще нигде. Вот просто если бы передо мной поставили задачу "спроектировать CAD, которой невозможно пользоваться", то я бы не сдюжил сделать ещё хуже.

UI у любого CAD чудовищно сложный, развесистый. Там столько мелкой моторики отлаживать, что практически всегда есть выбор, чем же можно не заниматься. Количество команд всех сортов ищет на тысячи.
Соответственно, когда появляются сложности с монетизацией, UI начинает пополняться фичами плохо спроектироваными, плохо реализованными и так же плохо протестированными.
Я помню, как у нас было — чудовищное количество автоматических UI тестов работало хрен знает сколько времени. На одного разработчика приходилось по нескольку тестировщиков.
Команда тестировщиков чуть не хором благодарила разработчка, когда он соптимизировал код и один из тестов из 6 часов стал проходить всего 30 минут.
Отредактировано 16.03.2024 15:42 Pauel . Предыдущая версия .
Re[7]: Как устроены современные САПР, 3Д редакторы внутри?
От: cppguard  
Дата: 18.03.24 00:03
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Ну, допустим, я не заметил этого подвоха, и кликнул — получился у меня сегмент, который идёт под углом 89.5 к прямой, и его конец лежит не на этой прямой, а на полпиксела в сторону.

S>Наверное, есть какой-то простой способ это исправить? Ну там, пододвинуть одну из точек ломаной?
S>Лично я — не нашёл. То ли я дебил, то ли структура контекстных меню упоротая.
Про Draft ничего не скажу, я пользуюсь только Sketcher. Я думал, что претензия к управлению камерой. Про упоротость элементов UI я согласен. Меня максимально раздражает то, что иногда Esc в Sketcher деактивирует текущий инструмент, а иногда — закрывает скетч. Можно отменить закрытие скетча по Esc в настройках, но тогда начинает раздражать то, что нельзя быстро отредактировать эскиз и закрыть =)

S>С учётом того, что я успешно освоил DesignSpark и ArchiCAD, не говоря уже о SkethUp, я склоняюсь ко второму варианту.

У меня прямо противоположный опыт. Что Солид, что Компас тупят и не всегда делают то, что я хочу, потому что или выделение не там, или фокус не на том поле. Для меня это и вышеописанное поведение FreeCAD находятся примерно на одном уровне. Но я привык в целом, потому что задачи чертить на скорость нет, а в неспешном режиме работы не так напрягает.

Кстати, поведение FreeCAD при TNP мне нравится больше чем 100500 ошибок, которые генерирует Солид. Я сперва не мог понять, что за Topological Naming Problem, о которой все говорят, а потом как понял: все боятся поехавшей геометрии. Для меня же вполне ожидаемо, что при изменении топологии базового объекта, все зависимые модификации поломаются. И я спокойно спускаюсь вниз по дереву и обновляю привязки. Но Солид при этом выдаст несколько страшных окон и звуковую ошибку, словно я поделил на ноль.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.