LINUX.ORG.RU

LibreCAD 2.2.1

 , , , ,


1

3

4 января, после более двух лет разработки, состоялся стабильный выпуск 2.2.1 кроссплатформенной 2D САПР LibreCAD, написанной на языке C++ с использованием фреймворка Qt, и распространяемой по лицензии GNU GPL 2.

Список основных изменений:

  • Добавлено создание параболы (экспериментально).
  • Добавлена поддержка систем письма справа налево (но ещё требуется работа над цифрами).
  • Добавлено отображение области штриховки в диалоге имеющихся штриховок.
  • Добавлены дерево слоев, палитра пера и множество новых методов рисования.
  • Добавлена подсветка линий при наведении курсора на объекты.
  • Добавлен новый инструмент DimArc.
  • Рефакторинг реализации рендеринга для повышения производительности и улучшения внешнего вида.
  • Многочисленные улучшения графического интерфейса и командной строки.
  • Исправлен ряд ошибок.

>>> Список изменений версии 2.2.1 на GitHub

★★★★★

Проверено: hobbit ()
Ответ на: комментарий от hobbit

Ну я конечно понимаю, что для людей очевидные вещи могут быть откровением, я же лет 15 сижу на ЛОРе)) Но вообще-то, флагманские профессиональные CAD под виндой(!) не имеют проблем на этом экране, а мега-CAD наш свободный слишком нетакусик, чтобы работать на таком старье. Ну это же смешно)))

Насчет багтрекера я обдумываю, но тут есть проблема посерьезнее - это иконки. Вот эти идиотские иконки, когда их лет 15 назад запилили, то в багтрекер писали, ещё как писали. Но - они до сих пор такие. Это значит для меня, что у авторов позиция несовместима с моей. Ну и смысл писать им.

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

А сколько негатива по этому поводу я получил на ЛОРе, «да что ты ноешь, мимо багзиллы почему промахнулся».

Я для себя в этой ситуации все доказал, что промахнулся я не зря.

Я с самого начала утверждал тогда, что если такой простой и очевидный баг они не исправляют сами, значит им ПОФИГ и писать особого смысла нет.

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

James_Holden ★★★★
()
Ответ на: комментарий от Jullyfish

Вот яркий пример, почему я не хочу писать им в багзиллу сейчас. Мне просто ответят - а что не так. Я уже это вижу.

Если люди сами не понимают очевидного, то объяснить им это крайне сложно, переубедить не получится.

James_Holden ★★★★
()
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Если люди сами не понимают очевидного

Но мне всё же интересно чего такого очевидного я не вижу. Что же с ними не так?

Из минусов я вижу, что они состоят только из двух цветов и эти цвета я поменять не могу. (Точнее вроде могу, но для этого надо использовать QT Style Sheets).

Jullyfish
()
Ответ на: комментарий от James_Holden

