From: Joel Koltner on
Hi John,

"John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in message
news:84a006lg225i4qdk2eq57ut158hodra46r(a)4ax.com...
> Yeah, that would be better. Our MAX numbers also encode value.

Oh oh, Don's gonna come after you now. :-)

> But
> more work, and still could leave holes for tolerance, t/c, things like
> that, or parts that aren't actually in stock.

Yeah, it definitely needs some well-written documentation if you're going to
do it. Since we're just in on-going limbo of rolling out the next MRP system
and the ORCAD integration hasn't begun yet, we still have time to consider it.

Inbetween actually doing real work, that is.

> A new rule is that if an engineer owns a schematic and changes a
> value, he wipes out the MAX field to note the change.

Is the MAX field displayed? I suspect that if your internal part numbers are
displayed right on the schematic (rather than requiring, e.g., double-clicking
the part to get to a table of attributes), it's a lot harder to forget to
blank it out when you change the component value than if you have to, e.g.,
double-click to see it and do so.

> How do you program stuff like this? Is it easy to get at the ORCAD
> library?

Some console-mode programs written in C, Visual BASIC, or (my current
favorite) Python.

It isn't at easy to get direct access to the ORCAD library (they're binary and
the format is undocumented), but you can have ORCAD spew out a whole bunch of
reports in ASCII that are then pretty easy to parse. The MRP system has an
ODBC interface available, and while no one's actually tried to write a program
to poke at that yet, it's what we expect to use (...and at least Visual BASIC
and Python allow pretty easy database poking via ODBC).

> PADS includes some VisualBasic scripting thingie, but we've never used
> it.

Same here. ORCAD is the same -- although there I looked at writing a few
macros-like commands once using it, and my recollection is that while it could
do a lot of "user action" type things (zoom in and out, place parts,
print/plot, etc.), it didn't give you access to the raw design data directly.
I.e., it seemed like a half-hearted effort ORCAD made so that they could check
off some corporate requirement of, "Supports scripting in Visual BASIC" rather
than making it anything super-usable to end-users.

(Whereas something like Microwave Office is completely "open" under Visual
BASIC or any COM-compatible language -- you can easily step
through/create/modify schematics device by device, layouts trace by trace,
etc.)

> Our parts lists are simple...

You're making it way too simple. At the very least you should wrap it in XML
so that it's more prone to error if someone edits it manually. :-)

---Joel

From: Joerg on
Joel Koltner wrote:
> Thanks John, that's good information.
>
> "John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in
> message news:5g1006p4tn9geie0k1s12acg3j2o02f6bs(a)4ax.com...
>> My weekend project is to write a PowerBasic program that verifies
>> that, on a schematic, all the r/c/l values in the "value" field are
>> consistant with the values of the MAX part. I'll do that based on an
>> ascii schematic dump and an ascii MAX parts listing, which is easier
>> than messing with binaries. PB is so fast that the most brutal linear
>> searches are fine. We need that program because certain engineers, who
>> I will not name, keep changing parts values before the board is
>> finished, and The Brat gets annoyed keeping up with, and checking, the
>> results.
>
> Since RLCs, etc. already encode their "primary value" (e.g., resistance
> for resistors, capacitance for capacitors, etc.) into the internal part
> number, we've kicked around the idea of buliding a little program that
> takes a "template" part number from the (in our case) ORCAD-generated
> BOM, and combines it with the "value" attribute in the schematic to then
> generic the "fully qualified" internal part number. This idea was meant
> specifically to avoid the problem you're describing -- engineers can
> change values all day long, and you still end up with valid internal
> part numbers. (Granted, some of those parts numbers might not exist yet
> within the MRP system, if we've never used, e.g., a particular 1%
> resistor value before -- but that can be checked as well, and a report
> generated that tells purchasing to buy some/create the part/etc.)
>

Just one word of caution. Be careful with Purchasing generating parts.
Usually that should be an ECO process, or at least close. While they are
certainly experts in electronic parts it is easy to overlook something
that normally never matters. Example in one of the cases I was involved:
A (too quick) decision was made to replace a resistor with another that
looked like a perfect form-fit-function match. Well, it was, almost.
Except that it wasn't low inductance ... tsssss ... *PHUT*. Then there
were those caps that looked identical, except that they didn't have an
AC rating. The bang was a lot louder, with stuff flying about.

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
From: Nico Coesel on
"Joel Koltner" <zapwireDASHgroups(a)yahoo.com> wrote:

>"Nico Coesel" <nico(a)puntnl.niks> wrote in message
>news:4c001d6f.880956593(a)news.planet.nl...
>> "Joel Koltner" <zapwireDASHgroups(a)yahoo.com> wrote:
>>>Since RLCs, etc. already encode their "primary value" (e.g., resistance for
>>>resistors, capacitance for capacitors, etc.) into the internal part number,
>>>we've kicked around the idea of buliding a little program that takes a
>>>"template" part number from the (in our case) ORCAD-generated BOM, and
>> If you use/switch to Orcad CIS it does all the work for you.
>
>We have ORCAD CIS and no, it doesn't, AIUI: If you want to change, e.g., a
>resistor's value only (but it's still the same old 0603 generic resistor
>otherwise), you can to use "change database part" and go find the new, e.g.,
>1.12k, 0603 resistor. In most cases that's a lot more mouse clicks that
>double-clicking one on the part's value, entering the new value, and calling
>it good.

Yes, but you'll have a lot of work afterwards to edit and check the
BOM. At lot of chances to introduce errors a well.

