QuickCAD 4.2 Sketching Tool
QuickCAD ©1988-2020 Kevin Millican
Version 4.2 (32-bit Windows) - Download



QuickCAD is a Windows update to an Atari ST program which was originally written in 1988 to enable accurate sketches to be developed for the Kyocera range of laser printers. In late 1988, the program was enhanced to allow it to be used to support a number of Atari ST applications including my first welding information management system (WIMS).

The program was updated at fairly regular intervals and later released as freeware.

A 16bit version for Windows was released in 1996 and worked OK on all 16bit and 32bit versions of Windows.
Unfortunately, Microsoft did not provide 16bit support on 64bit versions of their operating system, so the only way to use the program on modern operating systems was to use a virtual machine and older OS.

I came across my original Visual Basic source code for the 16bit version and later reworked it so that it will work on modern PCs with 32bit or 64bit architechture.

Although primarily designed for producing macro diagram and weld sketches, QuickCAD is also useful for producing many other types of drawing for illustrative purposes, particularly for direct use within database applications. It is an unusual vector drawing application because it supports flood fills - something usually only found in painting programs. This is useful where 'Bitmap/Paint' type features are desirable but the user requires an efficient file format or the flexibility of editing using vector tools. The QCD file format is 'text-only', making it possible to generate the diagrams in user-written programs.

QuickCAD is unrelated, and bears no similarity to the commercial CAD package distributed under the name:- 'Drafix QuickCAD' (later 'AutoDesk QuickCAD'). 

Users will find the interface very dated; it is based on a 1988 GUI after all, and in those days a lot of drawing programs had very different interfaces - there weren't really any agreed standards for how applications should look. Some even made heavy use of typed commands. Over time the best ideas stuck and became the standard - there were no irritating patents or "look and feel" law-suits to worry about. Hey, I even invented autofill text fields like you see in web browsers when I was programming for DOS and GEM - I wish I'd seen those software patents coming! ;) 


A PC running a 32bit or 64bit version of Windows.


• Direct saving to JPEG is now supported in addition to Windows BMP.
• Lines for main drawing tools may now be dotted or dashed. Note that this is only supported for thin lines.
• Lines and arcs may now have arrowheads at either or both ends; no need to draw these as before.
• In selection mode, the handle for the first point drawn shows in a slightly different colour (red) to the other one (or two) - this can be useful when you are altering the arrow ends on lines and arcs to see whether you are at the 'start' or 'finish' end.
• You can import the Windows clipboard as a background'
• If you have write access to the folder where QuickCAD.exe is located, exiting the program via the menu will set the current load/save path as a default. By design, this won't happen if you exit using the close box (I thought this was more useful than always saving the current location).
• When you load an image as a background using the file selector, it will be scaled to the current window size if it is too large to fit. Note that this scaling uses the Windows clipboard which will be cleared after the operation.
• Added 'Set Boundary' feature.
• Added 'Flip Horizontal' and 'Flip Vertical' transformations. These act on the objects within the set boundary area.
• Added 'Mark' tool.
• Enabled the crosshairs for all functions.
• Added some default pastel shades to the colour selector dialog custom colours and improved the persistence and general handling. If you pick a colour that's not in the defaults it will automatically be added to the custom colours, kicking out another on a first in/first out basis. Also when you load a drawing, any non-standard colours will be added to these custom ones so that they can easily be re-used.
• Fixed bug in copied text objects that prevented them being unique.
• Improved memory cleanup for large drawings


• Direct calls made to Windows API for Font, Colour, and File dialogs. Original bespoke file dialog dropped.
• Tidied up several menu options; replacing "Load" with standard "Open" terminology, correcting decrease percentage warning from 75% to 80%, and "Line Widths" instead of "Line Styles".
• Added option to load and clear a background bitmap or jpeg for annotating photos or tracing.
• Added "Selection Scope" to Edit options. This allows you to change the attributes for, or move just the seleted tool types, eg. you can just select Numbers, change the font, colour etc. and even move all of them at once without affecting other parts of the drawing.
• Improved the "Save Bitmap" option so that it derives the name from the associated QuickCAD file and lets you chose where to save it.
• Changed the way this help manual appears so that the text file is not needed. This allows the single QuickCAD.EXE file to run from anywhere with full functionality. If the help file is in the same folder, it overrides the one built-in to the program.

• Compiled to a single native exe - no DLLs or OCXs required to run. Unfortunately I did not realise that although it would run, the Font and Colour dialog boxes were disabled.

• Works on 32bit & 64bit versions of Windows
• DDE support dropped as being irrelevant.
• Installer option dropped - just extract all zip contents to a folder and run QuickCAD.EXE