Также стоит написать про отсутствме стилей размеров, про отсутствие инспектора свойств… им проще qcad снова форкнуть, чем это править… с lc3 както не задалось с самого начала((

zamtmn ★★
()
Ответ на: комментарий от Jullyfish

Иконки должны быть из системной темы, меняться из настроек DE. У меня в теме ядовито-зеленого цвета для потребителей ЛСД не предусмотрено. Так почему я тут его созерцаю.

Черные линии на темно-сером фоне по-твоему, это тоже «а что не так», ну это интересная позиция.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Иконки должны быть из системной темы

Это да.. Я потыкался немного в оформление. Судя по всему, они просто закостыляли «смотрите, у нас есть stylesheet», а остальное по боку. А цвет линий у иконок, похоже, жёстко указан в *.svg файле.

Черные линии на темно-сером фоне по-твоему, это тоже «а что не так», ну это интересная позиция.

Я просто ленился это настроить. Но как оказалось, это настроить нельзя…

Jullyfish
()
Ответ на: комментарий от dataman

6 лет задад писали про черное на черном, 9 лет про иконки (хотя я помню что это ещё намного раньше 2016 года поднимали). Ага. И смысл вообще с ними общаться.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Я с самого начала утверждал тогда, что если такой простой и очевидный баг они не исправляют сами, значит им ПОФИГ и писать особого смысла нет. Меня заклевали, а потом оказалось что действительно пофиг, когда я выложил фикс и никому он был не нужен.

Даже самый увлеченный разработчик охладеет к своему творению, если годами с него не получает денег, славы и почета. А если еще и жена начнет «пилить», чтобы муженек прекратил маяться ребячеством и лучше бы подзаработал деньжат побольше, чтобы улучшить жилищные условия, к примеру, то иного и быть не может.

Весь «Гитхаб» завален подобными поделиями, на которых никогда не удастся заработать их создателям. Что же делать? - Гораздо лучше создать что-либо новенькое, ценность, за которую люди заплатят, чем бесконечно повторять и улучшать старые наработки. Какой смысл тратить силы, свободное время и свою молодость впустую? Если своих мыслей нет, то тогда следует объединиться со специалистом в отрасли и создавать новшество сообща. В случае «Либрекада» программисту нужно было объединиться с инженером-машиностроителем и оба зарабатывали бы уже прилично, занимаясь любимым делом под ласковыми взорами своих довольных жен.

Enthusiast ★★★
()
Ответ на: комментарий от James_Holden

Здорово! Я рад за вас и школу, в которой есть кому со второго класса обучать работе с такими программами!

Somebody ★★
()
Ответ на: комментарий от James_Holden

Вот яркий пример, почему я не хочу писать им в багзиллу сейчас. Мне просто ответят - а что не так. Я уже это вижу.

А может, просто не умеете объяснить, что не так? ;P :))

Somebody ★★
()
Ответ на: комментарий от Somebody

Есть вещи, которые вредно объяснять, и бесполезно. Это как раз такой случай. Не понимают - значит, пусть это будет их ярким маркером. Пусть все видят.

James_Holden ★★★★
()
Ответ на: комментарий от Jullyfish

несколько комментариев

Сплайны через точки. Это вообще проблема всех CAD’ов, как я заметил, но тут особенно больно. Их тяжело выделять, над ними почти невозможно выполнить большинство операций. Их можно превратить в полилинию, но для этого нет никакой отдельной команды.

Ну тут стоит глянуть альфу 2.2.2, там поддержка сплайнов лучше.
Например тут - https://github.com/LibreCAD/LibreCAD/releases/tag/2.2.2_alpha-latest

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

А что именно тут хотелось бы? Ну или тикет лучше в GitHub https://github.com/LibreCAD/LibreCAD/issues/new?template=Blank+issue

Есть команда Trim, чтобы обрезать отрезки. В том же Компасе можно просто зажать указателем и провести линию, чтобы обрезать сразу много линий. Тут приходится яростно клацать мышью.

В 2.2.1 есть команда Break/Divide (трим по пересечениям), Trim по линии будет в 2.2.2

Нет масштабирования по опорному отрезку.

Не могли б развернуть о чем речь? В 2.2.2 есть команда Align By Reference, не оно?

Конточек не хватает

ммм? Не очень понимаю, не могли б развернуть?

каких-нибудь касательных к окружности, или продолжение линии.

Так есть же ж?

Спасибо!

sand1024
()
Ответ на: комментарий от Jullyfish

Доработали сплайны через точки. Нормально выделение и, хотя бы, отдельную команду для превращения в полилинию с указанием количества точек.

Да, это запланировано

Можно было бы делать чертёж для компенсации радиуса фрезы в два клика.

Ну конечно можно использовать offset/polyline offset, но это конечно костыль.. или я не очень понимаю о чем тут речь, если есть пример - разверните.

trim линией.

Это в процессе, будет

Взаимодействие с командной строкой без линии.

Тут бы хотелось подробностей

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

Записывать - ну пока нельзя, но используя виджет командной строки, можно проигрывать список команд.

Поддержка Python и Lisp - в процессе, есть шансы что буде добавлена.

sand1024
()
Ответ на: комментарий от Jullyfish

Если есть пожелания - пишите, лучше сразу в GitHub :)