>Another benefit is that you're not immediately stuck if no one's gotten around
>to entering 1.12k 0603 resistors into the master part database in the first
>place (whereas they did already have, e.g., 2.22k in there, what you initially
>used). ...so you call or e-mail the guy maintaining the parts database, ask
>him to add the part, and then come back after lunch and continue updating a
>schematic.

Make sure you can add parts yourself. I've been using Orcad CIS for
about 10 years now and I really can't imagine going back to editing
BOMs by hand and using tedious tools to 'automagically' add footprints
to components. Been there done that.

When I design something the BOM includes my stock and supplier's
ordering numbers (including minimum ordering quantities or multiples).
A simple sort in Excel produces the list of items to buy in order to
have enough parts to make a prototype.

>Both of these things are productivity killers, in my mind.

Entering a diagram is not designing... When I'm simulating a circuit I
don't use the CIS feature ofcourse.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico(a)nctdevpuntnl (punt=.)
--------------------------------------------------------------
From: Joel Koltner on
"Nico Coesel" <nico(a)puntnl.niks> wrote in message
news:4c004c6d.892986843(a)news.planet.nl...
> "Joel Koltner" <zapwireDASHgroups(a)yahoo.com> wrote:
>>We have ORCAD CIS and no, it doesn't, AIUI: If you want to change, e.g., a
>>resistor's value only (but it's still the same old 0603 generic resistor
>>otherwise), you can to use "change database part" and go find the new, e.g.,
>>1.12k, 0603 resistor. In most cases that's a lot more mouse clicks that
>>double-clicking one on the part's value, entering the new value, and calling
>>it good.
> Yes, but you'll have a lot of work afterwards to edit and check the
> BOM. At lot of chances to introduce errors a well.

The idea is that you don't have to check the BOM -- you're guaranteed that if
all you did was change a "generic" resistor's value from 220ohms to 470ohms,
your new BOM is correct.

> Make sure you can add parts yourself.

Ho, ho... yeah, well, that isn't going to fly at many places I've been. At
one place, even after demonstrating that on average something like 1 in 10
parts had errors in them (albeit many of them minor, such as incorrect
electrical pin types, lack of overbars, etc. -- perhaps 1 in 40 had "board
killer" errors such as the wrong footprint or wrong pin numbers), management
was not convinced that adding parts should be in the purvue of design
engineering. We even had one guy quit his position as "parts librarian"
because he said there were too many correction requests coming in from
engineering -- even though he didn't dispute that any of the correction
requests were invalid! Amazing...

---Joel

From: John Larkin on
On Fri, 28 May 2010 15:02:50 -0700, "Joel Koltner"
<zapwireDASHgroups(a)yahoo.com> wrote:

>Hi John,
>
>"John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in message
>news:84a006lg225i4qdk2eq57ut158hodra46r(a)4ax.com...
>> Yeah, that would be better. Our MAX numbers also encode value.
>
>Oh oh, Don's gonna come after you now. :-)
>
>> But
>> more work, and still could leave holes for tolerance, t/c, things like
>> that, or parts that aren't actually in stock.
>
>Yeah, it definitely needs some well-written documentation if you're going to
>do it. Since we're just in on-going limbo of rolling out the next MRP system
>and the ORCAD integration hasn't begun yet, we still have time to consider it.
>
>Inbetween actually doing real work, that is.
>
>> A new rule is that if an engineer owns a schematic and changes a
>> value, he wipes out the MAX field to note the change.
>
>Is the MAX field displayed? I suspect that if your internal part numbers are
>displayed right on the schematic (rather than requiring, e.g., double-clicking
>the part to get to a table of attributes), it's a lot harder to forget to
>blank it out when you change the component value than if you have to, e.g.,
>double-click to see it and do so.

No, we don't display it. I don't like all that clutter on schematics,
like transistor/resistor pin numbers, offpages, default part sizes and
voltages, all that junk. So click select, rightclick, query/modify,
attributes: *4* clicks to see it. A couple more to edit it.


>
>> How do you program stuff like this? Is it easy to get at the ORCAD
>> library?
>
>Some console-mode programs written in C, Visual BASIC, or (my current
>favorite) Python.
>
>It isn't at easy to get direct access to the ORCAD library (they're binary and
>the format is undocumented), but you can have ORCAD spew out a whole bunch of
>reports in ASCII that are then pretty easy to parse. The MRP system has an
>ODBC interface available, and while no one's actually tried to write a program
>to poke at that yet, it's what we expect to use (...and at least Visual BASIC
>and Python allow pretty easy database poking via ODBC).
>
>> PADS includes some VisualBasic scripting thingie, but we've never used
>> it.
>
>Same here. ORCAD is the same -- although there I looked at writing a few
>macros-like commands once using it, and my recollection is that while it could
>do a lot of "user action" type things (zoom in and out, place parts,
>print/plot, etc.), it didn't give you access to the raw design data directly.
>I.e., it seemed like a half-hearted effort ORCAD made so that they could check
>off some corporate requirement of, "Supports scripting in Visual BASIC" rather
>than making it anything super-usable to end-users.
>
>(Whereas something like Microwave Office is completely "open" under Visual
>BASIC or any COM-compatible language -- you can easily step
>through/create/modify schematics device by device, layouts trace by trace,
>etc.)
>
>> Our parts lists are simple...
>
>You're making it way too simple. At the very least you should wrap it in XML
>so that it's more prone to error if someone edits it manually. :-)

Good idea.

John