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

Тема в разделе "Разработки форумчан", создана пользователем mrvadimjuravlev, 31 июл 2009.

Статус темы:
Закрыта.
  1. mrvadimjuravlev

    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. Привязка мыши осуществляется точно к узлу, а не как в компасе где-то рядом куда попал. Другие функции редактирования уже могут работать с несколькими объектами. Их можно выделить удерживая шифт или контрол или обведя прямоугольником. Их можно будет удалить, отразить, масштабировать, повернуть, размножить массивом. Это все несложно. Далее делаем ввод и редактирование текста. Прямо на поле чертежа в любом месте, простейший тектовый редактор, ввод отображается прямо на
    экране, т.е. без диалог-боксов. Далее заливка. Самый пока непонятный этап, т.к. я сходу не знаю
    алгоритмов поиска замкнутой области определенной примитивами. Но, очевидно, это решаемо. Далее размеры, и куча всяких гостовских обозначений. Там все более разнообразно, но и более интересно. Здесь расписывать не буду уже. Вывод на принтер само-собой.

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

    Lotrex Гость

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

    mrvadimjuravlev Гость

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

    вот немного обсуждений на другом форуме: http://www.javatalks.ru/ftopic11317.php

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

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

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

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

    Lotrex Гость

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

    etc Гость

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

    mrvadimjuravlev Гость

    Привет etc

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

    ее можно скачать по адресу http://java.com/download
    после чего необходимо установит ее у себя на компьюторе!!!

    далее нужно скачать само приложение http://cadbox.org/node/5 и разжать его архиватором на диске.

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

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


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

    etc Гость

    Мама .... и машина и тыпы есть, но вот стартовать ее как, неизвестно что, нехочецца, поэтому и просил. Ну раз нет, то и нет.
     
  8. zubr

    zubr Гость

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

    Lotrex Гость

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

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

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

    etc Гость

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

    vital Больной Компом Детектед

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

    Lotrex Гость

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

    javaw -jar CADBox.2D.jar
     
  13. mrvadimjuravlev

    mrvadimjuravlev Гость

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

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

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

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

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

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

    Lotrex Гость

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

    mrvadimjuravlev Гость

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

Поделиться этой страницей