
Contents
Introduction
Describes the purpose and general capabilities of the software.
Getting Started
Describes a simple introductory set of steps for creating a circuit layout.
Application's Main Screen
Gives an outline of the user interface.
Basic Concepts
Describes the basic principles applied when creating drawings, circuits and symbols using Circuit Scribe.
Main Menu
Describes the commands available through the main menu.
Main Toolbar
Describes the functions of buttons on the main toolbar.
Control Toolbar
Describes the functions of buttons on the control toolbar.
Preview window
Describes the preview window and its special functions.
Library Toolbar
Describes the functions of buttons on the library toolbar.
Library Control
Describes the behaviour and functions of the library control.
Right Click Menus
Describes the commands available from right-click pop-up menus available on the main display, preview window, and library control.
Selecting objects and nodes
Describes how to select an object for special editing features such as scaling and manipulation of individual points.
Special keys
Describes features accessed using keyboard keys.
Status Bar
Describes items displayed on the status bar..
Revision History
Change log
Other pages
Netlisting
Creating Netlists for Simulation and PCB Layout.
Introduction
With Circuit Scribe software, you can:
- Create and print circuit diagrams (schematics)
- Create screen-capture graphics for use in illustrating web pages
- Export netlists to PCB layout software
- Export netlists to Spice circuit simulation software
- Export Bill of Materials lists
- Automatically create new component outlines by importing IBIS files
Circuit Scribe's line and colour editing features allow you to create illustration quality layouts as well as doing routine circuit design and documentation.
To illustrate this, I created an example of a circuit illustration (part of which is shown below), based on an illustration that I created originally in 2001 (in the page thumbnail on the right) for publication (Seymour C J, "The Road to High Frequency Applications for SiC Power Diodes", Power Electronics Europe, Issue 6, 2001).
The example started with standard general library components from the built-in library file, which were then modified to thicken lines and include different fill colours in certain component objects, creating the library "Illex.lib", which is provided in the library samples when Circuit Scribe is installed, and the circuit layout was further augmented with text and drawing elements, resulting in the example file "PwrOsc.cct".
The illustration below was simply created by capturing the display using Alt-PrtSc, cropping to the required part of the image using an image editor, and saving it as a JPEG file.

For the entire illustration layout, click here.
Circuit Scribe can be used to create circuit diagrams for all types of electronic circuit, including integrated circuits. For example, the following diagram shows the internal structure of the classic 741 op-amp (for more details, see Netlisting):

Circuit Scribe has the capabilities to create valve circuits for historical illustration, or for contemporary use (e.g. valve-based audio amplifiers). The following circuit extract was taken from the Twentieth Edition of the Radio Amateur's Handbook, 1943:

For the entire circuit, click here.
Getting Started
Windows Install
You can install a 32 bit or a 64 bit version for all users. These options are supported with 2 installers, one for each architecture. The file name indicates the options, e.g.
"Install_CCTScribe102_64_All.exe" installs a 64 bit app for all users.
"Install_CCTScribe102_32_All.exe" installs a 32 bit app for all users.
Within the file name, 102 means version 1.0.2,
32 means 32 bit architecture,
64 means 64 bit architecture.
The executable is named CCTScribe.exe in both cases.
If you download the files in a zip file, you must first unzip the file to extract the .exe files. Don't forget to run antivirus or antimalware software on any downloaded files before using them.
Note that CCTScribe version 1.0.1.0 installs by default to CJS CCTScribe32 in the 32-bit Program Files directory, whereas version 1.0.0.0 installed to \CCTScribe. Therefore, version 1.0.1.0 will not replace the old version. You should uninstall the old version first, unless you want to keep it. Version 1.0.0.0 has the Start menu entry "Circuit Scribe Circuit Drawing Software" and version 1.0.1.0 has the Start menu entry "CCTScribe".
If you have previously used CCTScribe and have moved or reorganised project or library folders your project and library folders might not be set up to point to the right place. This will cause an Error message box to appear, with the message "Could not open data file", quoting the library file pathfile. In this case, use the main menu Setup / Miscellaneous command to open the Miscellaneous options dialog and browse for the correct folders, or use the "Reset to defaults" button to set the folders to point to the default libraries that are installed with the application. See Main Menu/Setup/Miscellaneous for further details.
CCTScribe comes with a number of example circuits and drawings, including some examples used in the netlisting section. These are located in the subfolder "\projects" under the installation directory.
Application's Main Screen
The circuit layout is displayed on the main display window.
A library control allows you to select pre-drawn objects to be placed on the main display.
A preview window shows how the library component that you select will appear on the display.
Each item in the library list also has an icon which is based on the object's appearance to give a visual clue to the object together with its name before it is actually previewed. The preview is shown when you left-click on the item in the library list.
Basic Concepts
Primitive object
A primitive drawing element, such as a line, rectangle, ellipse, arc, pie, chord or text string.
Compound object
A compound object acts as a container for any number of primitive drawing elements and, in addition, has properties that are common to all of its primitives, such as object names, labels and values, and parameters used for netlisting, modelling, and bill-of-materials lists. A compound object can be rotated or flipped as a whole, and the transformation is applied to all of its primitive elements. You create a compound object by packaging a number of simple objects.
Simple object
A simple object is a special case of a compound object, which contains only one primitive drawing element. When you draw a line or rectangle, it is always created as a simple object and can therefore be given object properties such as a label or value.
Nested object
A nested object is created if you package a number of objects, and one or more of the objects are already compound objects. This is normally done to create a component symbol that includes compound objects such as gates or sub-system blocks that can be connected and moved independently, together with a package outline rectangle or a symbol to denote a power pin that is common to the other sub-system blocks.
If you package compound objects without including a simple object, a rectangular container will be automatically drawn which encloses the packaged compound objects.
Placing a component
The program starts with the "Insert new object" mouse mode selected. To place your first component from the default library (which contains an assortment of common symbols), select one of the items listed under "Name" in the library control.
When you left click on the library item, it is selected for placement and it is previewed in the preview window. The control toolbar is initially preset for drawing lines, so before placing the library object you need to click the library icon:

Now move the mouse cursor to the display window, and left click to place the object. To select a different object, left click on a different item in the library list, and place it on the display window in a similar fashion. The illustration below shows two placed components. The locations of pins where a connection can be made are shown by a small cross (but these crosses are not drawn when you print out a drawing):