None required - just run from folder.
You might want to associate *.QCD files with the QuickCAD application by double-clicking a QCD file and pointing Windows to the location of QuickCAD.EXE.
NB. it is more reliable to right-click a *.QCD file and select 'Properties' and press the 'Change' button next to "Opens with:"


When QuickCAD is run, the user must select a drawing tool from the draw menu.  Seven tools are provided :-

• Line :
Click once with the left mouse button to set the beginning of a line and move the mouse to the desired point for the other end of the line. Press the left mouse button to confirm. Pressing the right mouse button aborts the operation. When the end of a line is fixed it automatically becomes the start of a new line; this allows shapes to be drawn.

• Box :
Click once with the left button to set one corner of a box and again to confirm.

• Circle :
Click three points with the left mouse button. A circle is drawn passing through the three points. NB: if the points are on or very close to a straight line this operation will report an overflow error because the calculated origin of the arc tends towards infinity.

• Arc :
Similar to a circle but an arc is drawn between the first and third point, passing through the second point.

• Mark :
A mark is drawn centered on the crosshairs. There are six types and you can define the size (radius or half-width/height).

• Number :
A small dialogue box appears requesting a number to start from (defaults to 1). The first number appears at the current mouse position and can be moved anywhere on the screen. The number is set in the desired location using the left mouse button and the number at the cursor is then incremented. This continues until the right mouse button is pressed.

• Text :
This is similar to the 'Number' option but the dialogue box requests a text string. Several locations can be confirmed using the left mouse button. Right mouse button exits.

• Fill :
Fill an enclosed area with a colour. Note that repositioning or deleting objects can sometimes result in the fill bleeding out somewhere. Repositioning existing objects can stop this effect but adding extra objects will not since they are drawn in sequence. 

There are two additional items on this menu used for temporary construction lines. The second of these '<Multiple>' is useful for drawing a set of equispaced parallel lines between two points. These make positioning of weld layers on multirun weld drawings much easier. Lastly, you can draw a temporary grid.

Construction lines and grids are deleted when the 'Redraw' option is selected or when redraws occur due to edits.

It is highly recommended that users switch on the 'Snap to Grid' option shen starting a new drawing. Display coordinates is also useful.


During drawing functions, the colour, font, and line width attributes can be changed from the 'Options' menu and 'Line Styles' menu at any time until placement is confirmed with the left mouse button.

NB Redrawing the screen resets some of the default attributes for new drawing objects.


'Select Mode' activates the editing tools.

In 'Select Mode', moving the mouse around the screen displays the control handles for each drawing component as the mouse passes over them.

7.1 The user may delete a highlighted component by simply pressing the <Delete> key.

7.2 Right clicking with the mouse enables the current object attributes to be changed from the pop-up menu.

7.3 Pressing and holding down the left mouse button with the cursor in one of these controls allows the control to be dragged to a new position. Releasing the mouse button moves the control and redraws the screen so that the result can be seen.

7.4 If the cursor is not over a control when the mouse is dragged, a rectangle is rubber-banded over the desired area. When the left mouse button is released, an image of this box can be moved to a new location and confirmed with a left mouse click. Alternatively the right button allows the user to abort this operation or change the attributes for the group.

When moving a group of objects, the action taken depends on whether 'Move Mode' or 'Copy Mode' is ticked in the 'Edit' menu :-

• If  'Move Mode' is ticked, any control points enclosed in the dragged rectangle (source) are moved to the relative position in the target rectangle. To move a complete component, all its control points must have been enclosed.

• If 'Copy Mode' is ticked, any component that has one or more control points enclosed in the source rectangle are copied to the position indicated by the target. Dragging the source rectangle around a single control point will make a copy of the individual component.

The "Selection Scope" dialog allows the user to select which tools are affected by area selections. This includes move, copy, and attribute changes.

Under the 'Specials' menu are 3 additional items:
• Set Boundary allows the user to define the area for 'Copy Bitmap image', 'Save Bitmap', and 'Save JPEG' operations. This boundary is saved with the file and is normally invisible but will appear briefly when the user enters select mode. There is only one boundary per drawing. To remove the boundary click on the 'Set Boundary' to start another one and then click the menu item again.

• If a boundary is set, you can use the Horizontal or Vertical Flip options on the enclosed area.


QuickCAD opens and saves its own format (*.QCD)

It can also save a copy of the image to a standard Windows Bitmap (*.BMP) file or JPEG (*.JPG) file.

It's also possible to use QuickCAD images in other applications by using the 'Copy Bitmap (All)' or 'Copy Bitmap Image' options.


