March 28, 2024, 01:53:29 PM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


my first real project - AxiPile

Started by John S, February 13, 2007, 01:02:48 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

John S

AxiPile is a structural foundation pile analysis program I am writing as a class project for two professors.  It will combine the functionality of two separate M$ BASIC programs (one VB and one DOS QBasic) and one Excel spreadsheet into one program.  This is only a start and there is still lots of work to do.  So far, I only have part of the user input interface coded.

In some areas of the GUI, I am using brute force, and I could use some advise on cleaning up the code a bit.  I have included the source and the exe files.  For example, I am looking for cleaner ways to show and hide the controls.  I am planning on recoding much of the location and size info on the controls to allow for resizing of the window.

Ultimately, this program will use dynamic arrays, grid controls, save and retrieve data to disk, generate html graphic and text output to be viewed in a browser and generate formatted printed output (report generation).   Once this work is done, my professors are suggesting that I might be able to expand and extend the pile analysis used to include dynamic analysis to model earthquake affects with varying water-table affects as part of a PhD dissertation ;)

John Siino, Advanced Engineering Services and Software

J B Wood (Zumwalt)

I can't beliee you are using QBasic for part of this.
That doesn't even compile!

Parker

I was under the impression that he wasn't using QB but was instead combining an old program's functionality into a new Aurora program. I could be wrong though.

J B Wood (Zumwalt)


John S

I want to publicly thank Paul for all his hard work in helping me on this project.
I was having some trouble with some mysterious crashes and I could get my mind around the project concept.
:D :D :D
John Siino, Advanced Engineering Services and Software

John S

Douh!!!

1.  A line in WinAxiPile_FileIO.src to strip out comments (identified by "//") and screwed up things.  I have added an if statement to test for the comment first and all is better now:


TabDlg::ReadInputFile(string IFilenm), int
{
string line, header, info;
int i, inum;
unsigned int hFile;
i = 0;
NumSoilLayers = 1;

// debugging codes used to track variable values, etc. when debugging
#ifdef DEBUG
OutputDebugStringA("ReadInputFile()");
#endif

hFile = OpenFile(IFilenm, MODE_READ);
    if(hFile)
    {
while(ReadString(hFile,line,254))
{
line = trimleft(line); // trim leading white space
if StrFind(line, "//") // test for comments              added line
line = StrLeft(line, StrFind(line, "//") );     // remove comments
line = trimright(line); // trim tailing white space




2.  I also had an issue with consistant units (mixing tsf and psf) which I have fixed.  Later I will add the option for mixing units and using metric (SI) units.

Later today, I will up load an updated file.
John Siino, Advanced Engineering Services and Software

John S

I'm busy this weekend cleaning up my code and working towards the actual analysis portion of the program.  I have rewritten portions to move the pile segment data to better reflect OOP.  My professors wanted me to start out with the GUI and by focussing on that, I mistakenly coded data a part of the GUI instead of making it it's own class.  The new code is much cleaner.
John Siino, Advanced Engineering Services and Software

John S

April 23, 2007, 01:45:58 PM #7 Last Edit: April 23, 2007, 01:48:58 PM by John S
Latest version of WinAxiPile:

Easiest thing to do is load the sample input file and tab around.  Go to the last tab and change the "PL" value from 0.00 to some other value an see the changes in the resulting data. 

Current Status:
1.  working Save & SaveAs Input ascii text file methods.
2.  working Load Input ascii text file method.
3.  working Save Output ascii text file method (not yet complete though)
4.  working soile Review & Pile Segmentation Tabs
5.  calculation of R-O values for sand (defining non-linear characteristics of soil)
6.  determine q-z and t-z values for sand and analyze pile (still need to verify calculations against know values).
     (still need to place limits on PL and soil stresses)
7.  revised/rewritten data structure for pile-soil interaction simulation/modeling to suit OOP (much cleaner code)

TO DO:
1. add pile analysis results to output (should be done tonight).
2. add graphical representation of pile load/stress and displacement (hopefully done tonight).
3. rewrite soil modeling data structures to conform to OOP
4. add R-O, q-z and t-z methods for clay soils
5. add R-O, q-z and t-z methods for sand-clay hybrid ("C-Phi") soils
6. rewrite clunkier portions of code to clean-up and smooth out wrinkles, may also rename source files to be more descriptive/intuitive.

for future:
7. create html or rtf output file or use ddoc
8. add "other" pile shapes such as hollow pipe piles and "H" section piles
9. (possible for Masters thesis) add Load-Reload methods to simulate pressure grouted piles/piers
10. (way in the future possible for PhD disertation work?) add seismic effects (partial, full Liquefaction)
11. (way-way in future) add lateral loading and analysis.

This project is being done for course credit towards my Masters in Civil Engineering.  I have really learned a great deal working on this project.  I am finding that Aurora and its OOP capabilities far exceed my feeble programming abilities.  As I look back on my code, I see many areas where improvements can be made.  I intend to produce a rewrite once version 1.0 is finished and working.  There is a possibility of this turning into a thesis once I get done with the "todo's".
John Siino, Advanced Engineering Services and Software

mrainey

Sounds like you're having a blast.  Creating something like AxPile really forces a person to think about the subject matter, not just the programming.
Software For Metalworking
http://closetolerancesoftware.com

John S

Reading a book about OOP versus actually coding is a different thing all together.  All the examples in the books fit on a single page, whereas WinAxiPile consists of something like 3500 to 4000 lines of code  ;)

I'll have to rethink my approach to programming.   I'm used to a top down, linear approach.   OOP is a different paradigm.  When I'm finished with this app, I gut it to create a generic program framework for future use.  I hope Paul will be able to implement operator and method overloading - that's where OOP really shines.
John Siino, Advanced Engineering Services and Software

John S

Added pile analysis results to output text file.
Rewrote large portions of output file to suit counting of line numbers for pagination (later)
used Parker's CString Class for dynamic strings
John Siino, Advanced Engineering Services and Software

John S

Latest version of WinAxiPile:
Easiest thing to do is load the sample input file and tab around.  Go to the last tab and change the "PL" value from 0.00 to some other value an see the changes in the resulting data.  Click on top row "buttons" on last tab to see plot change to reflect selected column of data.

This is essentially it for the GUI and functionality of the program (except for adding a help file and printouts of graphs).  I still have to verify the numeric output.

Current Status:
1.  working Save & SaveAs Input ascii text file methods.
2.  working Load Input ascii text file method.
3.  working Save Pile Analysis Output & Results as ascii text files
4.  working soil Review & Pile Segmentation Tabs
5.  calculation of R-O values for sand (defining non-linear characteristics of soil) (still need to verify calculations against know values).
6.  determine q-z and t-z values for sand and analyze pile (still need to verify calculations against know values).
     (still need to place limits on PL and soil stresses)
7.  revised/rewritten data structure for pile-soil interaction simulation/modeling to suit OOP (much cleaner code)
8. add graphical representation of pile load, stress levels and displacement.

TO DO:
1. add R-O, q-z and t-z methods for clay soils
2. add R-O, q-z and t-z methods for sand-clay hybrid ("C-Phi") soils
3. check output by hand calculations (revise/correct equations to suit)
4. add printout of graphs
John Siino, Advanced Engineering Services and Software

John S

I'm going to be starting this back up again very soon.  I took the summer off of programming.  I did take a summer class and I hope to finish my Masters by the end of December! Yeah!!!  :D
John Siino, Advanced Engineering Services and Software