To connect two pins together, you place a track (wire) object, which is selected from the control toolbar as this icon:

Left click with the mouse pointer aligned with the pin where you want the track to start (make sure you still have the "Insert new object" button selected on the main toolbar). Then move the mouse pointer, and the other end of the track will follow, jumping to the nearest grid position (as "snap to grid" mode is selected by default). When the end of the track (and the mouse pointer) is aligned with the pin on the other component, RIGHT click. The track is automatically linked to the pin, as long as you clicked close enough to it. If you need to route a track with bends, you can add additional line segments to the track before terminating it by left clicking on the mouse, this will insert a node in the track and the end of the next segment will now follow the mouse pointer. Tracks are not limited to any particular angle, nor are nodes constrained to the grid, if you select the "No snap to grid" button on the main toolbar.
Main Menu

The main menu provides control functions as follows:
File
Includes functions to open and save project data files, library files, and import IBIS files, as well as access to printer functions.
Open data file
Opens a project data file. These are files with the suffix ".cct" containing previously saved layouts. The file-open dialog box that it opens starts in the "project directory" option set up by the Setup/Miscellaneous menu item. Any previous layout on the display will be replaced.
Open and add data file
Similar to "Open data file", but adds the contents of the file to any existing layout on the display.
Save data file
Saves the current layout in a file with the same name as the previously opened file. If the file already exists, you will be prompted to check whether you really want to replace it.
Save-as data file
Saves the current layout in a file. You specify the file name in a dialog box. The file-open dialog box that it opens starts in the "project directory" option set up by the Setup/Miscellaneous menu item, but you can change the directory to another one.
Save selected objects (current page)
Similar to "Save-as data file", but only objects on the current page that have been selected will be saved in the file.
Open/Add IBIS file
Opens an IBIS file. An IBIS (Input/Output Buffer Information Specification) file is an ANSI/EIA standard method of providing Input/Output device characteristics, and such files are often supplied by IC manufacturers. They provide information about the pinouts of devices that Circuit Scribe uses to automatically create a component outline when you use this command.
Open library file
Opens a library file, which will be displayed on the library control. Library files have the suffix ".lib". The file-open dialog box that it opens starts in the "lib directory" option set up by the Setup/Miscellaneous menu item. Any previous library in the library control, under the currently selected library number, will be replaced.
Save library file
Saves a library file from the library control for the currently selected library number. The library will be saved in a file with the same name as the previously opened library file. If the file already exists, you will be prompted to check whether you really want to replace it.
Save-as library file
Saves the current library in a file. You specify the file name in a dialog box. The file-open dialog box that it opens starts in the "lib directory" option set up by the Setup/Miscellaneous menu item, but you can change the directory to another one.
Brings up a standard printer dialog box, where you select the printer that you want to use from a drop-down list, select the print range (page numbers to be printed) and the number of copies. Before printing, you should check that the page setup and print scaling are appropriate.
Page Setup
Sets up the paper orientation and margins for your printer. The orientation may be Portrait or Landscape, the paper size may be selected from a drop-down list according to the paper sizes available on your system, and the print margins can be specified. After you have set up the Page Setup options, the print margins shown on the main display will be updated to show how your layout will appear within the print boundaries.
There are three nested grey rectangles drawn on the main display (you may have to pan or zoom out to see them): The outer one represents the edges of the paper, then the one inside that shows the outline of the maximum printable area of the paper, then the innermost rectangle shows the outline of the print area that includes the margins that you have set. These page margin rectangles are not drawn when you print a drawing, but inside the page margin rectangles, a reference grid is drawn that is also printed.
Print Scaling
This allows you to scale the layout objects for printing so that you can, for example, blow up a section of the layout to be printed at an expanded scale. You can use this in conjunction with print offsetting to centre the part of the page that you want to print. Hold down the Ctrl key, and use the arrow keys to change the print offset (this will move the whole drawing relative to the page outlines).
Exit
Exits and closes the program. If you have unsaved changes, you will be prompted to save them, however it is recommended that you normally save your changed project and library files using the relevant file saving commands before you exit the program.
Edit
Package selected objects (current page)
Packages all selected simple objects on the current page as a compound object (To unpackage, right-click on the object and select "Unpackage object").
Delete selected objects (current page)
Deletes all selected objects on the current page. Take care when deleting, and save your files regularly before each significant change. (Note that there is no "Undo" function.)
Edit settings of selected objects (current page)
Brings up a dialog box that allows you to change the following settings for each selected object on the current page:

- Page number - if you change it, the selected objects will move to the new page number. Uncheck "Include tracks and simple lines" if you want them to remain on their current page.
- Show Name - Normally unchecked, if you check it the name of the object will be displayed. The name of an object normally remains the same for similar copies of the object, and should match the name of its prototype in a library.
- Show Label - Normally checked, so that if you have defined a label for the object, it will be displayed. Labels may be changed to differentiate between different instances of a particular type of object.
- Show Value - Normally checked, so that if you have defined a value for the object, it will be displayed. The value is a primary specification parameter for an object, e.g. for a resistor it would be the resistance in ohms.
- Exclude from netlist - Check this if you don't want the object to be listed in a netlist, for example a ground symbol would use this. Note that this also excludes the object from Spice output.
- Exclude from Spice output - Check this if you don't want the object to be listed in a Spice output file, for example a terminal pin or ground symbol would use this.
Select all objects on current page
Selects all objects on the current page. You might need to do this before using the "Edit settings of selected objects (current page)" command, or if you want to save all the objects on the current page only to a file using the "Save selected objects (current page)" command.
Unselect all objects on current page
Unselects all objects on the current page.
Unhighlight all objects on current page
Unhighlights all objects on the current page (Highlighting is applied to objects that require attention after Netlist rule checks or Bill of Materials rule checks have been carried out).
List
Allows you to change the display format of the library list control.
- Large icons: A view showing the most icon graphic detail but using up most screen space per icon.
- Small icons: A view showing more icons but in smaller size with less graphic detail.
- List: A compact list format showing more icons than "Small icons" format.
- Report: A tabulated list format (the default) showing one library item and icon per line, with an additional column giving the number of pins for each item.
The format applies to the current selection (library 1 or library 2) and can be set differently for each library.
Setup
Several Setup options, such as "Style parameters", make use of a special custom spin control for entering or changing numbers, as illustrated below:

