Pre-commitment questions

For general questions regarding the software and for all questions that do not fit in any of the threads above.
Post Reply
Message
Author
Kocsonya
Posts: 2
Joined: 25 Jan 2019, 21:30

Pre-commitment questions

#1 Post by Kocsonya » 25 Jan 2019, 22:14

I've started playing with the free version of DipTrace and I have a few questions before committing to buying the pro version.
I could not find a full user manual, just some tutorials which don't have the answers.
I apologise if the questions look weird or dumb.

1. Is there a way of defining a component with multiple pins connected internally without these showing on the schematics? For example, many power transistors have their collector as a pin but it is also connected to their tab. I don't want the transistor to have two collector pins on the schematics but of course I want the layout package to be aware of these two being connected to the same signal.

2. Is there a way of defining a component with all pins and then, depending on the package, making some pins not connectable? Many microcontrollers come in various packages. I'd like to have only one symbol (or symbol set) for the chip but then depending on which package I choose, some symbol pins (which don't get bonded out on the chosen package) being greyed out or some other way shown that they cannot be electrically connected? Drawing a new symbol (or set of symbols) for every package variant is both tedious and error prone, especially with high pin count chips, hence the question.

3. Is there a shorthand to get components to the schematics without going through all the clickety-click selection process between libraries and components and whatever? Like, if I want an 0805 resistor I just hit some magic key, type R0805 and I get the res, or if I want a BC182 I tap the magic key and type BC182-SOT23 and I get my transistor in my preferred package?

4. Is there a way of specifying that units within a component are interchangeable and also that pins within a symbol can be swapped? For example, a 7400 has four identical NAND gates and the inputs of each gate are identical. Thus, if during laying the board I realise that swapping gate X and gate Y of the same chip or swapping the two inputs of gate N would be advantageous, I'd like to do it on the layout editor and of course expect the change to be automatically back-annotated to the schematics.

5. Is there a way of scripting or otherwise interacting with DipTrace from a machine? I have a board with hundreds of identical components of which the required exact position was calculated by a program. I really don't want to hand-place and position all those components on a 50um grid; rather I would like a way of placing them based on the calculated position table automagically. As a worst case fall-back scenario, is the file format specification openly available so that one can write a program to do the necessary changes?

Thanks,

Kocsonya

d1wang
Posts: 46
Joined: 13 Nov 2018, 02:19

Re: Pre-commitment questions

#2 Post by d1wang » 28 Jan 2019, 08:07

I'd recommend a standard, 1000pin version. I'm not a professional engineer, but I can easily do a layout with over 500 pins.

1) Yes. In component editor, in the "component properties" window, select "Patterns...". Then, in the "Attach Pattern" window, click on a pin, hold down the mouse button, and drag to another pin, then release the mouse button. You should see a red line tying the pins together.

2) No, you can't. You need to define which pin on the component goes to which terminal on the footprint. Take MSP430FR2033 for example, port P2.0 is terminal 40 on QFP-64 package, and terminal 42 on SOP-56 package. If you don't separate the packages beforehand, you'd get nasty surprises down the road.

3) You can create your own personal component library and order the components alphabetically.

4) I wonder the same thing. I just tried this myself: with a quad op-amp, connect pin 3 (non-inverting input) of Part 1 to something, then replace Part 1 with Part 2. DipTrace now changes the pin 3 connection to pin 6, which is unfortunately the inverting input pin. So I guess it's better to do it manually and not rely on any magic.

5) Search gitHub. There's java program for that. Don't know how complete/well maintained it is though.

User avatar
KevinA
Posts: 446
Joined: 18 Dec 2015, 15:35

Re: Pre-commitment questions

#3 Post by KevinA » 29 Jan 2019, 23:55

Kocsonya wrote:
25 Jan 2019, 22:14
5. Is there a way of scripting or otherwise interacting with DipTrace from a machine? I have a board with hundreds of identical components of which the required exact position was calculated by a program. I really don't want to hand-place and position all those components on a 50um grid; rather I would like a way of placing them based on the calculated position table automagically. As a worst case fall-back scenario, is the file format specification openly available so that one can write a program to do the necessary changes?
Thanks,
Kocsonya
In PCB, place one component, select it, Edit / Copy Matrix and set the spacing you need, no programming needed. You will have to sync the PCB with the schematic afterwards.

Kocsonya
Posts: 2
Joined: 25 Jan 2019, 21:30

Re: Pre-commitment questions

#4 Post by Kocsonya » 30 Jan 2019, 08:18

I'd recommend a standard, 1000pin version. I'm not a professional engineer, but I can easily do a layout with over 500 pins.
Well, I am a professional engineer and sometimes I design stuff with a lot more than 1K pins, so I'd need the pro version.
2) No, you can't. You need to define which pin on the component goes to which terminal on the footprint. Take MSP430FR2033 for example, port P2.0 is terminal 40 on QFP-64 package, and terminal 42 on SOP-56 package. If you don't separate the packages beforehand, you'd get nasty surprises down the road.
Maybe I was not clear or I don't understand something. On the symbol, which is defined for the schematics, there are no pin numbers, at least I hope so. It represents the silicon, with its P0.2 signal. Then there is a package with its pins and geometry and footprint and all. Then we make an actual device by linking the signals of a symbol to the pins of a given package. Then when we place a device to the schematics, the pin numbers will be obtained from that mapping and shown on the symbol. Thus, a symbol could be assigned to several different packages as separate devices and if a device does not map a signal to a pin, the tool could simply refuse to connect to it on the schematics.
3) You can create your own personal component library and order the components alphabetically.
So, basically, you cannot avoid the mouse frenzy when selecting a component.
In PCB, place one component, select it, Edit / Copy Matrix and set the spacing you need, no programming needed.
It is a bit more complex. The schematics is given. Among other things it contains a few hundred components that must be at a precisely determined position on the PCB. For every such component the position was calculated by a program with a decent amount of maths in it. And the components can't be in any random order, Z1 must be exactly at location (x1,y1) Z2 at (x2,y2) and so on. Each (x,y) pair is on a 50um grid, but the (x1,y1) ... (xn,yn) positions are not at all regular.

Thanks!

Zoltan

User avatar
KevinA
Posts: 446
Joined: 18 Dec 2015, 15:35

Re: Pre-commitment questions

#5 Post by KevinA » 30 Jan 2019, 11:40

Kocsonya wrote:
30 Jan 2019, 08:18
Well, I am a professional engineer and sometimes I design stuff with a lot more than 1K pins, so I'd need the pro version.

It is a bit more complex.
Zoltan
Diptrace Full is the unlimited version, what I use.
It always is: I exported a simple PCB in ASC, I can find the component but the component location doesn't make sense, I placed one component at 0,0 but the ASC file shows that component at 0,-0.254. If Diptrace has a method we could use to calculate the component actual location we could use python to rearrange components in the ASC file. I was hoping Diptrace would embed Python but that would mean they would have to publish their API, major project.
Update: I played around and found 28 is the magic number and on the Y axes 0.254 is an offset
(Components
(Component "AMS1117-1.8" U1
(Enabled "Y")
(Value "AMS1117-1.8")
(BaseName "")
(X -42)
(Y -42.254)
The actual location is X -14, Y 14 Notice that the Y axes is reversed...
Of course this broke the nets!

Post Reply