sand1024
()
Ответ на: комментарий от James_Holden

Честно говоря, мне это сложно представирь -но наверное такое разрешение дейтвительно может быть достаточно для продуктивной работы. Интерфейс достаточно гибкий, его можно настроить под себя и он такое разрешение вполне себе поддерживает.

Конечно, если включить все области и расположить их одну над другой - да, места не хватит. Ну тут уж увы..

Вот пример (тут высота даже меньше)? https://disk.yandex.ru/i/Svhnxsu08jVpyA

Что именно не влазит, можно скрин?

Спасибо!

sand1024
()
Ответ на: комментарий от sand1024

2.2.2, там поддержка сплайнов лучше.

Trim по линии будет в 2.2.2

В 2.2.2 есть команда Align By Reference, не оно?

Радуете хорошими новостями. :-)

Насчёт Align не уверен, надо потыкать.

Так есть же ж?

https://docs.librecad.org/en/latest/ref/snaps.html#

Не вижу.

Ну конечно можно использовать offset/polyline offset, но это конечно костыль.. или я не очень понимаю о чем тут речь, если есть пример - разверните.

https://drive.google.com/file/d/1f3mRIpFIxlB7wBYz8wlpey5YsR4vfPIw/edit

Вот такую штучку вырезал. Слой path_d4 это путь фрезы с диаметром 4 мм. Вот я его делаю вручную, местами халтурно. Есть ли способ такую полилинию создавать на основании полилинии из слоя features. (Вообще, судя по подменю File -> Export -> Export as CAM/plain SVG когда-то планировалась поддержка gcode. Но это так, домыслы.)

А что именно тут хотелось бы? Ну или тикет лучше в GitHub

Насчёт тикета правы. Думаю напишу. Я вообще один уже писал, но думаю он был не совсем адекватный с моей стороны. :-)

Взаимодействие с командной строкой без линии.

Тут бы хотелось подробностей

Видимо опечатался. Взаимодействие с командной строкой без GUI. Типо так:

librecad command_file.txt

И сразу открывается и исполняется т.н. командный файл.

Ещё было бы круто (для меня), если бы LibreCAD можно было поставить на autoreload для командного файла, чтобы можно было работать не в концепции WYSIWYG. (Как, например, в OpenSCAD).

Поддержка Python и Lisp - в процессе, есть шансы что буде добавлена.

Надеюсь Lisp. Знакомых пытаюсь уговорит слезть с AutoCAD и его производных, но есть аргумент, с которым я не могу поспорить: там удобная командная строка. Если в LibreCAD будет Lisp, можно будет пересаживать, наверное.

Jullyfish
()
Ответ на: комментарий от Jullyfish

Так есть же ж? https://docs.librecad.org/en/latest/ref/snaps.html#

Не, ну доки там совсем шлак и очень старые. Align\Align References - это в альфах 2.2.2, всегда лучше брать последнюю.

А, кажется понял - привязки к возможным точкам пересечения и касательным итд?

По касательным - есть отдельный набор команд, к точка пересечения - да в общем то тоже, их поддерживают Trim, Join lines, Line from Point to Line.

2.2.1 - ну он откровенно промежуточный релиз, типа видимо чтоб было..

Ветка 2.2.2 более интересная, хотя и менее стабильная. Но практически полностью локализована на русский, в отличие от 2.2.1.

Ну и для совместимости, многие настройки в 2.2.2 по умолчанию стоят чтоб было «как раньше», там скорее надо экспериментировать.

Ну или доку писать, но вот до нее пока руки не доходят от слова совсем.

Scale в 2.2.2 более интерактивная (да и вообще, более интерактивные\инфорамативные команды - тоже в 2.2.2), и там можно задавать масштаб мышью.

Вот такую штучку вырезал. Слой path_d4 это путь фрезы с диаметром 4 мм. Вот я его делаю вручную, местами халтурно. Есть ли способ такую полилинию создавать на основании полилинии из слоя features.

В принципе, есть, но пока он не очень прямой.

  1. Выделить контур в features
  2. из контуров сделать полилинию
  3. сделать смещение полилинии.

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