A number can be entered directly into the edit control using the keyboard. Alternatively, the associated up and down spin arrow buttons, and the left and right digit selector buttons, can be used to adjust individual digits of a number.
When you click on the up or down spin arrow button, the currently selected digit is highlighted and incremented or decremented accordingly. You can change the default digit that will be incremented or decremented by clicking on the left digit selector button to change the digit to the left, or clicking on the right digit selector button to change the digit to the right.
Miscellaneous

Sets up options for directories, files, and program behaviour when opening dialog boxes. You can change the default directories for project data files, library files, and you can specify the initial library file to be loaded in the library control when the program is first started. Each directory or file option has a "Browse" button which enables you to browse the directory tree structure for the desired directory or file. The "Reset to defaults" button will set the folders to point to the default libraries that are installed with the application. This should enable the default General.lib library to be loaded when you start the application. Note that you should normally set your own Project folder to be somewhere in your normal Documents or other user data areas rather than the default installation folder, as Windows does not allow writing to the installation folder by default.
Note that if there is no library file at the specified location, a "could not open data file" messagebox will be displayed, quoting the file path. Fix this by entering a valid file name in the Setup / Miscellanous dialog.
The "Centre dialogs" checkbox specifies whether dialogs are normally centred on the screen when they first appear, or if unchecked, are located to the top left corner of the program window.
The "Mouse wheel changes mouse mode" checkbox specifies the function assigned to the mouse wheel. If this setting is unchecked, the mouse wheel pans the display up or down. If this setting is checked, the mouse wheel changes to the next mouse mode, and the order depends on the direction in which the wheel was moved, allowing you to quickly select a different mode for manipulating objects on the display.
The last checkbox allows you to retrieve certain style and grid parameters from the %APPDATA% file. In previous versions, these would be initialised to defaults when you started the app. The parameters are also saved in the project file for your layout, but if you are starting a new layout this feature enables you to use the same style and grid settings that you were previously using.
When you click the Windows Start button and type in %APPDATA% you are taken to the normal area for storage of application data for your PC username, e.g. C:\Users\<username>\AppData\Roaming. There is a subdirectory used generally for CCTScribe and other programs from the same author, i.e. ...\Roaming\CJSSoft. Under CJSSoft once you have run the program you should find a folder ...\CJSSoft\CCTScribe containing the saved program settings in the file CCTScribe.ini. An example of this file's contents for the 32 bit version follows:
[CCTScribe]
LibDir=C:\Program Files (x86)\CJS CCTScribe32\Lib
LibFile=C:\Program Files (x86)\CJS CCTScribe32\Lib\General.lib
ProjDir=C:\Program Files (x86)\CJS CCTScribe32\Project
bCentreDialogs=1
bMouseWheelModes=0
bInitFromSavedOptions=0
Units=0
bPinLabelSnapOption=0
JunctionWidth=1
PinMarkWidth=1.25
PinLabelSpacing=0.5
i_paste_offset=2
gridsize=2.5
As for previous versions, your library directory, default library file, and projects directory are saved here and restored the next time you run the program. Also as in previous versions, the enables for centering dialogs and the mouse wheel mode are saved. The extra parameters saved in version 1.0.2.0 are:
Style parameters

Junction width: This specifies the diameter of junction dots, that are drawn when a track is joined to another track. If you change it, it will apply to all new junction dots, but will not change the diameter of existing ones.
Pin mark width: This specifies the width of the crosses drawn to identify pins. It applies globally to all pins- if you change it, it changes the size of all existing pin marks (These marks are only shown on the monitor display, but are not printed).
Pin label spacing: This specifies the spacing between a pin name and the pin coordinate used when a new pin name is entered, replacing a blank pin name, when a component outline is created by importing an IBIS file, or when the "Align pin name to line" right-click option is applied to a pin name. If you change it, it will apply to all new pin names, but will not change the positioning of existing ones.
If the pin label spacing option "Apply Snap" is unchecked, the pin name or description is located to the exact position calculated according to the font and style parameters. If checked, the pin name or description string will be snapped to the nearest grid position to the calculated position.
Grid parameters

Grid spacing (units): Specifies the spacing between grid points (locations where drawing coordinates are snapped to, and when grid lines are displayed, where they intersect). The grid spacing is in current units, i.e. if the units are metric, a grid spacing of 1.0 is a grid spacing of 1.0 mm. A range of useful pre-set grid spacings are available by clicking on buttons.
Paste offset: This defines a multiple of the grid spacing by which an object that has been copied to the clipboard (i.e. by selecting the object, and then pressing CTRL-C) will be offset (relative to the original object) when it is pasted (by pressing CTRL-V).
Units

You can select either metric or imperial units; the default is metric. When creating a new data file, you should select the required units before starting to place components. Although you can change the units at any time, and all layout objects will be automatically converted, this should be avoided because of possible rounding errors and mismatches between the grids on different unit schemes. Library components may be defined in either units and will be converted to the current units in your project layout.
Font typefaces
These options set up the font type, font style, and effects for the following text objects (using a standard Windows font dialog):
- String - A string object (i.e. the object itself is a text string)
- Label - A label string (and name string, if shown) of a simple or compound object
- Value - A value string of a simple or compound object
- Edit box - The font of edit boxes when used for editing strings. This is provided to allow the edit box to be adjusted for optimum legibility.
- Pin label - A pin name or description
Please note that although colour and size settings are included in the dialog (as it is a standard system dialog), these options do not set them. To set font size, you need to use the "Font heights" options. To set a string object's colour, right click and select "Edit object's drawing attributes". To set a name, label or value's colour, right click and select "Edit label, value or name colour".
The font settings apply globally to all objects in the layout.
Font heights

These options set up the font heights in units for the following text objects:
- String - A string object (i.e. the object itself is a text string). This sets the default height for the next string object to be placed (each string object has its own height setting).
- Label - A label string (and name string, if shown) of a simple or compound object
- Value - A value string of a simple or compound object
- Edit box - The height of the font of edit boxes when used for editing strings. This is provided to allow the edit box to be adjusted for optimum legibility.
- Pin label - A pin name or description
The font height settings apply globally to all objects in the layout, except for string objects.
Default object properties
This tabbed dialog enables you to set the initial defaults for a range of properties for each new object that you place on the layout.

