• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

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

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Сделаем бесплатный САПР?

  • Автор темы mrvadimjuravlev
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

mrvadimjuravlev

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

На сегодняшний день самая массовая чертилка это автокад. Несмотря на то, что в голом виде это совершенно убогая программа из прошлого века, стоит он до 100 тыс. р. или тыс. 50 в версии LT. Другие популярные программы это компас, ти-флекс и т.д. Цены аналогичные, возможности гораздо
больше. Однако большинству конструкторов таких программ и не надо, очень многие используют САПР как чертилку. Впрочем в 3д работать конечно приятнее. Популярность автокада доказывается еще и тем, что в качестве альтернативы к нему существует несколько програм на движке
IntelliCAD, типа bricscad, zwcad и др. Они стоят 10-15 тыс. р. Я же предлагаю сделать полностью бесплатную программу с возможностями достаточными для замены во многих случаях этих автокадов и интелликадов.

Зачем это надо?

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

Один я все это не потяну. Точнее сказать, мне станет лениво, делать долго, я на это забью, потом снова вернусь, снова забью, пройдет черти-сколько времени и результата не будет. Вообщем хочется еще желающих попрогроммировать. Возьмем нечто среднее между автокадом и компасом, только для 2Д. Поддержки 3Д не планируется, формат файлов пока свой (может импорт сделаем если ну очень сильно захочется). Итак. Обычное MDI приложение. Кнопки на панели инструментов пока не делаем, с интерфейсом без необходимости не извращаемся. Все пункты пока просто из меню.
Поле документа не ограничено, двигается средней кнопкой мышки, масштабируется колесиком. Примитивы описываем универсальной структурой и храним в списке. В структуре поля тип примитива, необходимые точки или радиусы, тип линии, слои пока без надобности, может еще что надо. Типы только линий стандартные гостовские - толстая, будем синим цветом рисовать, тонка, центральная, размерная и т.п. Размерная выделена в отдельный тип чтобы ее потом не учитывать при заливках.
Сначала реализовываем рисование линий, как обычно лищь указать две точки. Следующая точка создает линию с предыдущей. Чем чертилка от рисовалки отличается? Нужно мочь задавать точные
координаты. Поэтому во время отрисовки линии мы должны перехватывать сообщения с цифровых клавиш и интерпретировать их как координаты. Точка с запятой например будет разделять x и y (или запятая, как в настройках сделаем). Пробел или ентер завершение редактирования. Ввод дублируется где-нибудь на статус-баре. Командной строки как в автокаде можно наверно не делать. Компас легко без нее обходится. Автокад вообще понимает ввод x,y как абсолютные координаты, а @x,y как относительные. Вообще относительными чаще пользуются, значит будем по-умолчанию понимать x,y как относительные. Далее реализуем ортогональные перемещения. Далее привязки. Привязки к концевым точкам делают легко, к центральной точке тоже. К ближайшим точкам сложнее, к точкам пересечения тоже сложнее, но тоже легко ) Далее по аналогии реализуем отрисовку окружностей и дуг, там конечно все сложнее чем для линий. В том числе всякие привязки типа касательных и т. п. Дальше простые функции редактирования. Сначала для отдельных объектов. Левой кнопкой мыши происходит выделение примитива, на нем отмечаются узлы, за которые его можно таскать. Для линий 3 узла, для окружности наверно 2(?), для дуг наверно 3. Привязка мыши осуществляется точно к узлу, а не как в компасе где-то рядом куда попал. Другие функции редактирования уже могут работать с несколькими объектами. Их можно выделить удерживая шифт или контрол или обведя прямоугольником. Их можно будет удалить, отразить, масштабировать, повернуть, размножить массивом. Это все несложно. Далее делаем ввод и редактирование текста. Прямо на поле чертежа в любом месте, простейший тектовый редактор, ввод отображается прямо на
экране, т.е. без диалог-боксов. Далее заливка. Самый пока непонятный этап, т.к. я сходу не знаю
алгоритмов поиска замкнутой области определенной примитивами. Но, очевидно, это решаемо. Далее размеры, и куча всяких гостовских обозначений. Там все более разнообразно, но и более интересно. Здесь расписывать не буду уже. Вывод на принтер само-собой.

Короче. Есть желающие поучаствовать?
 
L

Lotrex

