Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

LiteCAD (VeCAD) & SDK - разработчик Олег Колбаскин

Тема в разделе "Другие программы", создана пользователем sklimkim, 13 янв 2013.

  1. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Свободная CAD-система LiteCAD (ранее VeCAD) с инструментами для разработки программ.

    В поисках инструментов для разработки ВНЕШНИХ по отношению к xxxx-CAD системам пользовательских программ совершенно случайно обнаружил уникальную разработку нашего соотечественника.
    Вспомнились строки из В.Высоцкого "... Пророков нет в Отечестве своем, но и в других отечествах не густо."
    Это к тому, что упоминаний об этой уникаальной разработке практически нет.
    А она интересна вот по каким параметрам:
    1. компактность (полная версия не более 15 МБ - и это с пакетом шрифтов)
    2. близость объектной модели к Auto-CAD'у
    3. конвентация своего формата LCD в форматы DXF и DWG и работа с чертежами этих форматов
    4. интерфейс во много похожий на интерфейс Auto-CAD (смотреть БЕСПЛАТНЫЙ авторский редактор)
    5. возможность создавать на базе SDK (платного, но целиком доступного для работы) пользовательские программы на языках:
    а) MS-VB5(6), MS-VBNet,
    б) C++, C#
    в) Delphi (Pascal)
    г) VisualFoxPro
    д) C (без плюсов)
    е) FreeBasic (BCX в частности)

    Последние 2 варианта не были указаны автором, но я попробовал и получил работающие варианты. Смотреть в приложении.

    Инструмент разработки программ позволяет как расширять существующий функционал системы, так и изменять ее в нужном пользователю направлении (вплоть до неузнаваемости).

    Это не еще один ZwCAD это нечто другое и довольно интересное.

    Ссылки:
    предыдущая модель системы VeCAD
    VeCAD VeCAD DLL/OCX 6.0 Free Download vecad6.zip 6.5 MB
    http://vecad-dll-ocx.soft32.com/
    http://vecad-dll-ocx.soft32.com/get...=1356510749&ext=.zip&no_download_manager=true

    http://vecad-dll-ocx.soft32.com/get...=1356510957&ext=.zip&no_download_manager=true

    http://vecad-dll-ocx.soft32.com/badges

    Текущая модель системы LiteCAD
    www.kolbasoft.com

    Приложение - редактор на языке FreeBasic(BCX)-->C-->EXE
     

    Вложения:

    #1
    geo_rva, flareon, Geo_major и 2 другим нравится это.
  2. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    В дополнение к первому приложению:
    Приложение - редактор на языке Pelles-C (C без плюсов)-->EXE (исходники и готовый EXE-файл)
    Можно посмотреть тему на "буржуйском" сайте: http://forum.pellesc.de/index.php?topic=5099.0

    Примечание: для работы программ (этой и в предыдущем посте) необходимо и достаточно иметь в том же каталоге библиотеку автора: файл LiteCAD.dll - он находится в архиве http://www.kolbasoft.com/litecad.zip (сайт автора).
     

    Вложения:

    #2
    max7 нравится это.
  3. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Это "самодельный" редактор liteCAD-Editor2
    сделанный с использованием SDK - "инструмента для разработки программ".
    Все это бесплатно (спасибо автору - Олегу Колбаскину), поэтому на черном фоне чертежа крупная надпись красным цветом: "UNREGISTERED LITECAD". (Она не сильно мешает. В его шикарном и бесплатном редакторе этой надписи нет.)

    Язык программирования СИ (просто СИ - без плюсов), конкретно это Pelles-C.

    В меню добавил пункт UserUtils-->Strelka: подпрограмма запрашивает у пользователя 2 точки, ставит эти 2 точки (Point), рисует по ним линию (Line), подписывает точки (Text), а затем на 1-й точке строит стрелку (PolyLine) и копирует стрелку 4 раза со смещением и с углом разворота через 90 градусов, вокруг исходной.
    Это всего-лишь заготовка ПОЛЬЗОВАТЕЛЬСКОЙ программы, а также иллюстрация добавления в проект диалоговых окон для пользователя (естественно силами СИ-программиста).
    Включил работу гориз. и вертик. стрелок-разделителей для синхронного изменения главных окон программы (Drawing--Properties--CommandLine).
    Включил работу кнопок в StatusBar.

    Для тех, кто не хочет (не может) скачивать авторский пакет LiteCAD, но хотел бы посмотреть, как это выглядит.
    Внутри моего проекта есть:
    1. главный файл LiteCAD.dll (упакован в RAR архив)
    2. несколько файлов шрифтов (самые необходимые).

    Таким образом скомпилированный liteCADeditor2.exe можно запускать из папки проекта и смотреть его в работе.
    В папке проекта лежат ВСЕ ИСХОДНЫЕ ФАЙЛЫ на СИ.
    Я понимаю, что здесь СИ-программистов не густо, но все же ...
     

    Вложения:

    #3
    Lex K-G и max7 нравится это.
  4. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    А вот скриншот загруженного (самодельного) редактора liteCADeditor2.exe
    К слову сказать его (редактора) размер всего 83 КБ (без всяких оптимизаций).
     

    Вложения:

    #4
  5. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Читаю LiteCAD.chm, смотрю примеры и включаю что-то в свою программу.

    Иллюстрация самых простых построений и использования свойств примитивов Point, Line, PolyLine, Text программными средствами.

    В правом нижнем углу построены стрелки как полилинии на точке 1 (линия 1-2), имеющие свой (не по слою) цвет.
    В левом верхнем углу построены стрелки на точке 2 как полилинии, имеющие свой (не по слою) цвет.
    К первой (исходной) стрелке добавлен текст "Arrow" также своим цветом и своей высотой.
    Затем стрелка и текст включены в блок "strelka" и этот блок размножен вокруг 2-й точки (линия 1-2) 4 раза со смещением и разворотом через 90 градусов.

    Построение сохранено в формате LCD (6 КБ) и в формате DWG 2005 (198 КБ) - почувствуйте разницу.

    На скриншотах:
    1. построение в самодельной программе LiteCADEditor2.exe - LiteCAD + SDK
    видно надпись красного цвета "UNREGISTERED LITECAD" - это о том, что SDK имеет халявное происхождение.
    2. сохраненный чертеж Strelka1.lcd открыт в авторском редакторе LiteCAD.exe
    грозной надписи нет - бо редактор БЕСПЛАТНЫЙ.
    3. чертеж Strelka1.lcd сохранен как Strelka1.dwg (2005) и открыт в АвтоКАД'е.
     

    Вложения:

    #5
  6. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    1. Потребовался выход из цикла в пользовательской функции (не LiteCAD) по клавише ESC.
    При этом курсор находится в окне LiteCAD DWG.
    Функция запрашивает у пользователя пары точек и сразу обрабатывает их.
    Для клавиши ESC параметр VirtKey = 27

    Вот как это выглядит (userutils1.c):

    int intKey; // to bipass ESC in loop while()
    void CALLBACK KeyDown (HANDLE hWnd, int VirtKey, int Flags, BOOL bCtrl, BOOL bShift )
    {
    if ( VirtKey == 27 ) { intKey = VirtKey; }
    }

    void GetStrelka12 (float fArrowScale)
    {
    ... ... ...
    // do user-cicle for entering pair-points 1-2
    while ( 1 )
    {
    lcOnEventKeyDown ( KeyDown ); // !!! Invoke CALLBACK-function
    if ( intKey == 27 )
    {
    MessageBox( NULL, TEXT("the key ESCAPE is pressed"), TEXT("Event2"), MB_OK);
    break; // terminate loop while()
    }
    ... ... ...
    }
    }

    2. Для более быстрого (чем из меню) вызова функций LiteCAD добавил две панели ToolBar:
    HWND CreateTbarMain ( HWND hWndParent, HINSTANCE hInst );
    HWND CreateTbarDraw ( HWND hWndParent, HINSTANCE hInst );

    Использовал toolbar.bmp и draw.bmp из VeCAD
    (в исходниках LiteCAD эти bitmap панели к сожалению отсутствуют).
    Надо добавить вертикальные панели edit.bmp, format.bmp, dims.bmp, tbsnap.bmp,
    но пока это получается плохо - перестает работать vertical-splitter, появляются другие побочные эффекты.

    Теперь пользовательская подпрограмма Strelka работает, см. приложение.
     

    Вложения:

    #6
  7. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Исходники и исполняемый exe-файл
    Теперь пользовательская подпрограмма Strelka работает, см. приложение.
     

    Вложения:

    #7
  8. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    LiteCAD для топографии и строительной геодезии.
    Вычисления и представление объемов между двумя поверхностями, представленными в виде TIN, для меня особенно интересны.
    Но LiteCAD имеет только один по-настоящему 3-мерный примитив - точку (Point).
    Есть еще объект-структура TIN, состоящий из объектов 3-мерных граней, но это не 3dFace, принятые (например в AutoCAD) как базовый примитив для построения TIN, а 3-точечный объект.
    Из того, что я знаю, TIN строится по 3-мерным точкам в виде треугольников, чаще всего методом "триангуляция Делоне". При этом принято "замыкать" треугольник через дублирование первой его вершины так: 1-2-3-1.
    Таким образом 3dFace есть 3dPolyLine из 4-х узлов (Vertex), где 1-й и последний узел (точка) совпадают.

    Полилиния (PolyLine) в LiteCAD (как и в других CAD-системах) есть плоский примитив, по умолчанию имеющий Z=0.00 для всех узлов, но может иметь и Z<>0.00.
    Поэтому я строю в LiteCAD 3d полилинию (3dPolyLine) по 3-мерным точкам в виде плоской PolyLine с сохранением отдельно Z-координат для каждого узла.
    Для возможного обмена данными с другими программами, работающими с 3dFace и 3dPolyLine я вижу только один способ: экспорт-импорт через текстовый файл.

    Немного исправил работу подпрограмм:
    users Utils -> Draw 3dFaces
    Users1 -> Draw Surface

    Добавил в программу LiteCAD-Editor2 (menu "Users Utils" -> Users1...):
    а)
    SDR-Export - это функция для экспорта примитивов LiteCAD (Point, Line, PolyLine ...) в 2 файла:
    1. тахеометры Sokkia (SDR-33 протокол) фал работы (job file)
    2. другие тахеометры (например Lieca) свободны формат с разделителем данных запятая.
    б)
    Export3dFaces
    Import3dFaces
    ExportPoints
    ImportPoints
    это функции для совместимости с внешними программами, они пишут в файл и читают из файла PolyLines имитирующие 3dFace и 3dPoints.
     

    Вложения:

    #8
  9. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    А это исходники и исполняемый файл
     

    Вложения:

    #9
  10. ak_evg

    ak_evg Супермодератор
    Команда форума Форумчанин

    Регистрация:
    21 янв 2009
    Сообщения:
    11.269
    Симпатии:
    9.108
    Адрес:
    РашаФедераша
    а чё, все на басурманском?
     
    #10
    MaxKal нравится это.
  11. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Clip_3.png
    1. Язык заклятых друзей изучаю. Было чудо, когда один американец вдруг ответил мне по-русски, но он несколько лет работал на Украине и увез оттуда жену.
    2. Тема актуальна только за бугром (ну нет у них Горбушки, Савеловского, Митинского рынков, чтобы купить АвтоКАД).
    Если интерфес (кнопочки и прочее) прописать на Великом и могучем, то не о чем с ними будет говорить.
    Аглицкий принят для общения по умолчанию. Чтобы зауважали кириллицу нужна "Кузькина мать" - а она пока в отпуске.
    3. Авторский редактор LiteCAD можно переключать на русский язык и другие европейские, но я пока не освоил это переключение в своем варианте редактора - похоже надо писать файл соответствий рус-анг. - это отвлекает от главного.

    Смотреть скриншот:

    А по сути LiteCAD - какие есть мысли?

    Мне один коллега рассказал, как в командировке (не досмотрели в прорабской бытовке) кто-то поковырялся в его ноутбуке и "Митинский" АвтоКАД перестал загружаться. Дистрибутив он с собой не брал, купить там негде и была реальная ж..а!
    Надо открывать файлы проекта и забивать проектные точки в тахеометр, а нечем.
     
    #11
    BorisUK нравится это.
  12. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Реальная история, за сказанное отвечаю. (Можно удалить - на усмотрение модератора)
    В солидную организацию пришли дяденьки, опечатали системные блоки и унесли их на исследование.
    Те до кого не дошли, задумались о том, чем заменить некоторые "сносимые" программы.
    Ребята реально рассудили, что "стрелочниками" могут оказаться они, а не их начальники, которые пожлобились купить необходимые для работы программы.
    Те из наших коллег, кто уже столкнулся с такими делами, здесь писать об этом не будут - не до того им, да и кому охота "трясти грязным бельем".
    Но как сказал кто-то: "Предупрежден, значит вооружен".
     
    #12
    Кирилл Большаков и X-Y-H нравится это.
  13. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Есть программа, которая записывает точки маршрута спутникового приемника или навигатора в текстовый файл.
    При этом строки имеют следующий вид:
    ROVER
    TOW 373889.96875000 WN 1700 - GPS time
    B 55.65302785 L 37.56813404 H 239.240 - geodetic coordinates
    X 2858970.698 Y 2199171.819 Z 5242953.156 - geocentric coordinates

    Добавил в LiteCAD-Editor2 подпрограмму "Import GNSS-Points", которая выбирает только строки начинающиеся с "X "
    На скриншоте видно точки выбранные из файла xxxxxxx-coords.txt (внизу часть этого файла).
    Теперь можно более тесно интегрировать спутниковую навигацию с LiteCAD.
    Скриншот: GNSS-Import.png
     
    #13
  14. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Программа предполагает и топографическую съемку, поэтому добавил подпрограмму для этого случая.
    При этом строки имеют несколько иной вид:
    ROVER
    TOW 342634.00 AntennaHight 1.000 - GPS time & Antenna-Hight
    X 2858959.000 Y 2199176.000 Z 5242934.000 - geocentric coordinates
    PntNum 2001 EpocCount 10 StartTOW 342624.00000000 StopTOW 342634.00000000 X 2858959.000 Y 2199176.400 Z 5242934.000 dX 0.000 dY 2.600 dZ -1.000 Code ROAD begin
    - эта строка более "насыщенная", кроме номера точки содержит количество эпох записанных на ней, старт и стоп время, координаты, поправки к координатам от базовой станции и кодирование точки.
    Добавил в LiteCAD-Editor2 подпрограмму "Import Survey-GNSS", которая сначала выбирает строку с высотой антенны над землей, а затем строку записанной съемочной, точки, GNSS-Import-Survey.png начинающиеся соответственно с "TOW " и с "PntNum "
    На скриншоте видно точки выбранные из файла xxxxxxx-coords.txt (внизу часть этого файла).
    Скриншот:
     
    #14
  15. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    А вот так это выглядит при последовательном чтении трека и съемочных точек в один чертеж: GNSS-Import-Track-&-Survey.png
     
    #15
  16. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Интеграция спутниковых измерений с CAD-системой
    Выкладываю "кучкой" в том смысле, что одним файлом 3 программы:
    GNSS-Monitor4 (попроще),
    GNSS-Monitor3 (посложнее),
    LiteCAD-Editor2 (для просмотра данных в CAD),
    там же несколько скриншотов (чтобы полупить глазки).
    Подробности в теме:
    http://geodesist.ru/forum/threads/П...вигаторами-в-практике-геодезиста.5101/page-21
     

    Вложения:

    #16
  17. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Обновление программы LiteCAD-Editor2
    Добавлены 3 вертикальные панели инструментов:
    Edit (редактировать),
    Snap (привязки),
    Dim(ensions) (размеры).
    Их видно на скриншоте.
    Надо добавить Tips (подсказки) ко всем иконкам инструментальных панелей, но пока не получается.
    LiteCAD-hatch.png
     

    Вложения:

    #17
  18. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    LiteCADeditor-6-ToolBars.png
    ToolTips - всплывающие текстовые подсказки
    Для тех, кто мало знаком с CAD-системами иконки в инструментальных панеля мало о чем говорят.
    Для большей информативности делаются ToolTips - всплывающие текстовые подсказки.
    Подсказка появляется при наведении курсора мыши на иконку.

    Добавил такие подсказки для каждой иконки во всех 6-ти инструментальных панелях.
     

    Вложения:

    #18
  19. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Road-Test6.png
    LiteCAD стал достаточно трехмерным, чтобы работать с нерегулярными поверхностями (частный случай - топографическая съемка).
    Добавил в свою реализацию редактора программу с громким названием "ROAD" - "ДОРОГА".
    Работает с 3dFace'ами и 3dPolyLine'аим.
    Строит от проектной осевой 3d-полилинии проектный профиль дороги ( вариант: траншеи-насыпи) с построением откосов по СНиПу.
    Откосы выводятся на существующую поверхность земли (топосъемка в виде 3dFaces).
    3dFaces можно строить вручную.
    Описание работы внутри архива. Но оно и весь интерфейс
    , как заметил здесь ak_evg
    Будет интерес/заявка - переведу на Великий и Могучий.

    P.S. Внутри архива только EXE-файл моего редактора.
    Для работы нужен как минимум файл LiteCAD.dll - выкладываю отдельно.
     

    Вложения:

    #19
  20. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Scan3dFaces_3.png Scan3dFaces_2.png
    Добавил несколько вспомогательных под-программ для работы с 3d-примитивами и поверхностями.
    Почти все они объединены в пользовательском окне "Users2 ROAD".
    Это подпрограммы построения и модификации 3d-примитивов, из которых строится трехмерный профиль дороги (или в более общем смысле насыпи-траншеи).
    Построенный профиль можно обрабатывать в программах считающих объемы (например в Credo-...).

    В поверхности, построенной из 3dFace трудно разглядеть пропущенные места -"дырки".
    Вот одна из под-программ "Scan 3dFaces":
    1. открыть файл LC-hatch3dfaces.lcd
    (места, где специально удалены 3dFace помечены жирными белыми окружностями)
    2. меню -> Users Utils -> Users2...
    3. в появившемся окне "Users2 ROAD" нажать кнопку "Scan 3dFaces"
    4. на открытом чертеже все грани (3dFace) будут залиты серым цветом
    а пропущенные при построении поверхности места будут черными "заплатками"

    Их можно заполнить вручную: кнопка "Draw 3dFace" все в том же окне "Users2 ROAD".
    Но удобнее перед этим закрыть видимость только что созданного слоя "Hatch"
    (меню -> Format -> Layers...)
     

    Вложения:

    #20

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

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление