Страница 2 из 57

Re: САПР на Lazarus

СообщениеДобавлено: 21.06.2010 14:56:02
Timid
А чем PascalScript плох?

Re: САПР на Lazarus

СообщениеДобавлено: 21.06.2010 15:02:48
zub
незнаю, я его не смотрел))

Re: САПР на Lazarus

СообщениеДобавлено: 25.06.2010 05:00:40
Alek_Aaz
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, прошу прощения :)

Re: САПР на Lazarus

СообщениеДобавлено: 25.06.2010 09:27:13
Timid
Alek_Aaz писал(а):
Timid писал(а):А чем PascalScript плох?

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

Я и сам об этом писал ранее 8)
Но мы же на freePASCAL как-никак. Нужно уважать ;)

Re: САПР на Lazarus

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

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

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

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

Re: САПР на Lazarus

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

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

Re: САПР на Lazarus

СообщениеДобавлено: 16.07.2010 14:33:18
Odyssey
Я видел как минимум два способа.
Первый (как в 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.
}

Re: САПР на Lazarus

СообщениеДобавлено: 21.07.2010 15:29:13
zub
Odyssey
Спасибо. воспользовался первым вариантом.

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

исходники в win кодировке это нормально? или лучше сделать UTF8?

Re: САПР на Lazarus

СообщениеДобавлено: 21.07.2010 17:50:11
NXP
UTF-8 конечно лучше :wink:

Re: САПР на Lazarus

СообщениеДобавлено: 22.07.2010 20:13:52
zub
Вот что в итоге получилось:
http://svn.shamangrad.net/zcad/

До LCL было страшненько, после переделки стало вообще ужас(( - постепенно выправлю-закоментирую.
В исходниках в папке electroteh присутствуют 5 файлов которые я не пранирую делать open source, их пока не получается безболезненно выдрать

Re: САПР на Lazarus

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

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

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

ЗЫ. исходники очень грязные, просьба пока не пинать))

Re: САПР на Lazarus

СообщениеДобавлено: 12.11.2010 14:50:50
zub
со статистикой не вышло. поступлю как росстат - придумаю сам))

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

Пока придумал только - запоминать в стеке адрес объекта, смещение поля, размер поля, старое содержимое поля, новое содержимое поля.
Т.к. полем может оказаться сложная структура данных - уместно ли тут применить generic`и (чтоб компилятор копировал старое\новое содержимое с учетом compiler magic типов, а не просто move)?

Re: САПР на Lazarus

СообщениеДобавлено: 12.11.2010 23:44:32
mtdu
Пропустил сообщение от 09.10.2010, а то бы попробовал. Будет время(надеюсь) посмотрю (на АТI) в win, может и в бунте получится. Только не разобрался что качать?(много файлов, мне бы одним архивом)

Re: САПР на Lazarus

СообщениеДобавлено: 13.11.2010 01:53:47
zub
исходники 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
моя благодарность не будет знать границ... чтоб ее, эту ати.

Re: САПР на Lazarus

СообщениеДобавлено: 13.11.2010 09:33:32
mtdu
win XP, ATI HD4670
Время последнего рендера ~ 126-127 редко 145.
Вообще на глаз, картинка отстаёт от мыши на 2 см.