The colours dialog selects the line and fill colour of objects. If you click the "No fill" button, objects such as rectangles are drawn in outline only and the body will be see-through. Left click on a colour square to select the colour for lines, and right click to select the colour for fill. The colour settings are shown in result boxes to the right, together with their standard descriptions. The colour boxes provide a set of standard, well-recognised colours, but you can also select a custom colour by left-clicking on the result colour boxes.

The lines dialog specifes the characteristics of lines used for drawing simple lines, tracks, buses, and outlines of shapes.
Line Style - Specify none for solid lines, or one of the dotted line patterns. There is an "even" type of dashed or dotted line where the spacings are more suitable for fitting dotted lines within object outlines on regular grid spacings - for example, the grids in vacuum tubes.
Ends - Specify round ends or square ends for lines.
Line Width - Specify the width of lines.
Dot Width - Specifies the width of the dots in a dotted line.

Object Settings - This dialog box allows you to preset the following settings as global defaults for new objects:
- Page number - and "Include tracks and simple lines" - Greyed out, as new objects always go on the current page.
- Show Name - Normally unchecked, if you check it the name of the object will be displayed. The name of an object normally remains the same for similar copies of the object, and is also used to initialise the the name of an object when stored in a library.
- Show Label - Normally checked, so that if you define a label for the object, it will be displayed. Labels may be changed to differentiate between different instances of a particular type of object.
- Show Value - Normally checked, so that if you define a value for the object, it will be displayed. The value is a primary specification parameter for an object, e.g. for a resistor it would be the resistance in ohms.
- Exclude from netlist - Check this if you don't want objects to be listed in a netlist, for example ground symbols would use this (this is best selected on a per object basis, rather than setting it for global defaults)
- Exclude from Spice output - Check this if you don't want objects to be listed in a Spice output file, for example terminal pins or ground symbols would use this (this is best selected on a per object basis, rather than setting it for global defaults).

Parameters: This dialog is for entering object properties used when generating Bill of Materials (BOM), Spice, or PCB output. Generally, there is no need to enter initial values for these, but they are edited for each individual object using the right-click menu option "Edit object's settings and properties" which brings up a similar dialog.
- Model - the model name to use in Spice output, e.g. ZTX109
- Params - optional parameters added after the model in Spice output, e.g. 1.0
- Description - Description field for BOM
- Source - Source field for BOM, e.g. supplier and/or manufacturer
- Part Number - Supplier or manufacturer reference number for BOM
- Unit cost - Cost per item for BOM
- PCB Package - Allows a package name to be specified for export to PCB layouts, e.g for a transistor: TO-18
- Notes - Additional user notes
For more information on parameters exported as PCB or Spice files, see Netlisting.
General properties
This tabbed dialog enables you to set general properties for your layout.

The Parameters dialog contains edit boxes to enter a Title and Author entry.

The Models dialog contains an edit box that you can use to enter Spice models.
For example:
.MODEL ZTX109 NPN IS=1.8E-14 ISE=5.0E-14 NF=.9955 BF=400 BR=35.5
+IKF=.14 IKR=.03 ISC=1.72E-13 NC=1.27 NR=1.005 RB=.56 RE=.6 RC=.25
+VAF=80 VAR=12.5 CJE=13E-12 TF=.64E-9 CJC=4E-12 TR=50.72E-9 MJC=.33
This will be appended to the Spice netlist output, before the .END statement, and should contain any models referred to by individual components in their object properties / Model field.
Tools
Count objects on page

Gives you counts of the number of objects and pins on the page, and also the number of selected objects, the total number of objects and pins, and the total number of selected objects.
Count statistics

Gives you tabulated statistics of the number of objects, number of selected objects, and pins on each page. Pages that have no objects are not listed, so you can use this to check which page numbers are in use.
Netlist

Checks the layout for netlist rule violations, and allows you to generate a netlist for PCB layout or for Spice simulation.
For more information, see Netlisting
Bill of materials

Checks the layout for Bill of Materials rule violations, and allows you to generate a Bill of Materials file.
Check for zero sized objects

Checks the layout for invalid objects that have accidentally been set to zero width and/or height, and lines or line segments whose ends have accidentally been laid out on top of each other, resulting in objects that can not be edited directly on-screen.
You should do this check if you notice spurious items in netlists, that show up as "??" entries and can not be identifed as expected on your layout (other than normal objects with missing labels or values).
If this dialog lists any zero width objects, when you click on "Highlight", they will be highlighted on the main display, so that you can check where they are (the highlight lines are drawn around the object with a small spacing, so an invisible object will be transformed into a small dot, or a track will be highlighted as usual, including the faulty zero-length segment).
If you click on "Delete", all zero-size objects will be deleted.
If you click on Cancel, no changes will be made.
Zero-sized objects that show up as a dot may also be selected by dragging a selection box around them and then deleted using Edit/Delete selected objects (current page).
Tracks with zero-length segments may normally be deleted in the usual way.
After you have dealt with any zero-sized objects, and checked that the rest of the layout is still OK, remember to save the updated file.
Help
About...
Gives general summary information about the application, version number, architecture (32 or 64 bit), build date and author's website.
Browse Help files
Displays help files.
View license file
Shows the End-User License Agreement
Open web page
Opens the author's web page
Main Toolbar
The main toolbar, which appears just below the main menu, is actually made up from a group of four toolbars which you can spread apart or move onto a new row if you wish by using the handle on the left of each one.

Mouse mode toolbar
These buttons select the mouse mode. The mouse wheel can also change the mouse mode, if the Setup/Miscellaneous dialog "Mouse wheel changes mouse mode" checkbox is checked.
Select objects
When you left click on an object, the object is selected, and its selection handles are shown. Selection handles on shapes (e.g. rectangle) may be used to change the size of the object. Selection handles on lines or tracks may be used to drag the individual nodes.
You can also left click and drag a marquee box around object to select them. Clicking again on a selected object deselects it. Dragging a box around multiple objects toggles their selection state. The status bar will show how many objects were selected or deselected with the last mouse operation.
Select object nodes
When you left click on an object, the object is selected, and its node selection handles are shown. The difference between these and standard selection handles is that, with nodes, you can move the relative positions of the corners of rectangles and triangles.
Insert new object
A new object is created when you left click with the mouse on the display window (The type of object is selected using the control toolbar).
Drag object
When you left click on an object, holding the left mouse button down, you can drag the object to a new position, releasing the left mouse button at the final position.
If you drag a track that is attached to pins, the nodes of the track will move, except for the attached ends. To drag individual nodes, use "Select objects" mode.
Zoom in/out at cursor
When you left or right click at a particular position on the main display, it will be re-centred on that position. If you left-click, the display magnification also increases. If you right-click, the display magnification will be decreased instead.
Note that panning may be achieved by using the left, right, up and down arrow keys, or by pressing the spacebar, which will re-centre the display at the current mouse cursor position (without changing the magnification). Zooming in and out can also be done using the '+' and '-' keys respectively - see Special keys.
Grid mode toolbar
No grid
This will avoid any time delays that might be caused by drawing the grid, especially on slow computers. It also allows you to see the drawing without distraction and closer to its appearance when printed out, and can be used when you want to screen-capture your illustration without the grid, for example when creating an image for a web page.
Dotted grid
This mode draws a dot at each grid intersection point; however, it is usually drawn slower than the lined grid.
Lined grid
This mode draws criss-crossing lines which intersect at the grid points where drawing coordinates are located in snap mode.
Snap mode toolbar
No snap to grid
Drawing coordinates are placed exactly where you locate them using the mouse, to the nearest pixel.
Snap to grid on
Drawing coordinates are placed on the nearest grid point (you can change the spacing of grid points using the Setup/Grid parameters menu item).
Page toolbar
Previous page
Changes the display to show the previous page (down to a minimum page number of 1)
Next page
Changes the display to show the next page (up to a maximum page number of 100)
Control Toolbar

The control toolbar selects the type of object that will be created when the main toolbar is set to "Insert new object" mode.
Simple Lines

The first symbol on the top-left of the toolbar selects simple line drawing. In this mode, the mouse left-click starts one end of the line, and the mouse is moved with the button down, and then released to place the other end of the line. The line properties are determined by the settings in the default object properties dialog, and can be edited after placement, by right-clicking on the line object, and selecting "Edit object's drawing attributes" or "Edit attributes of this primitive".
Shape objects









All these objects are drawn by clicking left on the mouse, dragging the mouse to expand the object and set the aspect ratio, and then releasing the left button to place the object. For non-rectangular objects, the mouse click and release positions define the equivalent rectangular area enclosing the object.
There are four varieties of triangle in different orientations. You can create further types of triangle later by editing nodes of the triangle.
There are also three variations of the rectangle as common shapes with concave and convex corners. These are all based on a shape with four corners (nodes), with appropriate properties selected for the nodes. You can modify the shapes later by editing parameters of the shape's nodes.
Special objects
Track

A track is a compound object containing a series of connected line segments, normally used to indicate a connection between two objects, or between the pins of two objects.
To draw a track, left click with the mouse pointer where you want the track to start. Then move the mouse pointer, and the other end of the track will follow, jumping to the nearest grid position (as "snap to grid" mode is selected by default). To add a node to a track, left click again and the first line segment will be ended at that position, the next line segment will start at the same position, joined to the previous line segment, and the end of the new line segment will follow the mouse pointer to the next position. When you want to end the track, RIGHT click, and that will define the position of the end of the last line segment of the track.
Track line segments are not limited to any particular angle, nor are nodes constrained to the grid, if you select the "No snap to grid" button on the main toolbar.
If you connect tracks (by joining one track to another with a junction), the tracks must have the same label, or an "inconsistent net label" check failure will be listed when you invoke the Netlist command.
If you start a track within a line segment of an existing track, the new track will be joined to the existing track with a junction dot. Also, if you end a track on the line segment of an existing track, the end of the new track will be joined to the existing track with a junction dot. Note: If the junction dot does not appear, you probably did not click close enough to the existing track to find it, so you will need to try again.
Bus

A bus is a special type of track object. It is drawn in exactly the same way as a track, but has some differences.
A bus is given a label of the form <name>[<num_1>..<num_n>], where "name" is alphanumeric, and num_1 and num_n are integers.
It connects tracks which have labels of the form <name><num>, where num is an integer in the range specified by num_1 to num_n for the bus.
Buses are used to diagrammatically indicate groups of tracks that are bundled together. However, they are not necessary to logically connect tracks, because the software will logically connect tracks if they have matching non-blank labels. Thus, tracks on different pages with the same label are connected although there is no graphic element connecting them.
Bus names are checked for syntax and consistency. If the bus label has bad syntax, a "bad track labels" check failure will be listed when you invoke the Netlist command.
For example: Bus1234[32..64] is a valid bus label, while Bus1234[32.64] (only one dot) and Bus1234[32..64 (missing right square bracket) are invalid.
If you connect buses (by joining one bus to another with a junction), the buses must have the same label, or an "inconsistent bus label" check failure will be listed when you invoke the Netlist command.
If you start a bus within a line segment of an existing bus, the new bus will be joined to the existing bus with a junction dot. Also, if you end a bus on the line segment of an existing bus, the end of the new bus will be joined to the existing bus with a junction dot.
Library object

When the library object button is selected, the library object that has been selected by the library control will be placed on the main display when you left-click with the mouse. In this mode, you can repeatedly place the same library object, or you can select different objects from the library and place them as required.
Junction

When the junction button is selected, a junction dot is placed on the main display when you left-click with the mouse. The junction dot can be placed on a track, in which case it will split the track, and the split ends will be joined to the junction. If the junction dot is placed on its own, tracks can be joined to it later. The junction can connect up to 3 tracks. The junction dot is also used to join buses.
String

When the string button is selected, you can place character strings on the main display with a mouse left-click. An edit box will appear, for you to enter the text to be displayed. When you hit "Enter", the string will be placed on the display with the font specified by the menu command Setup/Font typefaces/String, and with the height specified by the menu command Setup/Font heights/String object default.
To cancel text entry, right-click with the mouse anywhere outside the edit box.
After you have placed the string, you can edit the colour of the string by right-clicking and selecting "Edit attributes of this primitive" (Note that the fill colour and the line attributes do not apply to string objects).
You can edit the string text by right-clicking and selecting "Edit text string". You can change the height of the string by right-clicking and selecting "Edit string object size". The height is specified in the current units, therefore it will scale proportionately with any scale factor applied to the display.
All string objects have the same global font, which is specified by the menu command Setup/Font typefaces/String.
Preview Window
The preview window shows the currently selected library object. It shows how the library component that you select will appear on the main display. When you left click on an item in the library control, it is selected for placement and it is previewed in the preview window. Objects are always shown centred on the preview window.
When you right-click on the preview window, a pop-up menu appear to give you the following control functions:
Zoom in
Changes the zoom factor for the preview screen to the next highest magnification- you can now see more detail in the object.
Zoom out
Changes the zoom factor for the preview screen to the next lowest magnification- you can now see more of the object but in less detail.
No grid
No grid is drawn on the preview window; this may be useful to minimise any time delays that might be caused by drawing the grid, especially on slow computers, or to show the object without distractions.
Dot grid
This mode draws a dot at each grid intersection point; however, it is normally drawn slower than the lined grid.
Line grid
This mode draws criss-crossing lines which intersect at the grid points where drawing coordinates are located.
Preview settings
This brings up the Preview Settings dialog which allows you to set a "Scale to Placement" magnification factor. This is 1.0 by default. If you change it to (for example) 2.0, the object that you selected from the library will have all of its features magnified by the scaling factor when you place it on the main display. You can use a non-integral scaling factor (such as 1.5), and you can change the scaling factor again to place the same object in as many different magnifications as you like.
Library Toolbar

The library toolbar has two buttons on its left, labelled with a "1" or a "2", to select either library 1 or library 2. Library 1 is the one selected on start-up, and is pre-loaded at start-up with the library file specified by the dialog invoked by the main menu command Setup/Miscellaneous, under "Initial library file".
Before loading or saving a library file, the relevant library number should be selected by clicking on the library number button. You can load any library file to either number.
Library 2 is not pre-loaded on startup. It can be loaded by using the main menu command File/Open library file, after you have selected button "2".
Once you have set up two libraries, you can switch between them easily by clicking on the library toolbar buttons.
The button on the right of the library toolbar button is for editing the Title and Author of the selected library. Click this button to show the Title and Author information. If you change it, you must save the selected library for the changes to be permanent.
Library Control

The library control lists all objects in each library. The name of each object is shown in the first column, and the number of pins in the second column. The vertical scroll bar can be used to scroll down to see all the objects in the library. If you left-click on an object's name, it will be copied to the Preview window. If you right-click on an object's name, you get a pop-up menu selection:
- Delete item: Removes the object from the library.
- Rename item: Opens a dialog to change the name.
- Copy item to other library: If the currently selected library is 1, this copies the object into library number 2, and vice-versa. If no library is loaded in the other library, the object will appear as the first object in a new unsaved library.
- Move up: Moves the object one place higher in the library list.
- Move down: Moves the object one place lower in the library list.
Right Click Menus
Right click menu commands are available for the main display, the preview window, and the library control.
On the main display, a pop-up menu appears when you right-click on an object, string object, name, label, value, pin name or pin description. When you right-click on an object, a divider line in the pop-up menu shows you which commands apply to the object as a whole, or to every primitive in a compound object (items above the line), or commands applying to the primitive only (items below the line).
Object Pop-up Menu
This menu applies when you click on a shape or line element in an object. Some of the menu items may be greyed out or missing depending on the state of the object.
Add to library
Copies the object to the currently selected library. If no library is loaded, the object will appear as the first object in a new unsaved library. The object's name, which is normally not shown when it is on the main display, is used to identify it in the library list.
Delete this object
Deletes the object from the layout (Make sure you have saved your most recent changes to file if you are deleting objects, in case you might need to go back and restore the deleted objects).
Edit object's drawing attributes
This tabbed dialog enables you to edit the properties of colours and lines for the object. The dialog is the same as for editing a primitive, but the changes will be applied to EVERY primitive object in the compound object that you clicked.

The colours dialog selects the line and fill colour of objects. If you click the "No fill" button, objects such as rectangles are drawn in outline only and the body will be see-through. Left click on a colour square to select the colour for lines, and right click to select the colour for fill. The colour settings are shown in result boxes to the right, together with their standard descriptions. The colour boxes provide a set of standard, well-recognised colours, but you can also select a custom colour by left-clicking on the result colour boxes.

The lines dialog specifes the characteristics of lines used for drawing simple lines, tracks, buses, and outlines of shapes (Limitation: You can specify the width of shape outlines, but not dotted styles).
Line Style - Specify none for solid lines, or one of the dotted line patterns. There is an "even" type of dashed or dotted line where the spacings are more suitable for fitting dotted lines within object outlines on regular grid spacings - for example, the grids in vacuum tubes.
Ends - Specify round ends or square ends for lines.
Line Width - Specify the width of lines.
Dot Width - Specifies the width of the dots in a dotted line.
Edit object's page number
Enables you to change the page number of the object, which will move to the specified new page number when you click OK or APPLY.
Edit object's settings and properties
This tabbed dialog enables you to set various properties for the object.

The "Objects settings" dialog sets the following:
- Page number - if you change it, the object will move to the new page number when you click OK or APPLY.
- Include tracks and simple lines - Greyed out, unless you have selected several objects and invoked the dialog by using the main menu Edit/Edit settings of selected objects (current page) item.
- Show Name - Normally unchecked, if you check it the name of the object will be displayed. The name of an object normally remains the same for similar copies of the object, and is also used to initialise the the name of an object when stored in a library.
- Show Label - Normally checked, so that if you define a label for the object, it will be displayed. Labels may be changed to differentiate between different instances of a particular type of object.
- Show Value - Normally checked, so that if you define a value for the object, it will be displayed. The value is a primary specification parameter for an object, e.g. for a resistor it would be the resistance in ohms.
- Exclude from netlist - Check this if you don't want the object to be listed in a netlist, for example ground symbols would use this.
- Exclude from Spice output - Check this if you don't want objects to be listed in a Spice output file, for example terminal pins or ground symbols would use this. If this is checked, but not "Exclude from netlist", the object is listed in BOM and PCB netlists.

The "Parameters" dialog sets the following object properties, which are used when generating Bill of Materials (BOM) or SPICE output.
- Model - the model name to use in Spice output, e.g. ZTX109
- Params - optional parameters added after the model in Spice output, e.g. 1.0
- Description - Description field for BOM, e.g. "Transistor".
- Source - Source field for BOM, e.g. supplier and/or manufacturer
- Part Number - Supplier or manufacturer reference number for BOM
- Unit cost - Cost per item for BOM in decimal numeric format, e.g. 1.55
- Notes - Additional user notes
Copy object to Preview
Copies the object directly to the Preview window, without entering it into the Library list, so that further copies of the object can be placed directly (in Library mode) on the display.
Unpackage Object
Breaks a compound object up into simple objects (each of which is also an object, but contains only one primitive drawing element).
Add label and/or value
Brings up a dialog box which allows you to enter a new label and value at the same time.
Edit label and/or value
Brings up a dialog box which allows you to edit the label and value at the same time.
Add name
Brings up an edit box which allows you to add a name.
Edit name
Brings up an edit box which allows you to edit an existing name.
Add label
Brings up an edit box which allows you to add a label.
Edit label
Brings up an edit box which allows you to edit an existing label.
Add value
Brings up an edit box which allows you to add a value.
Edit value
Brings up an edit box which allows you to edit an existing value.
Rotate this object +90 deg.
Rotates the object in a positive Cartesian (anti-clockwise) direction, by 90 degrees.
Rotate this object -90 deg.
Rotates the object in a negative Cartesian (clockwise) direction, by 90 degrees.
Flip this object L-R.
Reverses (mirrors) the object about a line drawn vertically through the object.
Flip this object T-B.
Reverses (mirrors) the object about a line drawn horizontally through the object.
Debug Object
Shows debugging information about the object.
Menu items applying to primitives
Edit attributes of this primitive
As for "Edit object's drawing attributes", but changes only the attributes of the primitive that was right-clicked.
Edit angular settings of this primitive
Applies only to objects such as arcs, wedges or chords. Allows you to edit the start angle and end angle used to draw the object (which may have a circular or elliptical outline). If you use the "Apply" button, you can see the effect of the angle setting changes on the object without closing the dialog. Various angle shape types and angle settings are illustrated below, and the effect of specifying a fill colour for the angular shapes is also shown.

Toggle pin attribute
Enables or disables the pin attribute for a line or shape. Normally, lines with pin attributes enabled are used to indicate pins on circuit symbols. To create a pin, you draw a simple line and then enable its pin attribute. The pin mark is indicated by a cross whose size is set globally in the menu Setup/Style dialog, but which is not drawn when printing the layout. When a track is started or ended at the location of a pin mark, the track is linked to that pin and will remain attached if the object is moved or rotated.
Set force net to ground
If the primitive has the pin attribute, setting the "Force net to ground" property will cause any track linked to the pin to be assigned to the ground net. A symbol with the "Force net to ground" property may be excluded from netlisting, but will still ground the track, so that ground or earth symbols have the desired effects.
Remove force net to ground
If a primitive has been set with the "Force net to ground" property, this will remove it.
Add Arrowhead
Causes the end of a line to be drawn with an arrowhead.
Remove Arrowhead
Causes the end of a line that was drawn with an arrowhead to be drawn as a normal line.
Edit Arrowhead
Brings up a dialog box which allows you to change the arrowhead length and width.
Edit text string
Opens an edit box where you can change the text of a string object.
Edit string object size
Brings up a dialog box which allows you to change the height of the string object in current units.
Add pin name
Opens an edit box where you can enter the text of a pin name. Note that when you add a pin name for the first time, its position will be automatically determined. You can adjust the position later using the mouse "drag object" mode. Pin names are located near the pin mark according to convention for labelling integrated circuit symbols.
Edit pin name
Opens an edit box where you can change the text of a pin name.
Add pin description
Opens an edit box where you can enter the text of a pin description. Note that when you add a pin description for the first time, its position will be automatically determined. You can adjust the position later using the mouse "drag object" mode. Pin descriptions are located near the end of a line opposite the pin mark according to convention for labelling integrated circuit symbols (the description normally lies inside the rectangle outline of an IC).
Edit pin description
Opens an edit box where you can change the text of a pin description.
Hide pin name
Causes the pin name not to be displayed.
Show pin name
Causes the pin name, if present, to be displayed.
Hide pin description
Causes the pin description not to be displayed.
Show pin description
Causes the pin description, if present, to be displayed.
Pin name/description pop-up menus
This menu applies when you click on a pin name or description. The menu will state "pin name" or "pin description" according to which text string you clicked on.
Edit pin name
Opens an edit box where you can change the text of a pin name.
Rotate pin name +90 deg.
Rotates the text 90 degrees anti-clockwise.
Rotate pin name -90 deg.
Rotates the text 90 degrees clockwise.
Align pin name horizontally
If you entered a pin name on a tilted line, the text will be aligned with the angle of the line. This command will change the text orientation to horizontal.
Align pin name to line
This command aligns the pin name to the angle of the line, placing the text in the normal automatically determined position.
Edit pin name colour
Brings up a colour selection dialog which allows you to specify a colour for the pin name that you clicked on.
Object Name/Label/Value pop-up menus
This menu applies when you click on an object's name, label or value. The menu will state "pin name" or "pin description" according to which text string you clicked on.
Edit label and/or value
Opens an edit box where you can change the text of the label and/or the value.
Edit name
Opens an edit box where you can change the name of an object.
Edit label
Opens an edit box where you can change the label of an object.
Edit value
Opens an edit box where you can change the value of an object.
Rotate label and value +90 deg.
Rotates the text of the object's name, label and value 90 degrees anti-clockwise (the rotation parameter applies to all of these simultaneously).
Rotate pin name -90 deg.
Rotates the text of the object's name, label and value 90 degrees clockwise (the rotation parameter applies to all of these simultaneously).
Align pin name horizontally
If you entered a pin name on a tilted line, the text will be aligned with the angle of the line. This command will change the text orientation to horizontal.
Align pin name to line
This command aligns the pin name to the angle of the line, placing the text in the normal automatically determined position.
Edit label, value or name colour
Brings up a colour selection dialog which allows you to specify a colour for the label, value or name string that you clicked on.
Selecting objects and nodes
The program starts with the "Insert new object" mouse mode selected. To select an object, you need to change the mouse mode, using the mouse mode toolbar, by left-clicking the "Select objects" or "Select object nodes" buttons.

In "Select objects" mode, when you left click on an object, the object is selected, and its selection handles are shown at the corners of a dotted bounding box drawn around the object. You can also left click on an empty location, hold and drag out a selection box (marquee) to select multiple objects. Clicking again on a selected object deselects it, and dragging a box around multiple objects toggles their selection state. The status bar will show how many objects were selected or deselected with the last mouse operation.
By left-clicking on a selection handle, you can drag it to change the scale of the object. If the object is a line, a selection handle is shown at each end of the line, and dragging the selection handle will change the location of the end of the line.

If you select a compound object, selection handles are also shown for line primitives that are part of that object, as shown below. You can drag the ends of line primitives within compound objects to change their location independently of other primitives within the compound object (unless the line end coincides with a bounding box selection handle).

Objects stay selected if you change the mouse mode. If you change the mouse mode to "drag", you can drag selected objects by clicking on part of the object, or by clicking on a selection handle.
If you have selected several objects, and you then drag one of them, all the selected objects will move together.
If you select an object that contains nested objects, the nested objects are outlined with a dotted bounding box which has no selection handles. This is useful in identifying which objects are part of a nested set. For example, as shown below, the common power pins of an integrated package may be shown as part of the top-level object, with the package gates shown as compound objects nested within the main object, so that the individual gates may be dragged to any suitable part of a drawing. Clicking on the power pins symbol then identifies the nested gates that belong to that object with dotted bounding boxes as shown.


In "Select object nodes" mode, when you left click on an object, the object is selected, and its node selection handles are shown (these are circular, as opposed to the square selection handles of ordinary "select objects" mode). The difference between these and standard selection handles is that, with nodes, you can move the relative positions of the corners of rectangles and triangles and so create any desired irregular shape. Sometimes, scaling an object such as a triangle with "snap to grid" active results in the nodes of a rescaled object not aligned as desired. In this case, editing the nodes allows you to achieve the desired layout.
If you right-click on a node selection handle, a pop-up menu of options is shown:
- Make corner sharp (restores a rounded corner to "normal")
- Make corner convex
- Make corner concave
- Edit corner parameters - this opens a dialog which allows you to change the corner size (radius) and asymmetry for a curved corner
In the illustration below, from left to right, is shown:
- A rectangle selected using "Select object nodes" mode
- The top-right node of a rectangle moved by left-clicking and dragging
- The top-right node of a rectangle made convex
- The top-right node of a rectangle made concave
- The top-right and bottom-right nodes of a rectangle both made concave

The following illustration shows the effect of editing corner size and asymmetry:

The corner size and asymmetry are relative factors on a scale of 0 to 1, with 1.0 being the default and maximum corner size and 0.0 being the default and minimum asymmetry. A normal rounded corner is sized to meet the curve of the adjacent corner smoothly on the shortest side. An increase in the asymmetry factor causes the curve to be stretched out on the longer side.
Special keys
Arrow keys
The left, right, up and down arrow keys cause the display to be shifted in the relevant direction. If you hold down the Shift key while using the arrow keys, the display is shifted by a larger amount. If you hold down the Ctrl key while using the arrow keys, the display is shifted to offset it on the printed page (The Shift key will also increase the movement here). This is especially useful with print scaling, to allow you to select the part of a magnified page that you want to print.
The mouse wheel also shifts the display up or down, depending on which direction the wheel is moved, if the Setup/Miscellaneous dialog "Mouse wheel changes mouse mode" checkbox is unchecked.
Status Bar
The status bar displays information on the following fields in left to right order:
- Icon (not currently used - defaulting to a green tick)
- Mouse position in pixels
- Mouse position in user units
- Zoom factor
- Page number
- 'P' if project (drawing data) is modified
- 'L' if a library is modified
- Comments
The comments field shows various results. When an object is packaged or unpackaged, it displays, for example: "L=2, T=0, E=0, R=1, T=0, L=0, J=0, P=3", which shows the resulting number of packed or unpacked lines, tracks, ellipses, rectangles, triangles, libraries, junctions, and primitives. When an object is packaged, the counts "O=x, S=x" are added for the counts of all objects and simple objects. The counts for tracks, junctions and libraries should always be 0. It also shows the scale factor when an object is being resized by a selection handle, and the position shift for an object being moved.
When you select or deselect objects using the mouse, or use the main menu Edit/Select all or Deselect all commands, the comments field shows the number of objects selected and deselected. When making a selection box around objects some of which are already selected, the selected ones are unselected so this can result in positive counts for both selected and unselected objects.
Revision History
1.0.0.0 23rd January 2004 to 7th April 2005 - first working version
Default installation was to \CCTScribe in the C drive
1.0.1.0 4th November 2016
- Licensing disabled
- Ported source code to a more recent build environment
- Improvements to graphics
- Fixed errors when rotating objects
- Uninstall information written to registry following Windows guidelines
- installs by default to CJS\CCTScribe in the 32-bit Program Files directory
1.0.2.0 February 2021
This is an update to provide a 64 bit build with code safety improvements and other changes to suit running on Windows 10. The target platforms are Windows 7 or higher.
- Migrate code for 64 bit build compatibility
- Make recommended changes to Win32 functions to use updated "string safe" versions
- Fix various issues with window data, window function parameters and 64 bit pointers
- Update the About box for Windows 10 compatibility
- Removed dead code from old registered version
- Added saving of default style, grid and units settings in %APPDATA%
- Selected and deselected counts are now shown in the status bar for menu/edit/select all and deselect all commands; previously this was only done for mouse selections.
- Updated the help file and ported it to responsive HTML5 using better CSS from recent HTML projects
The 32 bit version installs to C:\Program Files (x86)\CJS CCTScribe32 (unless your Program Files (x86) setup is non-standard or you chose to install somewhere else).
The 64 bit version installs to C:\Program Files\CJS CCTScribe64 (unless your Program Files (x86) setup is non-standard or you chose to install somewhere else).