Поэтому, потом надо будет отдельно вручную в вершинах применить команду скругления (Round).

Я это тоже себе планировал докрутить, фичер на первый взляд вроде как не сложный в общем то, так что добавлю вскорости.

(Вообще, судя по подменю File -> Export -> Export as CAM/plain SVG когда-то планировалась поддержка gcode. Но это так, домыслы.)

Видимо да, но MakerCam благополучно помер, а поддержка осталась. SVG - можно и обычным экспортом в картинку сделать.

G-Code - откровенно не знаю пока. Есть достаточно много утилит по его генерации (как и по упаковке, типа Deep Nest) - стоит ли его добавлять - не понимаю.

Видимо опечатался. Взаимодействие с командной строкой без GUI. Типо так:librecad command_file.txt

Ага, понял. Хм.. посмотрю. То что отыграть список команд можно в Cmd widget - это да,это можно - но через UI.

А вот насчет командной строки - не уверен, заведу себе тикет на всякий.

если бы LibreCAD можно было поставить на autoreload для командного файла

а подробней? Что-то типа - через командную строку загрузили файл, отработали команды, сохранили файл и вышли?

И еще вопрос - а что обычно в таком сценарии меняться может?

Если в LibreCAD будет Lisp, можно будет пересаживать, наверное.

Ну тут самый больной вопрос это, конечно, совместимость со скриптами для автокада. Обвязка, вызов, и DCL - это как бы технические вещи, а вот API доступный для скриптинга - эт да.

Но работа идет, вроде как первые результаты обнадеживают, так что думаю тоже будет со временем.

sand1024
()
Ответ на: комментарий от zamtmn

инспектор объектов…

В 2.2.1 - есть команда Modify -> Attributes, может менять перо и слой (применяется ко всем выделенным объекты)

2.2.2 - свойства объекта можно посмотреть разными способами, например - так https://disk.yandex.ru/i/tgRGyrStxBFpVQ. Т.е - или через отдельный виджет, или же как информация около курсора.

Выбор объектов кстати в 2.2.2 тоже чуть улучушен - https://disk.yandex.ru/i/UtVvKVCXzNr1Sg

Насчет редактирования в инспекторе свойств- в принципе, добавить- то можно. Но вот удобство его использования… по моему опыту - слегка сомнительное, если будет очень уж востребовано - ну докручу, делов-то.

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

Стили размеров? Это ж речь идет о AcDbDimStyleTable и DIMSTYLE?

Да, это будет.

Вообще, в поддержке размеров там конечно есть еще где развернуться, она достаточно базовая.

Кстати, в 2.2.2 я добавил 2 новых команды проставления размеров - Baseline и Сontinue, чисто упростить создание размеров от базы и размерной цепи.

А, ну и привязка с выравниванием есть для соседних размеров, а то сильно уж оригинальная реализация раздражала.

sand1024
()
Ответ на: комментарий от sand1024

по моему опыту - слегка сомнительное

У тебя неправильный опыт)) Массовый просмотр и изменение свойств примитивов одна из частей работы с чертежом

Да, это будет

скорее бы)

ты кто то из разаработчиков? твой ник?

zamtmn ★★
()
Последнее исправление: zamtmn (всего исправлений: 1)
Ответ на: комментарий от sand1024

Есть ли способ такую полилинию создавать на основании полилинии из слоя features.

Хотя, я тут похоже ввел слегка в заблуждение.

По идее, Polyline->Equidistant Polyline команда как раз и должна сделать то что нужно - эквидистантную полилинию на заданом растоянии. Разумеется, расстояние - это диаметр фрезы.

sand1024
()
Ответ на: комментарий от zamtmn

Массовый просмотр и изменение свойств примитивов одна из частей работы с чертежом

Да насчет массового изменения - то понятно, а вот практически - где?

Ну ок, могу навскидку представить разве что нужно диаметры поменять у дуг\отверстий. Что еще именно из геометрии-то? Центра поменять и сдвинуть - так есть отдельные команды, Move тот же.

Прямые обрезать если - ну есть трим. Растянуть - ну скейл.

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

Именно поэтому меня и интересуют сценарии, когда это может понадобиться.

ты кто то из разаработчиков?

ну, скорее контрибьютор :) Поэтому от меня Pull Requests.

твой ник?

хм, так такой же как и тут.

sand1024
()
Ответ на: комментарий от sand1024

то понятно, а вот практически - где?

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

Тупо рисовала тетенька и не следила за Z, всё получилось размазаным… нужно присвоить всем линиям Z=0

Все клоны его предоставляют, вы там странные какието без него))

zamtmn ★★
()
Ответ на: комментарий от zamtmn

да тут чисто вопрос приоритетов и доступных ресурсов.

Есть очень много областей которые просто пищат чтоб их в чувство привели - та же печать, которая сейчас страшно неудобная и просто отстойная, пользовательские типы линий, vieweports, размеры. Древняя командная строка. Скрипты. UI который тоже подтянуть бы. Иконки те же, на которые многие ругаются.. Документация какая-никакая бы не помешала на новые фичеры (да и на старые, честно говоря, тоже).

Рано или поздно появится думаю.

sand1024
()
Ответ на: комментарий от sand1024

Проблема в том, что оно не влазит в состоянии по дефолту. Я вообще ничего не включал, не настраивал. Просто установил и запустил.

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

А в дефолтном состоянии, какой-то глюк. Просто, минимальная высота всего окна, раза в полтора больше чем высота экрана (768). И ее невозможно было уменьшить, пока я не удалил виджет Волшебное перо.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

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

По идее, там конечно просится UI доработать, докинг, иконки, auto-hide панелей бы неплохо, надеюсь дойдут руки.

Когда я добавил команд, у меня перестала влезать левая панель с командами (тулбар с категориями и организация меню они да, так себе, но пока не трогаю).

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

Как то так: https://disk.yandex.ru/i/TEPmCY7WX2aE-A

sand1024
()
Ответ на: комментарий от zamtmn

ну они не совсем фейковые - это просто закодированые типы линий из стандартного набора автокада (не знаю уж какого), в dxf когда пишутся - притворяются приличными.

Исправить - ну потребует некоторых отжиманий, да. Просто больше паттернов dash/dot добавить - это в принципе не сложно и можно переложить отрисовку на Qt.

Намного проблематичней добавить типы линий наподобие зигзагов, изоляций, линий с текстом и шейпами.

Не то чтоб совсе никак, но повозиться с отрисовкой да, надо. Особенно боль будет со сплайнами да эллипсами, линии и дуги попроще конечно.

Есть это в планах - улучшить тут ситуацию, это одно из совсем больных мест, как по мне.

sand1024
()
Ответ на: комментарий от zamtmn

Массовый просмотр и изменение свойств примитивов одна из частей работы с чертежом

Подтверждаю, особенно у всяких геодезистов. Т.н. геоподоснова участка.

Jullyfish
()
Ответ на: комментарий от sand1024

Ветка 2.2.2 более интересная, хотя и менее стабильная.

Надо будет потыкать. Потыкаю, отпишусь, если вам интересно. :)

В принципе, есть, но пока он не очень прямой.

  • Выделить контур в features
  • из контуров сделать полилинию
  • сделать смещение полилинии.

А вот так не сработает. Я примерно так и делаю, но там на самом деле гораздо больше действий. Сложно объяснить почему такой алгоритм действий не работает, вы просто попробуйте сделать контур и поймёте.

если бы LibreCAD можно было поставить на autoreload для командного файла

а подробней? Что-то типа - через командную строку загрузили файл, отработали команды, сохранили файл и вышли?

И еще вопрос - а что обычно в таком сценарии меняться может?

Можете посмотреть как работает LilyPond, LaTeX и OpenSCAD. Сначала пишется текстовый файл в любом удобном текстовом редакторе, а потом он компилируется в другой формат.

Допустим, у меня есть пустой командный файл cmdfile.txt, я его редактирую на одной половине экрана, а на второй половине у меня запущенный LibreCAD, с моими воображаемыми параметрами:

