САПР на Lazarus

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: САПР на Lazarus

Сообщение Timid » 21.06.2010 14:56:02

А чем PascalScript плох?
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: САПР на Lazarus

Сообщение zub » 21.06.2010 15:02:48

незнаю, я его не смотрел))
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Alek_Aaz » 25.06.2010 05:00:40

zub писал(а):>>Но зачем 3D?
DXF (общепринятый "открытый" стандарт в "легких и средних" CAD программах) подразумевает 3D, если его умышленно резать - получится не полная поддерка. по большому счету 3д-2д разницы не много, уж лучше сразу 3D, всетаки САПР))

DXF программа может поддерживать, но 3D не отображать... ну в принципе действительно без разницы....

zub писал(а):>>Зачем там OpenGL?
По началу OGL использовался плотно. сейчас "главная" opengl`ная функция - выбор объектов мышью реализована "математически", opengl только как рисовалка. можно доработать реализацию примитивов и сделать мультирендер. тут моя большая ошибка - рендер завязан на реализации примитивов, нужно его выносить

Поразмышлял тут на досуге... вроде пишут что лучше юзать OpenGL... ибо тогда включается 2Д аппаратное ускорение...
zub писал(а):Что у вас за система? Тормоза скорее всего изза того что чтото не в порядке с поддержкой OpenGL (например дрова от микрософта под виндой или ATI карта под linux+wine). Вообще ZCAD работает довольно шустро - с автокадом конечно не сравнить, но быстрее многих аналогичных программ.

Не скажу что система шедевр, но все программы стартуют тяжело, но зато шустро летают (проблемы с диском, но 2Ггц Пень 4 и 700 оперативки, встроенное видео) В том числе CS на OpenGL драйверах. Тут наблюдается обратный эффект, быстро стартует, но уже через минуту любое движение мышой грузит проц до 50%... В любом случае что-то там не так.... Утечки памяти вроде нет.... может к диску обращается часто?

zub писал(а):>>Да и кстати, если под GPL то исходники все же надо выкладывать, а то некоторые забывают это делать
По лицензиям я не знаток... GPL заставит открыть исходники вышеописаного плагина?

Не заставит, если распространять отдельно.... Кстати, можно сделать систему активации в плагине если уж на то пошло....
Под плагинами я имел ввиду модули, которые могли бы экспортировать/модифицировать отображаемые данные... например экспорт в базу данных, открытие в отдельном окне спецификации и пр... как это сделать х.з.
Кстати, а какая принципиальная разница сделать тот же GIS плагин? те же линии, те же регионы....

Timid писал(а):Вопрос с плагинами можно решить через внедрение какого-нибудь скриптового движка вроде Lua или PascalScript. Модули при этом можно сделать не бинарными, а подключаемыми.

Timid писал(а):А чем PascalScript плох?

ИМХО Lua более распространен, больше документации и примеров... и у некоторых есть стойкая аллергия к слову pascal, прошу прощения :)
Alek_Aaz
новенький
 
Сообщения: 40
Зарегистрирован: 26.11.2007 04:13:06

Re: САПР на Lazarus

Сообщение Timid » 25.06.2010 09:27:13

Alek_Aaz писал(а):
Timid писал(а):А чем PascalScript плох?

ИМХО Lua более распространен, больше документации и примеров... и у некоторых есть стойкая аллергия к слову pascal, прошу прощения :)

Я и сам об этом писал ранее 8)
Но мы же на freePASCAL как-никак. Нужно уважать ;)
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: САПР на Lazarus

Сообщение zub » 25.06.2010 11:05:17

Тут наблюдается обратный эффект, быстро стартует, но уже через минуту любое движение мышой грузит проц до 50%... В любом случае что-то там не так.... Утечки памяти вроде нет.... может к диску обращается часто?

Ну если просто после минуты ничего не деланья такое + тормоза, то да, чтото не то. если после команд, то возможны утечки пмяти или GDI, но они не должны быть так критичны. К диску никаких обращений быть не должно, только если через своп.
Вообще, если не запущено никаких команд, движенье мышью проц не должно грузить - по нему только рисование курсора, обновление фона, и поиск объектов под мышью. Если запустить команду (например рисование линии) при большом количестве объектов в кадре (в принципе и не в кадре, точность проверки попадания в кадр принесена в жертву скорости), вполне возможна загрузка CPU 100%, (50 на двухядерном), так как добавляется еще поиск привязок.

Кстати, а какая принципиальная разница сделать тот же GIS плагин? те же линии, те же регионы....

Никакой. Программа позволяет привязывать любую информацию к любым примитивам. Нечто вроде 2gis можно сделать на текущем функционале. чтото посложнее пока не выйдет, нет сплайнов и дуговых сегментов полилиний
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 16.07.2010 13:03:34

Возможно для этого проекта подойдёт та же лицензия что и у RTL/FCL/LCL -- Modified LGPL (with linking exception), т.е. изменения в базовом функционале должны открывать все, а плагины могут писаться закрытыми и линковаться в закрытые бинарные сборки.

т.е. я беру файл лицензии LCL, редактирую и распространяю со своими исходниками, больше ничего не нужно?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Odyssey » 16.07.2010 14:33:18

Я видел как минимум два способа.
Первый (как в LCL, хорош при различных лицензиях на разные модули):
* Берутся файлы COPYING.LGPL и COPYING.modifiedLGPL из инсталляции Lazarus.
* В COPYING.modifiedLGPL меняются первый и второй абзацы (там, где название программы и к каким файлам применяется лицензия)
* В каждый модуль пишется что-то типа:
Код: Выделить всё
{
*****************************************************************************
*                                                                           *
*  This file is part of the PROGRAM                                         *
*                                                                           *
*  See the file COPYING.modifiedLGPL.txt, included in this distribution,    *
*  for details about the copyright.                                         *
*                                                                           *
*  This program is distributed in the hope that it will be useful,          *
*  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                     *
*                                                                           *
*****************************************************************************
}

Второй (меньше файлов, больше информации в модуле, хорош когда модулей мало):
* Берётся файл COPYING.LGPL
* В каждый модуль пишется что-то типа:
Код: Выделить всё
{
  PROGRAM
  Version X.X 2010-XX-XX
  UNIT DESCRIPTION

  Copyright (C) 2010 AUTHOR <AUTHOR@DOMAIN.com>

  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version with the following modification:

  As a special exception, the copyright holders of this library give you
  permission to link this library with independent modules to produce an
  executable, regardless of the license terms of these independent modules,and
  to copy and distribute the resulting executable under terms of your choice,
  provided that you also meet, for each linked independent module, the terms
  and conditions of the license of that module. An independent module is a
  module which is not derived from or based on this library. If you modify
  this library, you may extend this exception to your version of the library,
  but you are not obligated to do so. If you do not wish to do so, delete this
  exception statement from your version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; if not, write to the Free Software Foundation,
  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: САПР на Lazarus

Сообщение zub » 21.07.2010 15:29:13

Odyssey
Спасибо. воспользовался первым вариантом.

Программу перенес на LCL, теперь она работает под линуксом. Действительно получилось пишешь один раз, компилируешь везде. думал будет море платформенных {$IFDEF} - нет ниодного :lol:

исходники в win кодировке это нормально? или лучше сделать UTF8?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение NXP » 21.07.2010 17:50:11

UTF-8 конечно лучше :wink:
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: САПР на Lazarus

Сообщение zub » 22.07.2010 20:13:52

Вот что в итоге получилось:
http://svn.shamangrad.net/zcad/

До LCL было страшненько, после переделки стало вообще ужас(( - постепенно выправлю-закоментирую.
В исходниках в папке electroteh присутствуют 5 файлов которые я не пранирую делать open source, их пока не получается безболезненно выдрать
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 09.10.2010 15:54:04

Хотелось бы произвести небольшой сбор статистики, особенно интересует работа программы на мощьных компах с LINUX и mesaOGL, любых компах с ATI, любых компах с старыми NV (особенно MX серия).

Для желающих, порядок теста:
- стянуь rev 10 по ссылке с предидущего поста
- собрать (соберется только под виджеты WIN, GTK2, возможно CARBON) (бинарник под XP уже присутствует, можно не собирать)
- запустить, загрузить тестовый чертеж - меню DEBUG\загрузить пример ОПС
- открыть вкладку "рендер" в инспекторе объектов
- покрутить колесо мыши чтоб чертеж был виден весь (или двойной middle клик на рабочей области)
- поелозить мышью чертежом с нажатой средней кнопкой
- запостить параметр "время последнего рендера" с вкладки "рендер"

еще один тест на дерганье мышки (для GTK2):
- промасштабировать чертеж чтоб в кадре было мало объектов или - меню DEBUG\загрузить пример ЭМ - это загрузка маленького чертежа
- поелозить мышью чертежом с нажатой средней кнопкой
- отписаться если при движении будут рывки и неравномерности

ЗЫ. исходники очень грязные, просьба пока не пинать))
Вложения
test.gif
чтото типа этого
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 12.11.2010 14:50:50

со статистикой не вышло. поступлю как росстат - придумаю сам))

Сейчас пытаюсь реализовать UNDO\REDO - жаль не задумался об этом раньше - кучу всего менять.
Собственно вопрос какие есть методы реализации UNDO\REDO?

Пока придумал только - запоминать в стеке адрес объекта, смещение поля, размер поля, старое содержимое поля, новое содержимое поля.
Т.к. полем может оказаться сложная структура данных - уместно ли тут применить generic`и (чтоб компилятор копировал старое\новое содержимое с учетом compiler magic типов, а не просто move)?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение mtdu » 12.11.2010 23:44:32

