Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ferrellsl authored Nov 21, 2021
1 parent 563bf08 commit 9f7318a
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,28 @@
# QuikGrid
Contour mapping and 3D surface modeling app

This repo is for QuikGrid, the application originally developed by John Coulthard at https://www.galiander.ca/quikgrid/

This is the full application including the HelpFile in CHM format, not the grid generation algorithm code that is used by the app, although it incorporates the grid generation code within the app itself. The gridding alogrithm, also referred to some coders as QuikGrid, can be found in various other repos.

QuikGrid started out in life as a 32-bit Wndows application developed under the Borland C/C++ compiler. It was my goal to import the code into a modern version of Visual Studio and generate a 64-bit binary and to create a new CHM based help file for QuikGrid as the old HLP format was no longer supported under modern versions of MS Windows.

I was initially shocked at how easily the Borland code imported into Visual Studio and even the resource files generated for Borland C imported properly into Visual Studio without any issues. I initially used Visual Studio 2013 and generated a working 32-bit EXE. My next goal was to port all the 32-bit code to 64-bit code in order to process data files that exceeded 4GB in size. The 32-bit EXE will process approximately 200 million points, but I had data sets that exceeded 500 million points pulled from LIDAR files that I wanted to process to create countour maps and 3D surface models.

Porting to 64-bit was mostly straightforward. I had to modify all the windowing and mouse functions to work porperly on a 64-bit version of Windows. Once that was accomplished I next needed to modify arrays and loops so that they could exceed 32-bit limits. This was probably the most tedious portion of my porting efforts as far as the C/C++ code goes. Converting the HLP file to CHM (compiled HTML) was a nightmare.

I initially looked for tools that would simply translate or convert the old HLP file into a CHM file, but I wasn't successful in finding anything that would work and Microsoft's HTML Workshop would continally crash every time I attempted to read the HLP file. So eventually I found an app that would de-compile the HLP file into its respective components (http://download.jgsoft.com/helpscribble/helpdc21.zip). I was then able to be import these compinents into an application called HelpScribble (https://www.helpscribble.com/). HelpScribble took the de-compiled HLP file components and generated a working CHM file. Everyting imported just fine into HelpScribble except for the Index Links which I had to go through individually and manually rebuild. That was rather tedious and took the better part of 12 hours.

The code has now been moved over to Visual Studio 2019 and I decided it was time to put this release on github as John and I are not young men anymore. We're both retired but I won't divulge our ages! LOL!

KNOWN BUGS:

1. If the user tries to access the help menu from within QuikGrid after opening a data file or a grid file, they'll receive an error message that help isn't available. The workaround for this is to open the help file from within QuikGrid BEFORE importing a dataset or grid file. Help will then function properly for the rest of your session even if you choose to close and re-open the Help file. Another option is to just double-click on the QuikGrid.chm file whenever you need it. I'm unsure why this happens and haven't been motivated enough to find the cause and fix it.

2. On some systems, QuikGrid refuses to run unless it has been configured to run under "Windows 8 Compatibility Mode". I'm unsure why this occurs, but after running it successfully in compatibility mode, you can go back and set it to run natively and it will continue to run properly thereafter.

BUILDING:

Double-click the solution file and build the EXE. This app is a Microsoft MFC application so building a native Linux or MacOS version is probably out of the question.


0 comments on commit 9f7318a

Please sign in to comment.