Menu

Tpad load problem

Help
2017-04-12
2017-04-12
  • ashofphoenix

    ashofphoenix - 2017-04-12

    I've got a problem loading an Eagle Tpad layer.

    Got an awful red error on python console that is so long I can't really see what the pb really is. I'm not a python and/or FC specialist, but is there a way to obtain a relevant log-file of what is goin' on ?

    thx

     
  • ashofphoenix

    ashofphoenix - 2017-04-12

    update : I manage to log something

    Err: Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBbrd.py", line 72, in open
    importBRD(filename, wersjaFormatu[0])
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBbrd.py", line 241, in importBRD
    plytka = plytkaPCB.generate(doc, groupBRD, filename)
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\formats\eagle.py", line 439, in generate
    self.getPads(doc, ID, grp, name, color, transp)
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\formats\eagle.py", line 890, in getPads
    layerNew.generuj(layerS)
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBobjects.py", line 1402, in generuj
    pads.append(self.makePolygon(i))
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBobjects.py", line 1360, in makePolygon
    mainObj = self.makeFace(mainObj)
    File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBobjects.py", line 873, in makeFace
    return Part.Face(mainObj)
    <class 'Part.OCCError'="">: Failed to create face from wire

    ??? so what :p ^^

     
  • ashofphoenix

    ashofphoenix - 2017-04-12

    I MANAGE TO FIND OUT !
    We have some components where only the X/Y position is relevant. These are stickers that are machine - placed . To obtain theirposition, we have made a SMD pad ... of 0mmx0mm So that it doesn't interfear at all with any polygon or ground poly that should be place at this position on our PCB. and I guess a 0mmx0mm SMD pad is not really easy to draw !!! Instead of failing, a warn log and an ignore sequence for that part should have been quite helpful !!!

    I solve this creating a special package. However should be nice to have a "quite more verbose debug" from PCB when something goes wrong : parts and or process that was treated when it goes wrong. It's quite a diffcult task to understand which part goes wrong... :/

    Thx for reading !
    Note : It's note an angry post !!! just the feeling of someone facing a problem without any clues or hints of what went wrong to try to help & solve pb :p

     
  • Mariusz

    Mariusz - 2017-04-12

    Hi,
    no problem :). I will try to add some protection for the pads 0x0 :).

     

    Last edit: Mariusz 2017-04-12
  • Mariusz

    Mariusz - 2017-04-12

    Hi,
    fixed. Try version from github (PCBobjects.py file).

     

    Last edit: Mariusz 2017-04-12
  • ashofphoenix

    ashofphoenix - 2017-04-13

    Hi !
    that works ! Great job ! I wish I could be able to code something like that ^^
    Thanks again for all your job

     
  • Anonymous

    Anonymous - 2017-04-26
     

    Last edit: Anonymous 2017-04-26
  • ashofphoenix

    ashofphoenix - 2017-04-26

    Bump
    I talked too quickly ! I tried another board with my "special item" pad0x0 and it doesn't load with github version.
    I tried changing the package with a 1x1 and it worked, so i guess it manage to violate your protection ^^

    Err: Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBbrd.py", line 72, in open
        importBRD(filename, wersjaFormatu[0])
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBbrd.py", line 241, in importBRD
        plytka = plytkaPCB.generate(doc, groupBRD, filename)
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\formats\eagle.py", line 457, in generate
        self.getPads(doc, ID, grp, name, color, transp)
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\formats\eagle.py", line 912, in getPads
        layerNew.generuj(layerS)
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBobjects.py", line 1411, in generuj
        pads.append(self.makePolygon(i))
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBobjects.py", line 1366, in makePolygon
        mainObj = self.makeFace(mainObj)
      File "C:\Program Files\FreeCAD 0.16\Mod\PCB\PCBobjects.py", line 873, in makeFace
        return Part.Face(mainObj)
    <class 'Part.OCCError'>: Failed to create face from wire
    
     

    Last edit: ashofphoenix 2017-04-26
  • Mariusz

    Mariusz - 2017-04-26

    Hi,
    can you upload file with problematic models - it will be easier to implement solutions.

     
  • ashofphoenix

    ashofphoenix - 2017-04-27

    sure ! if you try to change package with the 3D version, it works !

    update : well, I think I found something. the 0x0 smd pad has 100% roundness so in eagle.py (line886) , it's addcircle function that seems to be called an not addrectangle (where you put the protection). Maybe protection should be done in eagle.py directly ??? (dunno if that pb occur with other cao)

     

    Last edit: ashofphoenix 2017-04-27
  • Mariusz

    Mariusz - 2017-04-27

    Hi,
    fixed. Try version from github (PCBobjects.py file).

    "Image" is on incorrect layer - I changed it to 21.

     
  • ashofphoenix

    ashofphoenix - 2017-04-28

    Perfect ! Well, the "image" was put on lay25 'coz it was easier to route "without it" on lay21 ;) !

    Thx a lot for your help an wonderful job !

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.