Connect with us

ASCII Circuits

Discussion in 'Electronic Basics' started by Andreas Weber, Sep 8, 2004.

Scroll to continue with content
  1. Hi Newsgroup,
    I'm the author from AACircuit (Andy's ASCII Circuit) and 3 years ago, I
    released the first version of it(formely known as "ASCII-PAINT").

    now I read Gary Richardson's posting:
    find >it easier to use than Andy's and it has a few more features.

    What do YOU think?
    Should I invest time for further development? What should I improve?
    Is it too difficult to use my program?

    Best regards, Andy
     
  2. First of all, thanks for the program. It makes it possible to draw
    ascii schematics much more quickly than before. Posting schematics to
    sci.electronics.basics would be such a pain without it that I wouldn't
    do it. (Most people post the output of CAD programs to
    alt.binaries.schematics.electronic, but messages there don't get
    archived by google, and are much shorter lived than those posted to
    sci.electronics.basics)

    As far as usability, its pretty good. With respect to Mr Richardson, I
    like it better than the python one he posted.

    Here are my issues:

    1) The arrangement of the scroll bars within the windows is a bit
    awkward. When the program starts up on my system, I always have a set
    of scroll bars, and then, inside that view, another set of scroll bars
    for the components. I'd prefer not to have those outer scroll bars at
    all, and have the program simply show the component scroll bar. Also,
    being able to resize the inner pane so I could view all the components
    at once would be nice.

    More components would be nice; a zener diode picture is the main one I
    always seem to be missing. Not a big deal. There is a component editor
    in recent versions. I havn't played with it, but if one could add,
    save, export new components, that would be ideal.

    Another thing, it would be really nice to be able to move sections of
    the schematic around; I find myself erasing and redoing sections when
    I 'paint myself into a corner'. Being able to easily move parts around
    with a selection cut and paste scheme would be great. The 'add/delete
    lines/columns' scheme isn't as nice as the cut/paste would be.

    A final comment is that it would be nice if the program remembered
    window location, size, etc.

    Again, thanks for the great program.

    Regards,
    Bob Monsen
     
  3. andy

    andy Guest

    It would be nice to have a linux version. But it does work OK using wine
    (a windows api for linux), so not a great problem.
     
  4. Rich Webb

    Rich Webb Guest

    Thank you! A great program.
    Well, Gary was forthright in announcing that he was initially interested
    in creating a Python version of your app. Competition is a Good Thing.

    Personally, I find AACircuit easier to use.

    One thing that would be a handy addition would be the ability to either
    (or both) shift-select or drag-select multiple objects which could then
    be moved or rotated as a group.
     
  5. Grüß dich!

    When I first saw it, I thought, "Now this works very nicely and it's not a
    complex or difficult program -- great implementation!" However, I didn't like
    the style of parts included, so I then set out to edit them (vielen dank for
    including that feature!) I might like a slightly larger space to work in for
    some parts, but I understand a need for some limit. I'm happy about the delete
    column and row and insert column and row features (even nicer might be to be
    able to select a region and then say 'CROP' to extract it and reset it to the
    upper left corner, but what is there already works acceptably.)

    But it's a collection of small issues that keep me from using it. Partly, the
    wiring methods bug me and need 'patching' when I'm done. Partly, I have to
    enter text in a box before I can place it, rather than just clicking on a spot
    and then typing. Partly, it's the constant redraws and resulting flickering.

    Frankly, I think I would use it as a tool if it supported a straight text typing
    mode where I could use the arrow keys and space bar and the like to move around
    and type in characters where I needed them. If that were present in the program
    it would be at least as good as any regular text editor and most likely better
    because of the specialized features. But as it is, in some ways it is worse
    than having a simple text editor. Enough so that I don't use it. (I have used
    your program to paste in a schematic in which I needed to trim off excess left
    side spaces and where simple editors don't do that for me.)

    But it's close. That's just my opinion and not particularly well thought out as
    I figured a sooner opinion might be better than a later one.

    Jon
     
  6.  
  7. Well, as I mentioned in a previous post, read the help text. Selected object
    can be selected and moved, copied or deleted. It doesn't make sense to
    rotate a group of objects.

    Thanks for your comments
    Gary Richardson
     
  8. I'm afraid I don't understand your problem with the scroll bars. There
    should be only one scroll bar - on the component listbox. Could
    you send me a screen shot?


    Also,
    Click on the square in the upper-right corner or drag an edge or corner.
    Well, take a look at the component editor. I tried to make it very easy to
    create new component definitions. There is another file of components
    (JeroenComponents.txt) created by an early tester ; perhaps you will find
    something you like there.
    Well, if you had read the help text you would know how to do that. Position
    the cursor, draw a bounding box with the left mouse button, click the right
    mouse button, select an operation (move, copy, delete), if move or copy
    selected, position the object(s) and click the LMB.

    I find myself erasing and redoing sections when
    Thanks for your comments
    Gary Richardson
     
  9. You can download the source files and give it a try. I don't have access to
    Linux so I can't guarantee that it will work. I had one report that there
    was a problem but I don't know what it is. If you do find a problem please
    let me know, I'll be glad to try to correct it.
     
  10. Randy Day

    Randy Day Guest

    I like it. One addition I'd like to see is this:

    Widen the component editor screen a bit, and
    show the four component views on a plain
    background beside the grid. If I make a lot of
    changes, I find it a bit hard to track them in
    all the different-colored rectangles. As I make
    changes in the grid, they would appear on the
    plain background.
     
  11. Okay, I'll improve the move/crop/paste commands
    Just click on "Editor" left of the "Text Box" and click on the paint
    Box. A blue cursor appears which you can move with cursors usw.

    Which line draw do you use ? The "magline" ?

    Thank you Jon
    Andy
     
  12. Okay, I'll improve this. Could you send me your symbol-list?
    component2.ini if you selected english.
    Thanks, Andy
     
  13. Ah.. Never knew. That might do it, then. I'll try it out some more.
    I have been using the other four line types. Didn't like them. The magline
    seems much better, I must admit (didn't use that one, either.)

    Thanks for the suggestions and I'll see how that goes.

    I still wish the display area redraws could be reduced to smaller regions so
    they'd not flicker things so much, but the 'editor' is handy and the magline is
    better than the other line styles. Thanks for pointing them out to me!

    Jon
     
  14. A very handy feature is a rubber command that allows you to put a
    fence around a section, and move the fence while stretching the
    interconnections that pass through the fence without distorting any of
    the component symbols that happen to cross the fence (they either move
    or stay, depending on whether their grab point is inside or outside
    the fence). This allows a quick and sloppy build followed by a clean
    up to straighten out and untangle the interconnections. It also makes
    adding or deleting components much prettier. This change requires
    that building any components includes defining their grab point.
     
  15. Randy Day

    Randy Day Guest

    Andreas Weber wrote:

    [snip]
    Done. I can't post the file as an attachment, but I
    included it below.

    Oh, yeah, I found a couple of quirks in the symbol editor;
    if I press left-parenthesis '(' the editing rectangle
    shifts right and down instead of just right.
    When I press '>' the editor moves to the next SET of
    symbols in the list. They're not big issues, but they were a
    couple of those 'WTF?' moments! ;)


    <Resistor>
    |
    ..-.
    | |
    | |
    '-'
    |
    <R>
    ___
    -|___|-




    <R>
    |
    ..-.
    | |
    | |
    '-'
    |
    <R>
    ___
    -|___|-




    </>
    <Pot>
    |
    ..-.
    | |<--
    | |
    '-'
    |
    <R>
    ___
    -|___|-
    A
    |


    <R>
    |
    .-.
    -->| |
    | |
    '-'
    |
    <R>

    |
    _V_
    -|___|-


    </>
    <Diode>
    |
    -
    ^
    |


    <R>
    ->|-





    <R>
    |
    V
    -
    |


    <R>
    -|<-





    </>
    <Transformer>
    -. ,-
    )|(
    )|(
    -' '-


    <R>
    | |
    uuuu
    ----
    nnnn
    | |

    <R>
    -. ,-
    )|(
    )|(
    -' '-


    <R>
    | |
    uuuu
    ----
    nnnn
    | |

    </>
    <Capacitor>
    |
    ---
    ---
    |


    <R>
    ||
    -||-
    ||



    <R>
    |
    ---
    ---
    |


    <R>
    ||
    -||-
    ||



    </>
    <Electrolytic cap>
    |+
    ===
    /-\
    |


    <R>
    \]
    -|]-
    /]+



    <R>
    |
    \-/
    ===
    +|


    <R>
    +[/
    -[|-
    [\



    </>
    <Battery>
    |
    ---
    -
    |


    <R>
    |
    -||-
    |



    <R>
    |
    -
    ---
    |


    <R>
    |
    -||-
    |



    </>
    <Inductor>
    |
    C|
    C|
    C|
    |

    <R>
    ___
    -UUU-




    <R>
    |
    C|
    C|
    C|
    |

    <R>
    ___
    -UUU-




    </>
    <NPN BJT>
    |
    |/
    -|
    |>
    |

    <R>
    |
    ---
    -v \-



    <R>
    |
    <|
    |-
    /|
    |

    <R>
    - -
    \ ^
    ---
    |


    </>
    <PNP BJT>
    |
    |/
    -|
    |<
    |

    <R>
    |
    ---
    -^ \-



    |-
    /|
    |

    <R>
    - -
    \ v
    ---
    |


    </>
    <Opamp>
    |\|
    -|-\
    | >-
    -|+/
    |/|

    <R>
    | |
    ..-----.
    \+ -/
    \ /
    V
    |
    <R>
    /|
    /+|-
    -< |
    \-|-
    \|

    <R>
    |
    /^\
    /- +\
    '-----'
    | |

    </>
    <OR gate>
    __
    -\ \
    | |-
    -/__/


    <R>
    | |
    |\_/|
    | |
    \_/
    |

    <R>
    __
    / /-
    -| |
    \__\-


    <R>
    |
    /'\
    | _ |
    |/ \|
    | |

    </>
    <AND gate>
    __
    -| \
    | )-
    -|__/


    <R>
    | |
    ..---.
    | |
    \_/
    |

    <R>
    __
    / |-
    -( |
    \__|-


    <R>
    |
    /^\
    | |
    '---'
    | |

    </>
    <NOR gate>
    __
    -\ \
    | |o-
    -/__/


    <R>
    | |
    |\_/|
    | |
    \_/
    o
    |
    <R>
    __
    / /-
    -o| |
    \__\-


    <R>
    |
    O
    /`\
    | _ |
    |/ \|
    | |
    </>
    <NAND gate>
    __
    -| \
    | )o-
    -|__/


    <R>
    | |
    ,---.
    | |
    \_/
    o
    |
    <R>
    __
    / |-
    -o( |
    \__|-


    <R>
    |
    O
    /^\
    | |
    |___|
    | |
    </>
    <Inverter gate>
    |\
    -| >O-
    |/



    <R>
    |
    (---)
    \ /
    O
    |

    <R>
    /|
    -O< |-
    \|



    <R>
    |
    O
    / \
    (___)
    |

    </>
    <Radierer/Eraser>






    <R>






    <R>






    <R>






    </>
    <Crossed diagonals>
    + +
    \ /
    X
    / \
    + +

    <R>
    o o
    \ /
    X
    / \
    o o

    <R>
    + +
    \ /
    X
    / \
    + +

    <R>
    o o
    \ /
    X
    / \
    o o

    </>
    <Bridge rectifier>
    +-+--
    A A
    -+ |
    -(-+
    A A
    +-+--
    <R>
    .-----.
    -|~ +|-
    -|~ -|-
    '-----'


    <R>


    leer



    <R>


    leer



    </>
    <Crystal>
    _
    | |
    -|| ||-
    |_|


    <R>
    |
    _-_
    |___|
    -
    |

    <R>
    _
    | |
    -|| ||-
    |_|


    <R>
    |
    _-_
    |___|
    -
    |

    </>
    <Lamp>
    |
    .-.
    ( X )
    '-'
    |

    <R>
    .-.
    -( X )-
    '-'



    <R>
    |
    ,---.
    | X |
    '---'
    |

    <R>
    .---.
    -| X |-
    '---'



    </>
    <Fuse>
    |
    o
    (
    )
    o
    |
    <R>
    _
    -o_/ \o-




    <R>
    |
    o
    (
    )
    o
    |
    <R>
    _
    -o \_/o-




    </>
    <Relay>
    \
    _ o o
    )|
    )|
    _)|

    <R>

    ---- o\
    nnnn o
    | |


    <R>
    /
    o o _
    |(
    |(
    |(_

    <R>
    | |
    uuuu
    o----
    /o


    </>
    <SPDT switch>
    | |
    o /o
    /
    /
    o
    |
    <R>
    -o
    __--o-
    -o



    <R>
    |
    o
    \
    \
    o \o
    | |
    <R>
    o-
    -o--__
    o-



    </>
    <SPST switch>
    |
    \ o
    \
    \.
    o
    |
    <R>
    _/
    -o/ o-




    <R>
    |
    o
    '\
    \
    o \
    |
    <R>
    -o _/o-
    /




    </>
    <switch>
    |
    | o
    |=|>
    | o
    |

    <R>
    T
    ---
    -o o-



    <R>
    |
    o |
    |=|
    o |
    |

    <R>
    |
    o|
    |==|>
    o|
    |

    </>
    <7-series regulator>
    ____
    | |
    -|7805|-
    |____|
    |

    <R>
    |
    _|__
    | |
    -|7905|-
    |____|

    <R>
    ____
    | |
    -|7812|-
    |____|
    |

    <R>
    |
    _|__
    | |
    -|7912|-
    |____|

    </>
    <N-JFET>
    |
    |-+
    ->|
    |-+
    |

    <R>
    |
    V
    ---
    -+ +-


    <R>
    |
    +-|
    |<-
    +-|
    |

    <R>
    -+ +-
    ---
    ^
    |


    </>
    <P-JFET>
    |
    |-+
    -<|
    |-+
    |

    <R>
    |
    ^
    ---
    -+ +-


    <R>
    |
    +-|
    |>-
    +-|
    |

    <R>
    -+ +-
    ---
    V
    |


    </>
    <N-MOSFET>
    |
    ||-+
    ||<-
    -||-+
    |

    <R>
    |
    ===
    |^|
    -+|+-


    <R>
    |
    +-||-
    ->||
    +-||
    |

    <R>
    -+|+-
    |V|
    ===
    |


    </>
    <P-MOSFET>
    |
    ||-+
    ||->
    -||-+
    |

    <R>
    |
    ===
    |||
    -+V+-


    <R>
    |
    +-||-
    <-||
    +-||
    |

    <R>
    -+^+-
    |||
    ===
    |


    </>
    <DIL 8-pin IC>
    __
    -o| |o-
    -o| |o-
    -o| |o-
    -o|__|o-

    <R>
    | | | |
    o_o_o_o
    | |
    | _ _ _ |
    o o o o
    | | | |
    <R>
    __
    -o| |o-
    -o| |o-
    -o| |o-
    -o|__|o-

    <R>
    | | | |
    o_o_o_o
    | |
    | _ _ _ |
    o o o o
    | | | |
    </>
    <FlipFlop>
    .---.
    -|S |
    | |
    -|R |o-
    '---'

    <R>
    .----.
    -|S1 1|--
    | |
    -|R 1|o-
    '----'

    <R>
    .----.
    -|S 1|--
    | |
    -|R1 1|o-
    '----'

    <R>
    .---.
    --|1J |--
    -o|>C1|
    --|1K |o-
    '---'

    </>
    <Signal Source>
    ..-----.
    | G |
    |_-_-_|--
    | |
    '-----'

    <R>
    |
    / \
    ( ~ )
    \_/
    |

    <R>

    ___
    | \_
    |___/


    <R>
    ____
    | |
    | |
    | |
    \/
    |
    </>
    <Speaker/Mic>
    _
    --/ \ |
    (Mic)|
    --\_/ |


    <R>
    .---|
    -| |
    -| |
    '---|


    <R>
    __ /|
    -| | |
    -|__| |
    \|


    <R>
    __ /|
    -| | |
    -|__|<->
    \|


    </>
    <Triac>
    _|_
    V_A
    / |



    <R>
    \
    |<|
    -|\|-
    |>|


    <R>
    _|_/
    V_A
    |



    <R>
    |<|
    -|\|-
    |>|
    \


    </>
    <Ground/Vcc>
    |
    ===
    =



    <R>
    VCC
    +
    |



    <R>

    GND




    <R>

    VCC




    </>
    <Zener>
    |
    z
    A
    |


    <R>

    ->z-




    <R>
    |
    V
    z
    |


    <R>

    -z<-




    </>
    <Push SPST>

    |
    -----
    -o o-


    <R>
    |
    |o
    -|
    |o
    |

    <R>


    -o o-
    -----
    |

    <R>
    |
    o|
    |-
    o|
    |

    </>
    <Unijunction UJT>

    \ |-
    |-


    <R>
    /
    v
    ----
    | |


    <R>

    -| /
    |<
    -|


    <R>
    | |
    ----
    ^
    \


    </>
    <SCR>

    |
    V
    -
    /|

    <R>

    \
    -|<-



    <R>

    \|
    -
    A
    |

    <R>
    /
    ->|-




    </>
    <Meter>
    |
    / \
    (_/_)
    \_/
    |

    <R>
    _
    / \
    -(_/_)-
    \_/


    <R>
    |
    / \
    (_/_)
    \_/
    |

    <R>
    _
    / \
    -(_/_)-
    \_/


    </>
     
  16. Unless I've completely lost the plot, I think Bob was replying to
    Andreas, not to you!
     
  17. Although I recognise the advantages of ASCII, I use it very
    infrequently. I prefer to draw proper schematics in CircuitMaker and
    post them to a web page and/or alt.binaries.schematics.electronic.On
    those occasions when I do try my hand, I've found it extremely
    usaeful. No way would I go back to 'rolling my own'!

    Some improvements might be
    - A larger window
    - Easier to move sections around
    - Eliminate a tendency to get the '+' (join?) symbol when it's not
    wanted. This may be down to my misuse though! Seems to arise after
    I've drawn a couple of line section, vertical and horizontal. I'd
    expect whatever is selected in the component list on the right to be
    the 'current' element, but right now I have 'resistor' highlighted yet
    the cursor is trying to sprinkle '+' elements around!

    I see I've been using 1.23. Is 1.25 the latest?

    I've used Gary's program even less so can't make a truly fair
    comparison.
     
  18. Hi Jonathan,
    I must admit, that I have still a redraw problem but I'll fix that soon.
    With which action does this happen most strongly? Do you display the grid ?
    Best regards Andy
     
  19. No, I don't display the grid very often. I played with it, though. But what I
    meant is that it's 'really bad' when I'm inserting or deleting lines or rows
    with those red/green things.

    By the way, I just took two hours to write a short C routine to convert LTSpice
    schematics in .ASC files into ASCII text schematics. Works kind of well, for
    such short effort. Here's an example I just extracted using the new program:


    Vcc
    | Vcc
    | |
    | Vcc |
    - | |
    --- V1 | /
    - | \ R2
    --- / /
    | \ R3 \
    | / |
    gnd \ |
    | +-----Vc
    | |
    C1 || | |
    ,-------||---|-------------, |
    | || | | /
    | | R6 | |/c
    | +-----/\/\----+---|
    /-\ | |>e
    ~ V2 | \
    \-/ | |
    | | C3 || +-------,
    | +-----------||-------+ |
    | | || | |
    | / / /
    gnd \ R4 \ R1 \ R5
    / / /
    \ \ \
    | | |
    | | |
    | | |
    gnd gnd |
    ---
    ---
    | C2
    |
    |
    |
    gnd

    It's a bootstrapped BJT amp. I don't have the values on there yet, though I do
    parse them and can easily put them there. I just want to add some code to deal
    with the expressions that are allowed in LTSpice and automatically add them as
    footnotes, as they take up a lot of room when placed directly on the schematic
    adjacent to the part.

    The method uses a GCD on all the (x,y) wiring points in the schematic to find
    the greatest common denominator and then divides the values to get integer
    character positions. I also gather up the min and max values in order to center
    onto a text page okay and allow room to add the legends. Symbols are, for now,
    recognized and hard-coded in the code -- I don't go to the .ASY files to examine
    how they are actually drawn (I imagine it would be too complex to do that well.)
    Wiring is handled by using a bitmap for each character that includes a dotted
    connection, left, right, top, and bottom short-walls, and a special indicator
    for overridden characters I place. This map then correctly judges the right
    character to place. (You can see in the above that the wire from C1 going to
    the Q1 base does not DOT to the wire it crosses.)

    Needs more work, but it's a start to prove that the concept is workable.

    Jon
     
  20. Well done! Hope you'll pursue to completion and publication!

    Meanwhile, could you post the SWCADIII schematic original, or a bitmap
    screenshot please?
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-