mrvadimjuravlev, как Ваша программа? Продвигается? У меня самого была похожая идея, но хотелось создать не просто чертилку, а редактор печатных плат (поскольку P-Cad-oвский редактор меня достает уже который год). Кое-что я уже написал (точнее, только небольшая библиотечка для рисования), но на Java 5. Думаю, на современном компе тормозить не будет, во всяком случае тестовая рисовалка (которую я написал для тестирования библиотеки) работала довольно сносно даже на Pentium 150 MHz. Реализовано рисование примитивов (линия, прямоугольник, многоугольник, круг, закрашенный многоугольник), выделение их. Координаты - числа с плавающей точкой.
 
M

mrvadimjuravlev

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

вот немного обсуждений на другом форуме:

кстати мы тоже хотим использовать именно java для кроссплатформенности, так что давай не теряйся присоединяйся

сайт уже есть:

сайт: - сайт, здесь будет форум для обсуждения и репозиторий
скоро я настрою поддержку русского языка!

vkontakte.ru : cadbox.org - название группа для общения, здесь можно будет видеть участников
 
L

Lotrex

Вадим, Вы имеющийся код написали в NetBeans? Или в какой-то другой оболочке?
 
E

etc

Соорудите готовые exe, чтобы посмотреть.
 
M

mrvadimjuravlev

Привет etc

Пока как такового exe'ника нет и в ближайшее время не предвидится. Приложение разрабатывается в среде java,
поэтому чтобы его запустить нужна виртуальная машина java.

ее можно скачать по адресу
после чего необходимо установит ее у себя на компьюторе!!!

далее нужно скачать само приложение и разжать его архиватором на диске.

и вот теперь его можно будет запустить и просмотреть его работу следующей командой
(в командной строке)

java -jar pathToJarFile, где pathToJarFile - это полный путь и имя .jar файла.(пр: java -jar d:\cadbox2d.jar)


Lotrex: я использую NetBeans + Plagins для разработки проекта!!! )
 
Z

zubr

etc
а неизвестное exe-приложение ты бы стартовал? :rolleyes:
 
L

Lotrex

Привет, mrvadimjuravlev!
Насколько я понимаю, все дополнительные либы, используемые в проекте, есть в NetBeans? Или какие-то либы идут отдельно? Если что-то отдельно идет, в файле исходников желательно поместить хотя бы файл со ссылочками, откуда можно доку на них взять.

И еще, (я и на стене vkontakte.ru это писал) было бы хорошо, вместе с исходниками хотя бы сырую документацию поместить.
Хотя я сегодня такую доку сделал очень быстро:

c:\...\CADBox.2D.src\src\>javadoc * -subpackages *
 
E

etc

zubr Я не всмысле что прога неизвестно что, а процесс старта. Извините но набирать на слабо понятный текст, собственно и непонятно нафик его набирать?
Я к тому что всегда демочку надо рядом, кому надо тот сырцов скачает и будет заниматься с ними чем не попадя, а комуто хоцца для первого раза тупо позырить.
:rolleyes:
 
V

vital

etc, а может рассчитано на то, что тот кому хоцца позырить проект такого типа(Уровня? Стадии разработки- доступен только программистам) будет иметь достаточно квалификации что бы набрать
В командной строке?=) А раз ему интересно, то и не лень будет это сделать..
 
L

Lotrex

Похоже, надо в дистрибутив вставить какой-нибудь run.bat со следующим содержимым:

javaw -jar CADBox.2D.jar
 
M

mrvadimjuravlev

День добрый!!!

Lotrex
документацию откомпилировал и добавил к исходникам.

Все библиотеки необходимые для компиляции проекта идут тоже вместе с исходниками

Структура пакета с исходниками пока вот такая:
/javadoc - здесь доки
/lib - необходимые для компиляции либы
/src - исходники соответственно

я пробовал и в NetBeans и в Eclipse все вроде компилируется нормально, только все либы из папки /lib нужно к проекту добавить.

etc теперь можно все быстро запустить(как ты хотел), я добавил exe-шник, чтобы действительно было удобнее быстро
посмотреть резульнат, все скачивай снова архив, в нем все есть.
Правда на компе должна быть установлена JRE (виртуальная машина Java)
 
L

Lotrex

Спасибо! Скачал, смотрю :) Если не секрет, когда ты начал проект?
 
M

mrvadimjuravlev

Месяцев 6-7 назад и то делал его только когда время было свободное
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!