[Tutor] class question

Izz ad-Din Ruhulessin izzaddin.ruhulessin at gmail.com
Wed Jan 26 15:41:33 CET 2011


class Raw ---> class Processor ---> class Final

2011/1/26 Tino Dai <oberoc at gmail.com>

>
>
>>
>> A raw casting comes into a factory.  It is listed as such.  When machined,
>> this part number changes to a different part number.   The raw casting has
>> no "quality related" stuff, but the machined casting does, and it can have
>> more than one "quality related" thing.
>>
>> ...because, the raw casting may go through multiple operations to get to
>> it's final state.  It may get machined on a lathe, then be transferred to a
>> CNC machining station where a bolt circle may be drilled and tapped into
>> it.  Each of those operations on separate machines will have a different set
>> of quality checks associated with it.
>>
>> ...or it might be a part that goes from a raw casting to a sort of
>> "mini-assembly" such as a rocker lever (if you know what that is), so we
>> have raw casting = one part number, then it gets a bushing pressed into it =
>> another part number, then it gets a threaded insert = another part number,
>> but it is still the same thing, and each one of those steps may have some
>> sort of quality check involved.
>>
>> Lets complicate things even further.  One raw casting may be machined into
>> multiple part numbers.  Perhaps the only thing that changes is the location
>> of a single hole.  But again, each one of those part numbers may go through
>> multiple machining operations on different machines, with different quality
>> checks.  This is done through something called a "tabbed" blueprint, wherein
>> there is a master number, but there are "tabs" indicating that if you
>> changes such and such feature, then the part number isn't the master number,
>> but the tabbed number.
>>
>> So, in essence, there's a sort of "network" of "is-a" and "has-a"
>> information.
>>
>> My idea was to, instead of having just a single "part" class, to have a
>> sort of "component aggregate" class, which would cover not only single
>> parts, but assemblies of parts.  So, even if a part was as simple as a raw
>> casting that is just machined into a finished part and that's it, it would
>> still be treated as a sort of assembly, with the raw casting being a
>> component of the finished part number, if that makes sense.
>>
>> So there's all this information associated with a given part.  I am
>> thinking it has a sort of tree structure.  I am just wondering if some of
>> the branches of the tree should be separate classes that are then tied into
>> the "trunk" of the master class, or if the whole thing should be a tree into
>> and of itself.
>>
>> ...and yeah, I know, it's kind of a complex problem for a newbie to be
>> thinking about.
>>
>>
>>
>>
> Here is my two-cents. This code is untested. Import statements haven't been
> included, there could be syntax errors, etc etc etc. What I did
> was switching off the part_number attribute in the Thing class. For the
> functions that "do stuff" to the thing instance, I appended a part-number
> (assuming new part number = master number + doing stuff number). The quality
> functions will check for that part number before proceeding with the checks.
>
>
> class Thing:   # single part class
>      def __init__(self,part_number='12345'):       # 12345 is a default
> part number
>           self.part_number=part_number
>
> def routeThing(thing):
>      try:
>          thing.part_number.append('-someRoutingPartNumber')
>          <do routing>
>      exception AttributeError (e):
>           e.printStackTrace()
>           print "Router was not applied to thing"
>
> def checkQualityRoute1(thing):
>      if hasattrib(thing,part_number) &&
> (thing.part_number.find('-someRoutingPartNumber'):
>         <do quality checks>
>      else:
>          print "Thing has not be routed yet"
>
> def checkQualityRoute2(thing):
>      if hasattrib(thing,part_number) &&
> (thing.part_number.find('-someRoutingPartNumber'):
>         <do quality checks>
>      else:
>          print "Thing has not be routed yet"
>
> .... continue for all of the functions that you might need
>
> HTH,
> -Tino
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110126/910cf6e3/attachment.html>


More information about the Tutor mailing list