After selecting the netlist CREATE button from the toolbar, a procedure named net_set_point is invoked to create a wire point each time the user presses the leftmost mouse button on the workarea canvas. Upon creation of the wire point, represented on the workarea by a polygon primitive in the shape of a small diamond, a wire segment is drawn from the wire point to the current position of the mouse pointer. A binding is created which causes the end point of the newly created wire to follow the motion of the mouse, effectively ``rubber banding'' the wire. Wire points are snapped to the nearest intersecting grid lines on the workarea so as to make it easier to align circuit elements with one another.
Before actually laying down a wire point, net_set_point first ensures that the point is not being placed inside the body of a component. Then, if the user interface has been configured to perform automatic soldering, the procedure will also attempt to solder the newly created point to any ports, wires or other wire points that overlap with its position. The net_set_point procedure maintains two lists containing the canvas identifiers of the wires and wire points created during the current netlist creation operation. These lists are consulted to delete the last wire and wire point from the workarea canvas should the user press the BackSpace key. Likewise, these lists are also used to delete all the wires and wire points created should the user decide to abort the create operation by pressing the Esc key or rightmost mouse button.
Netlist elements consist of wire segments and wire points and each are tagged with the names wire and point, respectively. Both netlist elements also receive the tag netlist which serves to distinguish them from components. In addition, all netlist elements which comprise a single netlist are tagged with a unique name which serves to identify the netlist as a single entity. The format of this netlist tag name consists of the string netlist_ followed by the sequence number of the new netlist. This is similar to the tagging mechanism used for components. For example, all the wires and wire points of the fourth netlist created by the user would be tagged with the string netlist_4. Netlist tag names are generated by the procedure net_list_generate_id.