Banate CAD Documentation
As Visualization and Design systems go, Banate CAD is not that large of a system, but as small and easy as things may be, it does require some amount of documentation. Herein you will find links to a growing amount of documentation. At first, what you see here would be considered “Reference Manual”. What will follow on would be considered “User Manual”.
The core scripting language is Lua. As scripting languages are concerned, Lua is fairly minimal. It does follow in the footsteps of traditional ‘C’ syntax based languages, but it is a dynamic scripting language, much like Python, or Ruby. Lua itself only has a few key data types:
number – Represented by a ‘double’, has plenty of size and precision to deal with anything in the graphics environment
bool – Nice for performing logical operations, including branching control
string – Technically, a table of characters, but has some key features of its own
table – The core data type. Everything that’s not a number or bool, is a table
function – functions are first class citizens. They can be easily passed around to functions as parameters, as easily as tables and numbers
And that’s about it. The table is the key data type for language extension. You can construct “classes” if you like that style of programming, or you can just create flat functions, like in a typical ‘C’ style application. One of the benefits of scripting is that you don’t have to do memory management, as you do in ‘C’. Since memory management has probably led to the most number of bugs in C programs over the decades, it is good to not have to deal with that.
Scripts are typically created with the ‘.fab’ file extension.