Pelles C forum

C language => Work in progress => Topic started by: sergey on December 29, 2012, 01:20:15 pm

Title: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on December 29, 2012, 01:20:15 pm
VeCAD & LiteCAD is free CAD-editor & SDK for programming on:
MS VisualBasic
vb.NET
C#
C++
Delphi (Pascal)

SDK has many examples - all OOP.

I program on C-lang a little (PellesC) and have decided to check up possibility to work in VeCAD (LiteCAD) SDK. Thus I at all don't know a C ++
Has to begin with selected BCX (Basic to a C translator).

BCX translated examples for compilation in LCC

I will be grateful to the one who will alter received C-code for compilation in the environment of PellesC IDE - at me it has not turned out.

My posts & examples (VeCAD & LiteCAD) on kolbasoft forum:
http://www.kolbasoft.com/forum/viewtopic.php?f=4&t=348 (http://www.kolbasoft.com/forum/viewtopic.php?f=4&t=348)

Links to download 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/file/id/512487?rel=center&s=wR_VlZP06h8hYJTXH84I_g&t=1356510749&ext=.zip&no_download_manager=true (http://vecad-dll-ocx.soft32.com/get/file/id/512487?rel=center&s=wR_VlZP06h8hYJTXH84I_g&t=1356510749&ext=.zip&no_download_manager=true)

http://vecad-dll-ocx.soft32.com/get/file/id/512487?iframe=true&width=420&height=200&no_download_manager=1&s=k4LuKMz3NDGUAK_D9K6Z1w&t=1356510957&ext=.zip&no_download_manager=true (http://vecad-dll-ocx.soft32.com/get/file/id/512487?iframe=true&width=420&height=200&no_download_manager=1&s=k4LuKMz3NDGUAK_D9K6Z1w&t=1356510957&ext=.zip&no_download_manager=true)

Links to download LiteCAD:
http://www.kolbasoft.com/download.html (http://www.kolbasoft.com/download.html)
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: DMac on December 31, 2012, 06:21:42 pm
Привет товарищ Климкин,
Я пересмотрел коды для LiteCAD API и адоптировал фаел Litecad.cpp работать в Pelles C.  Этот проэкт содержит новые фаелы Litecad.c, исправлен Litecad.h и демо. Демо должен успешно сделать образец чертежа.
Моя жена Виктория Викторовна и я поздравляем вас с Новым Годом!
Мы желаем вам всего самого наилучшего в этом 2013 году.

С уважением Давид МакДермот

I reviewed the LiteCAD API Code and adapted the LiteCad.c to work with Pelles C.   I also adapted an example for this demo.  It's not BCX but you can use this in a Pelles C project.

Happy new year!
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: TimoVJL on December 31, 2012, 10:21:24 pm
Happy New Year !!!!

Need LiteCAD.def ?
So here it is.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 04, 2013, 10:58:22 pm
English;
----------
Hello, David.

I congratulate you and your wife Victoria on Christmas!

Thanks for a congratulation both the fast and productive answer.

I too didn't sleep and have had time to rewrite the program in PellesC (VeCAD and LiteCAD).
Now I lead up it to working standards.

Thanks, timovjl

I hope that the subject of the free programming for xxxCAD on plain-C will be interesting not only me.

A little later I will lay out it in a working type for now I spread that is for today.

Important point for those who will want to look at operation of these programs:
1. for VeCAD it is necessary to have VeCAD.dll
2. for LiteCAD it is necessary to have LiteCAD.dll
3. I have shown links to them earlier.

P.S.:
*BAS-->BCX-->*.C-->LCC-->LiteCAD3.exe  - work from command-line & from menu.
*.c-->PellesC-->liteCADeditor.exe - work from command-line only, menu will work later.


Russuian (special for David):
-----------------------------------
Здравствуйте, Давид.

Поздравляю Вас и Вашу жену Викторию с Рождеством!

Спасибо за поздравление и быстрый и продуктивный ответ.

Я тоже не бездействовал и успел переписать программу в PellesC (VeCAD и LiteCAD).
Сейчас довожу ее до рабочих кондиций.

Спасибо, timovjl

Я надеюсь, что тема свободного программирования для xxxCAD on plain-C будет интересна не только мне.

Немного погодя выложу ее в рабочем виде , а пока выкладываю, то что есть на сегодняшний день.

Важный момент для тех, кто захочет посмотреть на работу этих программ:
1. для VeCAD необходимо иметь LiteCAD.dll
2. дя LiteCAD необходимо иметь LiteCAD.dll
3. ссылки на них я показал ранее.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 05, 2013, 07:47:07 pm
English:
--------
LiteCAD IDE Editor.
It is the first working variant.
I upload the full project - for improvement.

Many thanks to David (DMac) for its timely help!

The project did in PellesC v.5.00 - it is convenient for me that it is possible to do also WinCE 4.2 and
WinMobile 5.0 programming.

Not all menu items working - some functions simply aren't registered. And it not the most important.
The authoring editor is much more interesting and more important not to repeat, and to create the
additional functions (and interfaces for them).
I think that it and there is a principal mission of this fine tool LiteCAD-API.


Russian:
--------
LiteCAD IDE Editor.
Это первый работающий вариант.
Выкладываю проект целиком - для усовершенствования.

Огромное спасибо Давиду за его своевременную помощь!

Проект делал в PellesC v.5.00 - он для меня удобен тем, что можно делать также WinCE 4.2 и WinMobile 5.0
программы.

Не все пункты меню работающие - некоторые функции просто не прописаны. И это не самое важное.
Гораздо интересней и важнее не повторять авторский редактор, а создать свои дополнительные функции (и
интерфейсы для них).
Я думаю что это и есть главное предназначение этого прекрасного инструмента LiteCAD-API.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 05, 2013, 08:15:23 pm
David, I looked old messages at this forum and has been pleasantly surprised: there are you programmed
Applications for AutoCAD.

In this connection I have a question:
Probably-whether in a Pelles-C to make the program which will address to AutoCAD, to cause and fulfill
Its some functions?

In 2005 - 2007 I did programs for a building geodesy on VBA in AutoCAD, then on MS-VB6.
Read about that that some programmers successfully do programs for AutoCAD on Delphi.
There is tool MS-VC ++ ObjARX, at last is AutoLISP + DCL - but all it "from within" AutoCAD.
And here for Plain-C has found nothing.

Probably you had similar tasks, or you know such links?
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: DMac on January 07, 2013, 07:04:22 pm
Sergy,

All the work I did for AutoCAD was in AutoLISP.  I havn't used AutoCAD in perhaps 10 years and I know that some things have probably changed since then.

Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 08, 2013, 02:35:39 pm
In development of the small project:
-----------------------------------
Has added in menu User Utils-> Strelka (new files userutils1.c and userutils1.h)
Thus has a little altered files main.c main.h resource.h main.rc

It while only preparation for the user subroutine by name "Strelka".
But it causes the dialogue with three buttons.
Button BUTTON3 causes reversal to function "New Text Object" from library LiteCAD.dll
There is a window of dialogue and the user can enter a line of the text.
This line then is located in the drawing.

Dialogue "Strelka" and its functions has made in such style which to me managed to be mastered in Pelles-C.
Probably it not the best style of creation of windows and dialogues, but me it is clear more others.

New functions in a file userutils1.c

LRESULT CALLBACK wnd_proc0(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);  // #0 [Strelka]
HWND create_wnd0(void);  // window #0
void create_wnd_content0(HWND parent);
void register_classes(void);  // register all the window classes

Now it is possible to add new windows-dialogues: wnd1, wnd2...

In principal function WinMain (has changed _tWinMain) has added:
   // SNK addition: user utils
   register_classes();
   strcpy(lf.lfFaceName, TEXT("Tahoma"));
    lf.lfHeight = -11;
    lf.lfWeight = FW_BOLD;
    lf.lfQuality = DEFAULT_QUALITY;
    h_font = CreateFontIndirect(&lf);

   // SNK addition: user utils
   create_wnd0();  // create window "Strelka"
   ShowWindow(hwnd0, SW_HIDE);  // and hide it at start of program

I don't know as to include cursor-separator COkDivider
Lines of type COkDivider:: m_hCurHorz =:: LoadCursor () this OOP
There can be somebody will prompt, as them to transform for Pelles-C ?
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 13, 2013, 12:10:06 am
It is added:
1. A  windows divider-resizer (while only vertical), horizontal I can't make, but it and isn't so necessary;
2. The menu "User Utils", a dialogue window and 2 subroutines:
   "Text-draw" and "Strelka", the showing some base functions LiteCAD caused and executed in an interactive mode with use of a window "Command-string" (as it is accepted in many CAD-systems). "Strelka" requests from the user of 2 points, on them draws in the drawing a line, on the line ends puts these 2 points and nearest them text labels.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: Stefan Pendl on January 13, 2013, 12:57:29 am
I don't know as to include cursor-separator COkDivider
Lines of type COkDivider:: m_hCurHorz =:: LoadCursor () this OOP
There can be somebody will prompt, as them to transform for Pelles-C ?

That is C++, so no luck with Pelles C.

See http://www.catch22.net/tuts/splitter-windows for a way to include a divider/splitter in plain ANSI C.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: CommonTater on January 13, 2013, 01:22:19 am
I don't know as to include cursor-separator COkDivider
Lines of type COkDivider:: m_hCurHorz =:: LoadCursor () this OOP
There can be somebody will prompt, as them to transform for Pelles-C ?

That is C++, so no luck with Pelles C.

See http://www.catch22.net/tuts/splitter-windows (http://www.catch22.net/tuts/splitter-windows) for a way to include a divider/splitter in plain ANSI C.

Actually Stephan ... the newest version of Easy Splitter, recommended on the Catch 22 site is in User Contributions on this site.... HERE (http://forum.pellesc.de/index.php?topic=3691.msg13709#msg13709) 
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 13, 2013, 01:33:33 am
Thanks for a prompt reply, Stefan.
Thanks for a prompt reply, CommonTater.

I read this pages (and still some other concerning to Pelles-C), but to my great regret have a little understood.
I not the programmer, and the geodesist who tries to use programming for the trade.
I write programs as a monkey: I will look at something and I try to apply to the problems.

Therefore: if somebody corrects a code of my program (so that were loaded and both cursors-dividers worked) I will be very grateful.
And the most interesting would be to alter a code of author LiteCAD for cursors from C ++ in pelles-C.

Once again thanks for attention to this theme.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: CommonTater on January 13, 2013, 02:40:41 am
The Easy Split library is very easy to use, you just move the splitter window in your WM_SIZE handler.

Pelles C does not support C++ and not all of C++ can be translated back to ANSI-C ... So you may have to get your hands on a C++ compiler such as MinGW or MSVC++
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: Stefan Pendl on January 13, 2013, 08:53:22 am
Actually Stephan ... the newest version of Easy Splitter, recommended on the Catch 22 site is in User Contributions on this site.... HERE (http://forum.pellesc.de/index.php?topic=3691.msg13709#msg13709)

The top right hand corner of the Catch22 page allows downloading the old splitter source code and the new easy-splitter source code, so you will get the latest sources on both locations ;)



Sergey have you tried including the easy-splitter?
It is a ready to use extension, where you just use some functions to create and handle the splitter.

If you carefully check the source code, you should be able to implement it.
There is nothing that beats learning things on your own, if someone else does it for you it just doesn't stick as much.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 13, 2013, 09:15:04 am
Thanks for reply, Stefan.

I have already included a divider in the program and it works.
But it ONLY one vertical divider.

The problem in including also a horizontal divider (as it is made at the author).
I don't understand as well as where competently to connect this second divider.

After all the divider is not so much icon with arrows, how many window Windows.
That is why I ask to look at a source code of my program and to correct it for the second divider.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: CommonTater on January 13, 2013, 02:46:33 pm
The top right hand corner of the Catch22 page allows downloading the old splitter source code and the new easy-splitter source code, so you will get the latest sources on both locations ;)

Actually no ... The Easy Splitter on Catch22 is version 2.0.0 ... the one here, on the forums is 2.1.2.

There aren't a lot of differences, mostly the keyboard getting focus when you click the splitter and a small fix to the WM_SIZE handler.

Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 15, 2013, 06:09:37 pm
Has corrected: arrows-dividers, (Thanks, timovjl !!!).

Has added: subroutine UsersUtils --> Strelka
   on two points specified by the user draws a line,
   draws on its ends of a points and an Text-labels,
   then from a point #1 draws an arrow and copies it in 4 new places
   and also turns arrows (90 180 270 deg.).

Strelka it yet the subroutine, but only preparation for it.
I on the sly master functions LiteCAD.dll and their interaction with the program, is more exact with the user.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 20, 2013, 08:27:31 pm
With the help timovjl (big to it thanks for helps) has included work of buttons in StatusBar.

For those who doesn't want (can not) to download author's package LiteCAD.
In my project is:
1. The main file LiteCAD.dll (it is packed in RAR archive)
2. Some files of fonts (most necessary).

Thus compiled liteCADeditor2.exe it is possible to start from a folder of the project and to look it in work.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 22, 2013, 09:38:51 pm
I read LiteCAD.chm, I look examples and I include something in the program.
Illustration of the most simple creations and usage of properties of primitives Point, Line, PolyLine, Text in programming-mode.

In right lower to a corner arrows as polylines on a point 1 (a line 1-2), having the own (not by-layer) color are constructed.
In left upper to a corner arrows on a point 2 as the polylines having own (not by-layer) color are constructed.
To the first (initial) arrow the text "Arrow" also is added by the color and the height.
Then an arrow and the text are included in the Block "strelka" and this Block is multiplied around 2nd point (a line 1-2) 4 times with offset and a rotated through 90 degrees.

Creation is saved in format LCD (6 KB) and in format DWG 2005 (198 KB) - experience a difference.

On screenshots:
1. Creation in the self-made program LiteCADEditor2.exe - LiteCAD + SDK
It is visible an inscription of red color "UNREGISTERED LITECAD" is that SDK has a non-free origin.
2. Saved drawing Strelka1.lcd is opened in the authoring editor LiteCAD.exe
The terrible inscription isn't present - the editor is FREE.
3. Drawing Strelka1.lcd is saved as Strelka1.dwg (2005) and opened in AutoCAD.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on January 30, 2013, 11:34:50 am
1. Was required to termination Loop in the user function (not LiteCAD) on the ESC key.
Thus the cursor is in the LiteCAD DWG window.
Function requests from the user of pair of points and directly processes them.
For the ESC key VirtKey parameter = 27

Here is how it looks (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. For faster (than from the menu) a call of the LiteCAD functions added two ToolBar panels:
HWND  CreateTbarMain ( HWND hWndParent, HINSTANCE hInst );
HWND  CreateTbarDraw ( HWND hWndParent, HINSTANCE hInst );

Used toolbar.bmp and draw.bmp from VeCAD
(in LiteCAD source codes these bitmap of a panel unfortunately are absent).

It is necessary to add vertical panels edit.bmp, format.bmp, dims.bmp, tbsnap.bmp,
but while it turns out badly - vertical-splitter ceases to work, there are other ghost effects.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on February 10, 2013, 11:17:38 pm
Looking for 3d emulation added 2 custom functions:
1st builds Polyline as 3dFace by a point specified by the user, the nearest to it around the points,
the second requires you point inside a triangle of 3 existing points, and then do the points.
It is necessary to fill the holes, which are obtained for the 1st method.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on February 14, 2013, 06:03:23 pm
My profession is connected to topography and construction geodesy.
Thus computation and representation of volumes between two surfaces provided in the form of TIN, is especially interesting to me.
LiteCAD has only one rather 3-dimensional primitive - a Point.
There is still the object structure of TIN consisting of objects of 3-dimensional edges, but it's not 3dFace, accepted (for example in AutoCAD) as a basic primitive for TIN creation.
From this that I know, TIN is built on 3-dimensional points in the form of triangles, more often by the Delaunay triangulation method. Thus it is accepted to "close" a triangle through duplicating of the first it vertex:1 - 2 - 3-1.

Thus 3dFace is 3dPolyLine from the 4th nodes (Vertex) where the 1st and last node (point) match.
The PolyLine in LiteCAD (as well as in other CAD systems) is the plane primitive by default having Z=0.00 for all nodes, but can have and Z <> 0.00.
Therefore I build in LiteCAD the 3dPolyLine on 3-dimensional points as PolyLine with saving separately Z-coordinates for each node.
For a possible data interchange with other programs working with 3dFace and 3dPolyLine I see only one method: export import through the text file.

Corrected operation of subprogrammes a little:
users Utils-> Draw 3dFaces
Users1-> Draw Surface

Added in the LiteCAD-Editor2 program (menu "Users Utils"-> Users1...):
a)
SDR-Export
These are function for export LiteCAD entities (Point, Line, PolyLine ...) in 2 files:
1. Geodetic tachometer Sokkia (SDR-33 protocol) job-file
2. Other tachometer (for example Lieca) free-format comma-separated data.
b)
Export3dFaces
Import3dFaces
ExportPoints
ImportPoints
These are functions for compatibility with external programs, they write to the file and read from the file PolyLines imitating 3dFace and 3dPoints.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on February 21, 2013, 06:18:22 pm
There is a program that records waypoints satellite receiver or navigator in a text file.
In this file lines are as follows:
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

Added to LiteCAD-Editor2 routine "Import Track-GNSS", which selects only the lines beginning with "X "
The screenshot shows the point of the selected file xxxxxxx-coords.txt (at the bottom of this file.)

Added to LiteCAD-Editor2 routine "Import Survey-GNSS", which selects only two lines:
1. beginning with "TOW "
2. beginning with "PntNum "

ROVER
TOW 342634.00 AntennaHight 1.000 - GPS time & AntennaHight
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
 - last string has more info: Number of survey-point, start & stop survey-time, coordinates & base-correction-coordinates, Code & Code-Attribute - all for this surveyed point.

The screenshot shows the point of the selected file xxxxxxx-coords.txt (at the bottom of this file.)
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on February 24, 2013, 01:46:49 pm
For integration LiteCAD & GNSS
Program for Garmin & GlobalSat receivers/navigators build on chipsets SirfStar-II SirfStar-III SirfStar-IV
Platform: Win32, connect-interfaces: RS-232, USB, BlueTootth.
Now tested with navigator Garmin GPSMap-60cx (SirfStar-III) and receiver GlobalSat BU-353-S4 (SirfStar-IV) only.
See attachment.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on February 24, 2013, 09:10:19 pm
Update of program GNSS-Monitor4.
Now tested with 5 model receiver/navigator.
Example work in archive.
Info-file only Russian.
xxxxxx-Coords.txt -for simple & standallone geodetic works (for example in LiteCAD),
xxxxxx-Binary.txt - for translate to RINEX-file & precise post-processing (for example in Topcon Tools).
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on February 26, 2013, 11:20:14 am
Some bugs fixed.
In archive also example work with new receiver GlobalSat BU-353-S4
(OFFTOP: I make also version for Linux - see screenshot)
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: kielni on March 01, 2013, 10:20:16 am
Hello sergey

Maybe it will be OFF TOP ;) but:

Would you be kind to attach the source code of your software "GNSS Monitor" or provide a web link to a place where could it (that source code) be downloaded?

Best regards, kielni
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on March 01, 2013, 10:02:41 pm
Not now - work in progress, maybe later.

Now see please more complicated variant: GNSS-Monitor3.
RAW-data Messages MID-28 (0x1C) now adjusted for Receiver ClockBias & ClockDrift.
Aligns the measurement to a whole second, it is important for RTK-meassurement/surveying.
It can produce on the fly RINEX-OBS file (for post-processing for example in Topcon-Tools).
Tested only with receiver GlobalSat BU-353S4 (SirfStar-IV).

On screenshot: 4 windows of the program, Parsing.txt and RINEX Observer.obs files.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on March 18, 2013, 10:07:11 pm
Update program LiteCAD-Editor2.
Added Toolbars:
Edit
Snap
Dim(ensions).

The screenshot drawing with some types hatches.
There you can see all 5 toolbars:
2 horizontal - at the top and 3 vertical on the left.

Should be added to all the icons of the toolbars tips, but still can not do it.
Link:
http://www.kolbasoft.com/forum/viewtopic.php?f=4&t=348
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: TimoVJL on March 19, 2013, 01:16:28 pm
Should be added to all the icons of the toolbars tips, but still can not do it.
function WndProc()
Code: [Select]
case WM_NOTIFY:
if (((LPNMHDR)lParam)->code == TTN_NEEDTEXT) {
//LPTOOLTIPTEXT pTT = (LPTOOLTIPTEXT)lParam;
((LPTOOLTIPTEXT)lParam)->hinst = hInst;
((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(((LPTOOLTIPTEXT)lParam)->hdr.idFrom);
}
return 0;
resource.h strintable
Code: [Select]
STRINGTABLE
BEGIN
    IDS_APP_TITLE           "LiteCAD-editor2"
    IDC_TEST01              "TEST01"
    ID_FILE_NEW "New Drawing"
...
END
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on March 20, 2013, 02:58:54 pm
timovjl, Thank you for your attention to my non-professional research.
Add these lines to the program.

resource.h
Quote
STRINGTABLE  \resource.h(265): warning #2099: Missing type specifier
BEGIN  \resource.h(266): error #2001: Syntax error: expected ';' but found 'BEGIN'
IDS_APP_TITLE "LiteCAD-editor2"\resource.h(267): error #2156: Unrecognized declaration
END  \resource.h(270): warning #2099: Missing type specifier

Moved STRINGTABLE to file main.rc
---------------------------------
Code: [Select]
STRINGTABLE
BEGIN
    IDS_APP_TITLE           "LiteCAD-editor2"
    IDC_TEST02              "TEST02"
END

// Added 18.03.2013 by SNK for ToolBars
STRINGTABLE DISCARDABLE
BEGIN
    CM_SNAP_ENDPOINT "End-point Snap"
    CM_SNAP_MIDPOINT "Mid-point Snap"
    CM_SNAP_CENTER "Center Circle Snap"
    CM_SNAP_POINT "Point or Vertex Snap"
    CM_SNAP_INTER "Intersection Snap"
    CM_SNAP_PERPEND "Perpendicular Snap"
    CM_SNAP_TANGENT "Tangent Snap"
    CM_SNAP_NEAR "Nearest Snap"
    CM_SNAP_QUADRANT "Quadrant Snap"
    CM_SNAP_NONE "None Snap"
    CM_SNAP_DLG "Dialog Snap"
    CM_TOOL_POLAR "Polar Snap"
    CM_TOOL_GRID"Grid Tool"
END
The program compiles, but Tips do not appear.

Topic suggestions I looked in MSDN and other sources.
Added for each icon in the Toolbar TBSTYLE_TOOLTIPS
Code: [Select]
TBButton(&tbb[0], TD_SNAP_ENDPOINT, CM_SNAP_ENDPOINT, TBSTATE_WRAP | TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_TOOLTIPS);
TBButton(&tbb[1], TD_SNAP_MIDPOINT, CM_SNAP_MIDPOINT, TBSTATE_WRAP | TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_TOOLTIPS);

But it did not help.

He created from one of the tutorials feature WndProc_OnNotify
Code: [Select]
LRESULT WndProc_OnNotify(HWND hWnd, int idFrom, NMHDR* pnmhdr)
{
  LPTOOLTIPTEXT lpToolTipText;
  LPTBNOTIFY lptbn;
  int nItem;
  static CHAR szBuf[128];

  switch(pnmhdr->code)
  {
    case TTN_NEEDTEXT:
      lpToolTipText = (LPTOOLTIPTEXT)pnmhdr;
      LoadString(hInst, lpToolTipText->hdr.idFrom, szBuf, sizeof(szBuf));
     lpToolTipText->lpszText = szBuf;
      break;

    case TBN_GETBUTTONINFO:
      lptbn = (LPTBNOTIFY)pnmhdr;
      nItem = lptbn->iItem;
      lptbn->tbButton.iBitmap   = tbb[nItem].iBitmap;
      lptbn->tbButton.idCommand = tbb[nItem].idCommand;
      lptbn->tbButton.fsState   = tbb[nItem].fsState;
      lptbn->tbButton.fsStyle   = tbb[nItem].fsStyle;
      lptbn->tbButton.dwData    = tbb[nItem].dwData;
      lptbn->tbButton.iString   = tbb[nItem].iString;

      return ((nItem < sizeof(tbb)/sizeof(tbb[0]))? TRUE : FALSE);
      break;
 
    case TBN_QUERYDELETE:
      lptbn = (LPTBNOTIFY)pnmhdr;
      nItem = lptbn->iItem;
      return (nItem == 0)? FALSE : TRUE;
      break;
   
    case TBN_QUERYINSERT:
      lptbn = (LPTBNOTIFY)pnmhdr;
      nItem = lptbn->iItem;
      return (nItem == 0)? FALSE : TRUE;
      break;
   
    case TBN_TOOLBARCHANGE:
      SendMessage(hwndTb, TB_AUTOSIZE, 0L, 0L);
      return TRUE;
      break;
   
    default:
      break;
  }
  return FALSE;
}
It also does not take ToolTips.
I do not know what else to do.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: TimoVJL on March 20, 2013, 03:10:05 pm
Sorry,  stringtable goes to main.rc of course.
I just made those changes to your LiteCADEditor2 and it works in my tests.
Only problem was those duplicate id's.
Remember to add TBSTYLE_TOOLTIPS to window style when you create ToolBar window.
See example.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: TimoVJL on March 20, 2013, 03:39:27 pm
I attached that code to older message.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on March 20, 2013, 05:47:42 pm
I looked at your code, and add this to my code.
It works fine.

Again you helped me. Thank you.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on March 20, 2013, 07:43:26 pm
Thanks to timovjl ToolTips in all ToolBars are now working.
Title: Re: VeCAD (VectorCAD) & LiteCAD SDK for programming on BCX & C-lang (NOT OOP)
Post by: sergey on May 21, 2013, 07:33:57 pm
Added some geodetic subroutines, see archive inside.
Now can construct Road-profile.
Works only with LiteCAD.dll - see add. archive.