Пропустил сообщение от 09.10.2010, а то бы попробовал. Будет время(надеюсь) посмотрю (на АТI) в win, может и в бунте получится. Только не разобрался что качать?(много файлов, мне бы одним архивом)
mtdu
новенький
 
Сообщения: 31
Зарегистрирован: 22.11.2009 13:56:51

Re: САПР на Lazarus

Сообщение zub » 13.11.2010 01:53:47

исходники svn - http://svn.shamangrad.net/zcad/trunk/
бинарник под вин - http://download.shamangrad.net/zcad/cad.7z
исходники архивом - http://download.shamangrad.net/zcad/cad_source.7z
могу выложить еще бинарник lin64, 32 - не умею кроскомпилить

cad_source.7z не включает необходимые рантайм файлы, нужно качать вместе с cad.7z. svn содержит всё что нужно для компиляции и работы.

>>Будет время(надеюсь) посмотрю (на АТI) в win
моя благодарность не будет знать границ... чтоб ее, эту ати.
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение mtdu » 13.11.2010 09:33:32

win XP, ATI HD4670
Время последнего рендера ~ 126-127 редко 145.
Вообще на глаз, картинка отстаёт от мыши на 2 см.
mtdu
новенький
 
Сообщения: 31
Зарегистрирован: 22.11.2009 13:56:51

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru