Many years ago, in the mid 70's, I began working with Process Control System. It was about the time that the first PLC and DCS systems were coming into use in the Process Industries.
I was an instrument engineer for a major contractor I was responsible for specifying these systems for many plants.
Typically I worked for weeks or months with a pen and a sketch-pad to produce the diagrams and the lists that were needed to specify the systems. Eventually I was spending up to a year on-site following up my designs.
Then the first computers became available to engineers, and I began to use a computer (a Univac) to produce the lists.
Some time later the first PC's began to arrive in the office (at this time the term PLC was about to be replaced by PC - Programmable Controller, dropping the Logic bit since they had by now become much more than Logic machines.)
Soon after, I was using the PC to produce the specs:
MSDos Graphics like Freelance for diagrams
Manuscript for the Words
Smart (!) for the database and spreadsheets.
I had been using the Univac system for the Instrument and IO Lists for some time, and it was a great improvement to find that I could do all I needed on a 286 in my office rather than having to go to the DP centre to submit and collect batch jobs.
I developed a database that was much more than the simple flat table that most people were using at the time. It even included Functional aspects, such as list of the operations related to the Units, Recipes and so on. However I could not get everything into the database, I still needed diagrams to express things efficiently.
Also, controlling the various files and keeping them in step began to be a big problem, especially with large fast changing project.
When I originally started work on what became ControlDraw with Visual Basic 2 it was going to be a database, with table and text based interface. At the time integrating Databases with VB was not half as easy as it is now, let alone producing diagrams.. The idea of producing any graphics was not in my mind at the time - apart from including a few references in the database to some externally produced diagrams.
It started when I wanted to produce some simple Sequence definitions, and I had the idea of using a few Icons to represent sequence steps, and then it just grew from there. I spent a lot of time thinking about diagrams and came up with a generic model for diagrams, and with a long and hard struggle, including a lot of calls the to Windows API, I managed to get my VB2 program to produce them something like they way that I wanted. That is now ControlDraw1 (Cdraw) - it was finished in VB4.
Since then VB6 has arrived, and component technology has greatly improved. One wonderful OCX control, Addflow3 from Lassalle has made a great difference. It handles all the diagramming graphics, and more, mostly eliminating the need for the API calls and greatly improving on the diagram user interface.