Transmission Line Modelling Software

Again. No application ever has Save or Save As greyed out when you open a new project.

Ok well I guess that just leaves me and Harris Technologies... I respect your choice to do it differently.

I also disable it when any value is removed. The reason I prefer to do it that way is to avoid an invalid entry being saved.
 

Attachments

  • Bassbox.jpg
    Bassbox.jpg
    217.2 KB · Views: 493
Last edited:
Ha. I haven't used BassBoxPro. (although I imagine when you start a new design the Save button is not greyed out?)

But I have used WinISD, Word, Excel, Publisher, Powerpoint, Bluebeam, AutoCAD, Notepad, Sketchup, Visual Studio, Photoshop. All of which follow the convention that when you start a new document you can click save and it has the same function as save as. ;)
 
Ex-Moderator
Joined 2002
You start with the default project loaded. I don't see an advantage to having nothing loaded, it just means there will be loads of Null errors that need dealing with until the user has entered something into every box.

Surely this means the chance of error is high by leaving something in the default boxes that need to be changed? A more fail safe method might be to open with a blank project and highlight the minimum data boxes that need to be filled in to get a proper result. And couldn't null errors be suppressed until that minimum amount of data had been entered?
 
Surely this means the chance of error is high by leaving something in the default boxes that need to be changed? A more fail safe method might be to open with a blank project and highlight the minimum data boxes that need to be filled in to get a proper result. And couldn't null errors be suppressed until that minimum amount of data had been entered?

There are several different approaches and depending on the programmer and how they like to handle errors.

Like you I prefer to start with a clean slate, and either load the values or add them to blank boxes, but this approach generally means you need to be more creative with the load up code.

By loading default values you don't have to worry about how to deal with a null value error. I prefer to control the buttons through enabling and disabling them once each value has been validated and all mandatory fields are filled.

If you validate the entry as it is being entered you don't have to check it at save time, again no right and wrong ways, just personal preferences.
 
All this stuff is, of course, possible and will eventually get done. But, as previously mentioned, there is very little error checking at the moment.

I also hear what is being said about starting with no values entered. but surely things like amplifier input value would be really annoying if you had to go in and enter 1w each time? i don't see an advantage to having nothing entered to start with.

I feel it is more intuitive to start of with something that at least works, and then the user changes the values to suit their design...

Either way, thanks for the suggestions, I will bear it in mind and see what others think. In the mean time i will focus on some other things (like undo and comparisons...)

Pete
 
Yeah probably one of the hardest parts of writing code is getting the balance right between getting code written, and building in error checking in the early stages of an app.
I personally don’t see anything wrong with loading a few non variable defaults (from a separate config file) when a new profile is created, it saves time and it can help a newbie like myself with parameters I may not know.
But for me the sticking point is as a newbie when I fire up the app and there are lines and charts everywhere I found that very off putting. For someone who knows what they are looking at they may see it as a help, but to me I am thinking how do I get back to a blank screen to enter my data.
A newbie needs to see change take place to understand what their changes do. Even having to load a default file you know what type of file you opened for the screen to suddenly be populated.
This is purely a user preference the same way some people like to use tools that work from a command line while others like a GUI, just saying as a novice I found it very much in my face even though the intention is for it to help.

To generate the error… I changed some parameters of the default driver and saved it as a different driver name (At the time I couldn’t see a new project button to guide me through the creation process) I figured that must be how you create a new record.
I didn’t alter all of the values in the window, as I prefer to use WordPad to enter data. Since the driver parameters you want to enter are most likely in a document and not in your head, it is often quicker to just cut and paste the value into a text document.
I don’t think I would be the only one who does this as a quicker way to add data.

i.e.
Fs = 26.5
Bl = 23.8

Copying the file, renaming it and cut and pasting the data is quicker than finding the right box on the screen and you don’t have to fight with the app that is trying to change your values on you.
But as you can see I deliberately generated the error by adding an extra decimal point to see if you were error checking on load, and to see if it would give me chance to change the value should it not like it. (exception handling)
When I write an app I try to make it absolutely fool proof, but there is no app too secure for a talented fool :)

Agree need to focus on getting some function in the app and chase the holes later.
 
And when you ask them what steps they took to get the error it is always "I don't know I was just pressing buttons".

Out of curiousity I looked to see if Harris Technology did the rest of the code the same way I would do, and they did. (I don't feel so weird now :))
 

Attachments

  • Enabled - Disabled.jpg
    Enabled - Disabled.jpg
    349.6 KB · Views: 435
Version 2.8 has just been uploaded.

I have made the code for Undo a little more efficient and it now has 5 steps (for Undo and Redo), it could easily be more, I just don't want to take up too much memory and 5 steps seems sufficient.

Let me know if more would be helpful.
 
Thanks SS,

I am now going to stop working on the GUI for a little bit as I think I can make it so that you can also have multiple side branches to your enclosure. It would be great to include this functionality but it's potentially quite hard to program.

Anyway, I'll give it a go.
 

opc

Member
Joined 2004
Paid Member
Wow... finding this thread just made my day.

I've been waiting for a program like this for a very long time, and what you have here is exceptional! I modelled a full TL in less than 10 minutes from program open to satisfied result. Everything is very well laid out, input is logical, and the graphs do appear to be accurate. Driver parameter entry was simple, and everything seems to work as expected.

Kudos to schmeet for a job very well done, and for sharing!

In terms of debugging, I have the following comments:

1. On startup the "Make a directory" box appears behind the splash screen and makes it look like the program has frozen. It wasn't until I clicked on the program's tab on the windows bar that the GUI for directory selection appeared.

2. After entering a driver's parameters in the driver window, I clicked save and everything worked perfectly, but clicking in the white "Driver Library" box caused a recoverable crash.

3. Lvc is in Henries, which caught me out the first time through. After looking more closely, I notice that all your units are consistent, but this one might be best left in mH since every datasheet I've ever seem gives Lvc in this format. I had initially put in 1.35H and all the graphs were nonsense, it wasn't until closer inspection that I found my error and re-entered as 0.00135H

4. I'm still wondering what "Enclosure Width" does since it didn't appear to change anything on the graphs. I'm guessing it's used to derive the IB response for baffle step? If so, it doesn't appear to do anything. Going from 0.1 to 10 doesn't change the graphs at all.

For reference, I'm running Win 7 64-bit.

Thanks again for this wonderful contribution, and honestly, if it just stayed the way it is now, I'd be more than happy :) The above is simply nitpicking.

Cheers,
Owen