QuickCAD files can be viewed in any text editor or used/created by other programs. Although drawings are saved as text, they are fairly compact because for each component only the changes to the previous variables are saved (a form of delta compression).

Internally, QuickCAD uses a 1 dimensional string array and a multidimensional array to store the information. The multidimensional string array is defined as follows :-

Type QPoint
Name As String * 10
FontName As String * 30
Txt As String * 4
x1 As Long
x2 As Long
y1 As Long
y2 As Long
x3 As Long
y3 As Long
radius As Long
thickness As Long
textindex As Long
ForeColor As Long
FontSize As Integer
FontBold As Integer
FontItalic As Integer
FontUnderLine As Integer
solid As Integer
Selected1 As Integer ' (used internally, not used in storage)
Selected2 As Integer ' (used internally, not used in storage)
Selected3 As Integer ' (used internally, not used in storage)
LineStyle As Integer
ArrowType As Integer
MarkType As Integer
End Type

When storing a drawing on disk, QuickCAD precedes each portion of information with a two letter code followed by '>'. Each variable is examined for each component in turn and if it is different to the last one stored, then it is saved. The variable codes are:

NM> The tool name, ie. Line, Box, Circle, Arc, Text, Number, Mark, Fill, or Bound
TX> Text string
FN> FontName
NO> Sequential Number
X1> x1
X2> x2
X3> x3
Y1> y1
Y2> y2
Y3> y3
RA> radius
TH> thickness
LS> LineStyle
AT> ArrowType
MT> MarkType
FC> ForeColor
FS> FontSize
FB> FontBold
FI> FontItalic
FU> FontUnderLine
SO> solid

There is a two line header preceding the data. The first line reads 'QuickCAD Drawing' and must not be altered if QuickCAD is to recognise the drawing. The second line is used to store version information and is user-defined.

The end of this second line may contain screen resolution information. Version 2.01 onwards includes text in the format :- RES ###.. where ###.. is the number of horizontal pixels available on the screen display when the file was saved. If QuickCAD loads a drawing with, eg. 'RES 1600' at the end of this second line, onto a PC using a 640 x 480 (VGA) screen (remember those?!), QuickCAD will scale the diagram to fit the smaller screen. These changes are permanent when the file is resaved at the lower resolution.

The converse operation (a small picture into a larger screen) does not perform automatic scaling because this is unnecessary. If desired the picture can be scaled manually from the 'Special' menu.

Anything following the line with a component name, 'NM>', is treated as attributes/variables for that component.

Quite complex drawings can be stored in this delta manner with far less disk space than would be required by the equivalent compressed bitmap file.

As the file format is relatively simple, it's quite possible to generate QCD files from other applications if required.

10. FAQ

Q1. When copying to clipboard, or saving to BMP, or JPG formats, some of my drawing is cutoff at the bottom or right side?
A1. Unless you Save JPEG/BMP (All) or Copy Bitmap (All), QuickCAD has to guess the extent of your drawing by looking at the positions of the tool handles. The actual graphics might be below or to the right of the handle, eg. Text or one side of an arc or circle. In older versions the best way of dealing this was to draw a rectangle matching the background colour around the desired area. From version 4.2 onwards, the 'Boundary' item creates a dedicated invisible outline for this purpose. The calculation of the drawing extent has also been improved, so it might not be needed.

Q2. I filled an area but later when I moved a tool handle, the fill bleeds out onto the rest of the picture. I drew another line to enclose it, but it still leaks out?
A2. The drawing is stored in sequence so any subsequent lines, arcs etc. are drawn after the fill. Delete the fill and repeat it when you have finished editing the rest of the drawing. NB. it would be easy to prevent this behaviour by drawing all the fills last but this would be more limiting and may also result in unpredictable results. 

Q3. Odd things happen if I move the QuickCAD window to a larger screen - I can't draw on all of the window and background images are duplicated outside of the drawable area?
A3. This appears to be caused by screen scaling on high resolution monitors and happens when your main screen has lower resolution  than the large screen. I'm looking at ways to workaround this issue.

Q4. When opening an existing file, sometimes there is a 5 second delay before the drawing loads?
A4. This is a bug in the Windows API file dialog that occurs when your "Quick access" entries contain folders or files that are no longer accessible. If you locate the offending entry and right-click  and select "Remove from Quick access", the problem will be resolved. Typically this happens when a network file share is no longer available.


11.1 QuickCAD is the intellectual property of the author, Kevin Millican, and is supplied under the FREEWARE concept.

11.2 Disclaimer : This software is provided with no warranty of any kind and the author accepts no responsibility whatsoever for any direct or consequential loss arising from it's use. By using the software you are expressing your agreement to these terms.