$ librecad --command-file --auto-reload cmdfile.txt &

Где --command-file – открытие командного файла, а --auto-reload автоматическая перезагрузка отображения при изменении файла.

Далее, предположим, я хочу сделать прямоугольник. Я делаю:

echo rec 0,0 100,100 >> comfile.txt

И сразу после выполнения этой команды в окне LibreCAD должен появиться соответствующий прямоугольник.

Надеюсь, понятно объяснил.

Теперь, предполагаю сразу, что будет справедливый вопрос: а нах.. а зачем?

Это позволит использовать LibreCAD как параметрический 2D CAD.

G-Code - откровенно не знаю пока. Есть достаточно много утилит по его генерации (как и по упаковке, типа Deep Nest) - стоит ли его добавлять - не понимаю.

Не стоит. Например тот же dxf2gcode отлично справляется.

Ну тут самый больной вопрос это, конечно, совместимость со скриптами для автокада.

Да к чёрту этот автокад. Я, честно, не знаю как у них самих с обратной совместимостью в AutoLisp, т.к. им особо не пользовался. Можно делать схожую DSL, но прогибаться под закрытую спецификацию, как по мне – дорога в никуда.

======

В общем и целом, LibreCAD меня устраивает. Лично моя главная хотелка это возможность делать путь для фрезы, но если быть честным – это не задача LibreCAD, а скорее задача, например, того же dxf2gcode. dxf2gcode это даже умеет, но не на уровне построении модели, а на уровне команд gcode.

В gcode есть команды G41, G42 – компенсация радиуса фрезы слева и справа от траектории. Почему две команды? Представьте что вам нужно вырезать квадратное отверстие и вырезать квадратную деталь. В первом случае фреза должна идти внутри начерченного квадрата, во втором случае снаружи.

Команды такие есть, а вот станков поддерживающих такие команды я, честно, пока даже не встречал, хотя искал и не только я. Но ничего не мешает сделать эту траекторию ручками, но если речь не о прямых фигурах, то это сложно. Да даже если только для прямых, это много времени отнимает. Я знаю, что для Inkscape есть плагин gcodetools выпущенный в 2010 году, который это умеет. Насколько оно сейчас рабочее, я не знаю, я Inkscape не осилил, слишком перегруженный для меня.

Так что мой личный запрос, раз уж вы тут, это плагин для LibreCAD, который сможет делать траектории фрезы внутри/снаружи линий-полилиний. Смогу знакомых ЧПУшников пересадить.

Ещё желательно нормальный механизм превращение spline through points в полилинию, т.к. сейчас единственный мне известный вариант, это:

  • В Options -> Current Drawing Preferences -> Splines -> Number of line segments per spline patch указать сколько линий будет на каждую полилинию. (А теперь представьте, что у вас в чертеже есть полилинии длиной 10 мм и 10000мм)
  • Сохранить в каком-то более древнем формате .dxf, который при записи все сплайны превращает в полилинии.
  • Переоткрыть файл.

На форумах LibreCAD эта тема несколько раз поднималась.

Jullyfish
()
Ответ на: комментарий от sand1024

ну они не совсем фейковые - это просто закодированые типы линий из стандартного набора автокада

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

zamtmn ★★
()
Ответ на: комментарий от Jullyfish

Надо будет потыкать. Потыкаю, отпишусь, если вам интересно. :)

Да, конечно интересно. Или если есть еще идеи\пожелания - то сделайте задачу(и) или в tracker самого проекта https://github.com/LibreCAD/LibreCAD/issues или мне любым другим удобным способом- например, в мой трекер https://github.com/sand1024/LibreCAD/issues

вы просто попробуйте сделать контур и поймёте. Хм, ну по контурам там сейчас чуть получше ситуация, да, посмотрю детальней.

И сразу после выполнения этой команды в окне LibreCAD должен появиться соответствующий прямоугольник.

насчет файла то идея понятная,но вот как ее реализвать я пока не понимаю, подумаю. Основной вопрос - ну ок, просто зачитать и отработать команды из файла - не вопрос. А что делать при изменении? Все что есть в чертеже сносить и проигрывать команды заново? Пытаться сравнивать что изменилось?

Кстати, а обычная загрузка команд из файла не решает? https://disk.yandex.ru/i/vCJX7vfI2WLdXg

Я все равно планировал перетряхнуть поддержку командной строки, так что если есть еще идеи - делитесь.

Ещё желательно нормальный механизм превращение spline through points в полилинию,

А посмотртите в 2.2.2 команду Explode spline to line, недавно добавил.

Не оно? https://disk.yandex.ru/i/M7LHtY_DoZTiTA

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

sand1024
()
Ответ на: комментарий от sand1024

А что делать при изменении? Все что есть в чертеже сносить и проигрывать команды заново?

Да. Просто по сути переоткрывать файл. Из изменений, надо просто отслеживать изменения файла, т.е. после:

$ touch cmdfile.txt

LibreCAD должен всё перерисовать. Как это программно реализуется, я не очень знаю. atril document viewer по умолчанию умеет переоткрывать изменённые документы, как он это делает не знаю. У xdvi есть параметр -watchfile n, где n – секунды, раз в какое время происходит проверка был ли изменён файл, если да, он его обновляет.

Кстати, а обычная загрузка команд из файла не решает?

Не, не решает. Если надо автоматизировать какую-то работу, то GUI уничтожает возможность автоматизации. Т.е. надо, чтобы librecad умел работать без графики. А-ля:

librecad --command-file cmdfile.txt drawing.dxf

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

Не оно?

Оно. Вы не представляете сколько я мучался в ноябре из-за её отсутствия. :-)

Да, конечно интересно. Или если есть еще идеи\пожелания - то сделайте задачу(и)

Продублировать всё то что тут написано в формате feature request? Писать на русском и английском?

Jullyfish
()
Ответ на: комментарий от Jullyfish

Да. Просто по сути переоткрывать файл. Из изменений, надо просто отслеживать изменения файла,

Ну если в таком понимании, что любое изменение файла просто сносит все в чертеже и отрабатывает команды опять - это похоже не сложно сделать.

Через консоль команды отыграть - да тоже в общем не сложно докрутить, ок. Сейчас по такому же принципе через консоль можно делать из dxf PDF и PNG.

Но опять таки… cильно подозреваю, что потом в таком файле команд условия могут понадобиться, циклы итд, и получится какай-то недо-язык - а там может оказаться что будет проще скрипт на питоне или лиспе прогнать.

Но в целом - ок, понял.

Продублировать всё то что тут написано в формате feature request?

Ну я многое занес себе, но хуже наверное не будет, мало ли какие еще мысли могут появиться.

Писать на русском и английском?

https://github.com/LibreCAD/LibreCAD/issues Если сюда - то лучше на английском.

Если в мой трекер https://github.com/sand1024/LibreCAD/issues то в целом пофиг, его вряд-ли кто кроме меня смотрит

sand1024
()
Ответ на: комментарий от sand1024

что потом в таком файле команд условия могут понадобиться, циклы итд

Это да.

скрипт на питоне или лиспе прогнать.

Голосую за Lisp в качестве DSL-языка. :)

Jullyfish
()
Ответ на: комментарий от zamtmn

Слышал тезис примерно следующего вида:

«Императивная парадигма программирования довольно ужасная, и мы просто вынуждены её использовать т.к. мы работаем с архитектурой фон Неймана. Но если мы работаем с высокоуровневым ЯП не взаимодействуя напрямую с памятью, тогда от императивной парадигмы надо отказываться.»

Я этот тезис не понимал, пока не попробовал LilyPond, у которого используется Scheme-подобный язык.

Да и Python со своими major обновлениями ломающими обратную совместимость, плюс, как показала практика, там в некоторых версиях могут некорректно работать даже базовые итераторы.

Может есть какой-нибудь язык получше чем Lisp в качестве DSL, я просто такого пока не знаю. :-)

Jullyfish
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.