cook@gaia.UUCP (Forrest Cook) (04/07/88)
My $.02: The SPICE format is nice because it is easy to understand with or without a computer. The limitation is that there is no position information for parts. The Solution: A list of part positions could be included (or a position field for each part) to describe the location of the part on the schematic. This would allow a person or program to locate the part and then connect the nodes. Or... How about a list of NODE positions? Positions could be given in universal coordinates with 0,0 at the lower left side of the page and 1.0, 1.0 at the upper right side of the page. This would allow easy translation to pixel oriented devices as well as approximate analog devices such as people. Forrest Cook
phd@SPEECH1.CS.CMU.EDU (Paul Dietz) (04/07/88)
In article <346@gaia.UUCP> cook@gaia.UUCP (Forrest Cook) writes: >My $.02: > The SPICE format is nice because it is easy to understand with or > without a computer. The limitation is that there is no position > information for parts. > > The Solution: A list of part positions could be included (or a > position field for each part) to describe the location of the > part on the schematic. This would allow a person or program > to locate the part and then connect the nodes. > Or... How about a list of NODE positions? > Positions could be given in universal coordinates with 0,0 at > the lower left side of the page and 1.0, 1.0 at the upper right > side of the page. This would allow easy translation to pixel > oriented devices as well as approximate analog devices such > as people. This is pretty much what I had in mind when I suggested an extended SPICE format. In specific, I'd like to put all non-spice type commands in { }'s so a program could easily strip it out. As for position info, I favor having a small, extensible standard library. The info you would send would be part position, and orientation. (Orientation could be done like CIF using direction vectors, and mirrors.) For instance: * ASTERISKS INDICATE COMMENTS LINES IN SPICE * * COLLECTOR BASE EMITTER Q1 5 3 6 NPNBJT {POS: Q1 MX, R(0,1), T(5,37)} {DEF: NPNBJT L(1,2),(2,2) L(2,1),(2,3) L(3,0),(3,1),(2,2),(3,3),(3,4) L(3,1.5),(3,1),(2.5,1)} I think most of this is self evident. M is mirror, R is rotate, and T is translate. Any comments? Paul H. Dietz ____ ____ Dept. of Electrical and Computer Engineering / oo \ <_<\\\ Carnegie Mellon University /| \/ |\ \\ \\ -------------------------------------------- | | ( ) | | | ||\\ "If God had meant for penguins to fly, -->--<-- / / |\\\ / he would have given them wings." _________^__^_________/ / / \\\\-