(Tcl Dot also pulls in Gdtclft for writing to a gif image.)
dotnew graphtype ?attributeName attributeValue? ?...? -> graphHandle graphtype:= (graph|digraph|graphstrict|digraphstrict)Read a graph.
dotread fileHandle -> graphHandleAdd a node to a graph
graphHandle addnode ?nodeName? ?attributeName attributeValue? ?...? -> nodeHandle If the nodeName parameter is omitted the name of the node defaults to nodeHandle.Add an edge to a graph
graphHandle addedge tailnode headnode ?attributeName attributeValue? ?...? -> edgeHandle tailnode = (tailnodeHandle|tailnodeName) headnode = (headnodeHandle|headnodeName) NodeHandles take precedence, so if nodeName is of the form "node99" it may conflict. The precedence can be overridden with code such as: graphHandle addedge \ [graphHandle findnode tailnodeName] \ [graphHandle findnode headnodeName]Add a subgraph to a graph
graphHandle addsubgraph ?subgName? ?attributeName attributeValue? ?...? -> subgHandle If the subgName parameter is omitted the name of the node defaults to subgHandle. Clusters are created by giving a subgraph a name that begins with "cluster".Add a edge to a node
tailnodeHandle addedge headnode ?attributeName attributeValue? ?...? -> edgeHandle headnode = (headnodeHandle|headnodeName)Delete a graph/node/edge
graphHandle delete nodeHandle delete edgeHandle deleteCount nodes/edges
graphHandle countnodes -> integer graphHandle countedges -> integerList subgraphs/nodes/edges
graphHandle listnodes -> {nodeHandle ... } nodeHandle listedges -> {edgeHandle ... } nodeHandle listoutedges -> {edgeHandle ... } nodeHandle listinedges -> {edgeHandle ... } edgeHandle listnodes -> tailnodeHandle headnodeHandle graphHandle listsubgraphs -> {graphHandle ... }Find nodes/edges by nodename
graphHandle findnode nodename -> nodeHandle graphHandle findedge tailnodename headnodename -> edgeHandle nodeHandle findedge nodename -> edgeHandleShow graph/node/edge name
graphHandle showname -> graphname nodeHandle showname -> nodename edgeHandle showname -> edgenameSet default node/edge attributes
graphHandle setnodeattributes attributeName attributeValue ?...? graphHandle setedgeattributes attributeName attributeValue ?...?List node/edge attribute names
graphHandle listnodeattributes -> {attributeName ... } graphHandle listedgeattributes -> {attributeName ... }Query default node/edge attributes
graphHandle querynodeattributes attributeName ?...? -> {attributeValue ... } graphHandle queryedgeattributes attributeName ?...? -> {attributeValue ... }Set graph/node/edge attributes
graphHandle setattributes attributeName attributeValue ?...? nodeHandle setattributes attributeName attributeValue ?...? edgeHandle setattributes attributeName attributeValue ?...?List graph/node/edge attribute names
graphHandle listattributes -> {attributeName ... } nodeHandle listattributes -> {attributeName ... } edgeHandle listattributes -> {attributeName ... }Query graph/node/edge attribute values
graphHandle queryattributes attributeName ?attributeName? ?...? -> {attributeValue ... } nodeHandle queryattributes attributeName ?attributeName? ?...? -> {attributeValue ... } edgeHandle queryattributes attributeName ?attributeName? ?...? -> {attributeValue ... }Layout nodes
graphHandle layoutNodes NOTE: Not yet implemented. Use: graphHandle layout to layout both nodes and edges.Layout edges
graphHandle layoutEdges -style style:= (straight|spline) NOTE: Not yet implemented. Use: graphHandle layout to layout both nodes and edges.Write graph to file
graphHandle write filehandle format format:= (ps|mif|hpgl|gif|plain|dot)Render graph to existing or new gifImage (see: gdTcl)
graphHandle rendergd ?gdHandle? -> gdHandleRender graph to canvas (tkdot only)
graphHandle render canvashandle NOTE: Not yet fully implemented. For now use: set c canvasHandle eval [graphHandle render]