SharfikБлоки есть, но недоработанные. Начал делать, но забил, т.к. сама логика программы немного ущербная : все графические объекты - просто запись в массиве определенного типа. Блоки - это тоже массив с номерами объектов. При удалении граф.объекта, напр. линии, весь массив линий сдвигается вверх, вся нумерация в блоках ломается.
Позже понял, что все объекты нужно было делать отдельными классами (вернее экземплярами классов). Без массивов. Обращаться через FindComponent. Тогда можно было бы и блоки. Но переделывать уже лениво.
А за DXF: вот наткнулся на тему:
https://www.cyberforum.ru/lazarus/thread1626208.htmlВ принципе все просто, тем более, что автор уже все разобрал и описал. Думаю добавить к своему редактору.
Добавлено спустя 6 минут 48 секунд:SharfikAlexanderЭто не самые большие проблемы в этой программе
При рисовании регулярно образуются объекты с дробными координатами. В программе же они все округляются до целых. Соответственно, потом точки, которые округлились в разные стороны будут не совпадать. Можно увидеть, сделав картинку с окружностями, пересечениями, привязкой концов линий к пересечениям, а потом сделать из меню Файл скрипт для Автокада. В Автокаде будет видно, что точки немного не совпадают.
Опять же - "генетические уродства" данной программы. Все координаты надо было хранить в дробном виде, в формулах считать также. Округлять только для вывода на экран.
Добавлено спустя 6 минут 43 секунды:AlexanderВот немного подправил, теперь, по идее, можно без Wine откопилировать под Linux. Заодно поубрал немного мусора и лишних действий из кода.
https://disk.yandex.ru/d/5zvLfsBqnOE9ig