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

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

  1. sklimkim

    sklimkim Форумчанин

    Свободная 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
     

    Вложения:

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

    sklimkim Форумчанин

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

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

    Вложения:

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

    sklimkim Форумчанин

    Это "самодельный" редактор 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 можно запускать из папки проекта и смотреть его в работе.
    В папке проекта лежат ВСЕ ИСХОДНЫЕ ФАЙЛЫ на СИ.
    Я понимаю, что здесь СИ-программистов не густо, но все же ...
     

    Вложения:

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

    sklimkim Форумчанин

    А вот скриншот загруженного (самодельного) редактора liteCADeditor2.exe
    К слову сказать его (редактора) размер всего 83 КБ (без всяких оптимизаций).
     

    Вложения:

  5. sklimkim

    sklimkim Форумчанин

    Читаю 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) и открыт в АвтоКАД'е.
     

    Вложения:

  6. sklimkim

    sklimkim Форумчанин

    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 работает, см. приложение.
     

    Вложения:

  7. sklimkim

    sklimkim Форумчанин

    Исходники и исполняемый exe-файл
    Теперь пользовательская подпрограмма Strelka работает, см. приложение.
     

    Вложения:

  8. sklimkim

    sklimkim Форумчанин

    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.
     

    Вложения:

  9. sklimkim

    sklimkim Форумчанин

    А это исходники и исполняемый файл
     

    Вложения:

  10. ak_evg

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

    а чё, все на басурманском?
     
    MaxKal нравится это.
  11. sklimkim

    sklimkim Форумчанин

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

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

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

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

    sklimkim Форумчанин

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

    sklimkim Форумчанин

    Есть программа, которая записывает точки маршрута спутникового приемника или навигатора в текстовый файл.
    При этом строки имеют следующий вид:
    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
     
  14. sklimkim

    sklimkim Форумчанин

    Программа предполагает и топографическую съемку, поэтому добавил подпрограмму для этого случая.
    При этом строки имеют несколько иной вид:
    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 (внизу часть этого файла).
    Скриншот:
     
  15. sklimkim

    sklimkim Форумчанин

    А вот так это выглядит при последовательном чтении трека и съемочных точек в один чертеж: GNSS-Import-Track-&-Survey.png
     
  16. sklimkim

    sklimkim Форумчанин

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

    Вложения:

  17. sklimkim

    sklimkim Форумчанин

    Обновление программы LiteCAD-Editor2
    Добавлены 3 вертикальные панели инструментов:
    Edit (редактировать),
    Snap (привязки),
    Dim(ensions) (размеры).
    Их видно на скриншоте.
    Надо добавить Tips (подсказки) ко всем иконкам инструментальных панелей, но пока не получается.
    LiteCAD-hatch.png
     

    Вложения:

  18. sklimkim

    sklimkim Форумчанин

    LiteCADeditor-6-ToolBars.png
    ToolTips - всплывающие текстовые подсказки
    Для тех, кто мало знаком с CAD-системами иконки в инструментальных панеля мало о чем говорят.
    Для большей информативности делаются ToolTips - всплывающие текстовые подсказки.
    Подсказка появляется при наведении курсора мыши на иконку.

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

    Вложения:

  19. sklimkim

    sklimkim Форумчанин

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

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

    Вложения:

  20. sklimkim

    sklimkim Форумчанин

    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...)
     

    Вложения:

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