Posts tagged with 'Automation'

Panel Builder

By clicking on the Panel Builder symbol, the following dialog will open:

1. Clicking on "Add a new Step" enables you to create an additional step.

2. "Import Step" allows you to import a new design / step from another file.

3. "Create Panel (Simple)" is described separatly and in detail under the post "Create Panel (Simple)".

4. "Create Panel (Intelligent Nesting)" is also explicitly described in an extra post.

5. "Edit Step" is an additional functionality to be used to individually place the origin. 

6. The "Drag and Drop" option allows you to manually place the steps on your panel. Clicking on it, the following dialog will open:

  • Minimum Distance: Minimum Distance to another step that should not be deceeded.
  • Distance to Profile: Minimum Distance to the profile.
  • Show Measure Lines: Measure lines for a better handling of drag & drop.
  • Use Orientation Elements: Orientation elements for facilitating drag & drop.

7. Clicking on a step in the list, you can transform the selected step by rotating it or moving it in individually set intervals.

  • Minimum Distance: Minimum Distance to another step that should not be deceeded.
  • Distance to Profile: Minimum Distance to the profile.

8. This list shows all steps currently placed on the relevant panel with its most important information.

9. Clicking on "Set Fiducials" allows you to define markers on your panel. The following dialog will therefore open:

set_fiducial

  • You can either use the values from the panel border or from the origin of the border.
  • If you want to place markers, you can select the starting point (left-top, right-top, left-bot, right-bot) from which they are to be placed and - if needed - the interval (X offset) that defines the spacing of the placement.
  • You have the choice between four default marker symbols; you can also load another symbol out of the default options or choose an own symbol from a library if needed.
  • You can also choose to add a mask opening; the size of this opening can be adjusted individually in mm. This also gives you the option to oversize the symbol.
  • You also have the option to add components. To do this, you just need to select one from your Package Library.
  • Before setting the fiducial markers (Click on "Set Fiducials"), you have to select the propriate layer/s where you want or need to place the markers.

10. "Add Routing" is used to define the routing for your panel. Clicking on "Add Routing" will open the following dialog:

add_routing

  • On the top of the dialog, there are four symbols to be further explained (from the left to the right):
    • 1. Symbol: For checking for components placed nearby.
    • 2. Symbol: Use for multiply cutouts.
    • 3 Symbol: Use to clean double cutouts.
  • Routing Layer: Choose the layere you want to use for routing.
  • Routing Size: Select the size of the routing.
  • Cutout Length: Adjust the length of your routing cutout/opening.
  • Reduce Size for Intersecting: It is possible to change the routing diameter for small gaps or near child steps.
  • Clear Route Layer: Remove all existing routings for new calculation.
  • Ignore Holes: Create Routing only for ourline elmenents.
  • Optimize Routway: Check for overlapping with near child step routings and remove double routings.
  • Only in Panel Profile: Depending on your edge handling this can help to place less routings and remove all routings outside of the panel.
  • Direct Routing: Place the routing lines direct on the outline of child steps, for some export formats the routing can be handled with shifting (left or right) to get the correct result.
  • Only in Vshears: Check Vshear lines on the selected layer, for some cases the routing should be only in some areas.
  • Components Outside: Use an oversize for overlapping components, this is needed for assemble in panel.
  • After the creation of the routing layer, you can "Use Mouse Click" to define a cutout for each mouse click. You just have to click on the intended routing part to set a cutout.

In the File menu you find an extra dialog "cutout editor" see here

11. For defining holes on your panel, click on "Set Holes". The following dialog will be opened:

set_holes

  • Like described in "9. Set Fiducials", this dialog works practically analogously.
  • There is the possibility to decide for the hole shape for each position (left-top, right-top, left-bot, right-bot) by clicking on : You can either decide for an oval form or a round shape. 
  • You can define the diameter of the holes to be set in mm. 
  • To set the holes like defined before, just click on "Set Holes".

12. "Set Profile" allows you to define the profile of your panel. The following dialog will be opened when clicking on it:

  • You have the option between setting the contour according to a rectangle or a manufacturing edge: Depending on your choice you have to set different parameters.
  • Rectangle: You have to define the x and y axis as well as the width and height of your profile in mm. If needed, you can select to use rounded corners (you therefore have to define a suitable radius)
  • Manufacturing Edge: You have to define the size of left, right, top and bottom of your profile in mm. You can also decide for rounded corners.
  • By clicking on "Accept", the current size of all active layers will be calculated. If there is no active layer, all loaded layers will be used instead
  • By clicking on "Set by all Outlines/Objects", all loaded objects will be used for the calculation.

13. Here, you can add another step on your current panel by choosing the step out of the provided list options. You are able to select each step that has been defined for this design.

14. Clicking on "Apply" applies all changes made by you on your currently opened design. 

 

Message System

You can address various exports with different MessageIDs.
For this you must use the function:
→ bool parent.SendMessage(string ReceiverName, string SenderName, int MessageID, List object Params).
 
Insert the ReceiverName given in this page and the desired MessageID of the export. Please pay attention to the parameters you have to pass for the export files!
 
  • "PCBI_GenCadImport.PCBI_GenCadExport"
    • ID: 1 Import GenCad file

      Params: string importPath

      ID: 2  Export GenCad file

      Params: string exportPath

      Example: parent.SendMessage("PCBI_GenCadImport.PCBI_GenCadExport", "script", 2, new List object(){ newGenCad })

 

  • "PCBI_IPC2581B.PCBI_Connection"
    • ID: 1 Import IPC2581b file Params: string importPath
      ID: 2 Add or modify Stackup Params: string/IFileData exportPath
      ID: 3 Export Stackup Params: string/IFileData exportPath
      ID: 4 Export to IPC2581b file Params: string/IFileData exportPath
      Example: parent.SendMessage("PCBI_IPC2581B.PCBI_Connection", "script", 4, new List object (){ newIPCF })

 

  • "PCBI_DXFImport.PCBI_Connection"
    • ID: 1 Import DXF file

      Params: string importPath

      ID: 2 Change Settings as XML

      Params: stringimportPath

      ID: 3 Save DXF file

       

       

      Params: 

      IFileData filedata

      Dictionary<double, List PCBI.MathUtils.PointD> outputElements

      IStep step

      string outptLayerName

      bool? unitInch

      bool unitInch

       

      ID: 4 Export file Asynchronus

       

       

      Params: 

      string name

      XMLSettingsOutput outputSetting

      List ILayer outputLayers

      IStep step

      bool param

       

      ID: 5 Export in DXF format

       

       

      Params: 

      string exportPath

      IStep step

      List ILayer outputLayers

      XMLSettingsOutput outputSetting

      bool param

      Example: parent.SendMessage("PCBI_DXFImport.PCBI_Connection", "script", 2, listParams);

 

  • "CncExport.PCBI_Connection"
    • ID: 1 Export SiebUndMeyer

       

      Params: 

      string exportPath

      PointD zeroOffset

      double settingDouble

      bool settingBool

      Dictionary<double, List PCBI.MathUtils.PointD>

      excellonSpecialOutput

      MoveRoutingDirection routingOptionDirection

      XMLSettings _settings

      string layerNames

       

      ID: 2 Export Excellon2

       

      Params: 

      string exportPath

      PointD zeroOffset

      double settingDouble

      bool settingBool

      Dictionary<double, List PCBI.MathUtils.PointD>

      MoveRoutingDirection routingOptionDirection

      XMLSettings _settings

      string layerNames

       

      ID: 3 Export Posalux

      Params:
      string
      exportPath
      PointD zeroOffset
      double settingDouble
      bool settingBool
      Dictionary<double, List PCBI.MathUtils.PointD>
      MoveRoutingDirection routingOptionDirection
      XMLSettings _settings
      string layerNames

           
      Example: parent.SendMessage("CncExport.PCBI_Connection", "script", 1, listParams);

 

  • "PCBI_MachineFormats_ImportExport.PCBI_Connection"
    • ID: 1 Export Viscom SI Params: string exportPath
      ID: 2 Export Viscom XML Params: string exportPath
      ID: 10 Export Parmi Params: string exportPath
      ID: 11 Export Goepel Params: string exportPath
      ID: 12 Export Modus Params: string exportPath
      ID: 13 Export Yamaha Params: string exportPath
      ID: 14 Export Tri Params: string exportPath
      ID: 15 Export Mycronic Data Params: string exportPath, bool exportTHTs

      Example: parent.SendMessage("PCBI_MachineFormats_ImportExport.PCBI_Connection", "script", 1, listParams);

    •  
  • "PCBI_Step_Export.PCBI_Connection"
    • ID: 1 Export Step file

      Params:

      string outputStepName
      List string exportOptions
      ExportOptionAll expOptionAll

      Example: parent.SendMessage("PCBI_Step_Export.PCBI_Connection", "script", 1, listParams);
    •  
  • "PCBI_AOICheck.PCBI_Connection"
    • ID: 1 run check without gui Params: string param
      ID: 10 open dialog and show it Params: string param
      Example: parent.SendMessage("PCBI_AOICheck.PCBI_Connection", "script", 1, new List object() { newAOI })

 

  • "PCBI_BareBoardDRC.PCBI_Connection"
    • ID: 1 open result file Params: string param
      ID: 2 show DRC dialog Params: string param
      ID: 3 run check and save result file Params: string fileName
      Example: parent.SendMessage("PCBI_BareBoardDRC.PCBI_Connection", "script", 1, new List object() { newDRC })

 

  • "PCBI_ComponentsAnalysis.PCBI_Connection"
    • ID: 1 Export HTML with all options Params: string exportPath
      Example: parent.SendMessage("PCBI_ComponentsAnalysis.PCBI_Connection", "script", 1, new List object(){ newAnalysis })

 

  • "PCBI_CreepageDistances.PCBI_Connection"
    • ID: 1 Export result in user DIR with given Nets Params: 

      string outputPath
      PCBI_NetGroups.NetGroup netGr
      PCBI_CreepageMeasure.XMLCreepageSettings settings

      Example: parent.SendMessage("PCBI_CreepageDistances.PCBI_Connection", "script", 1, listParams)

 

  • "PCBI_HazardAnalysis.PCBI_Connection"
    • ID: 1 Open the Dialog Params: string fileName
      ID: 2 Save FilePath Params:

      string fileName
      bool saveBothFormats

      Example: parent.SendMessage("PCBI_HazardAnalysis.PCBI_Connection", "script", 1, new List object() { newHazard })

 

  • "PCBI_TombstoneAnalysis.PCBI_Connection"
    • ID: 1 Export CSV in User Dir Params: string fileName
      Example: parent.SendMessage("PCBI_TombstoneAnalysis.PCBI_Connection", "script", 1, new List object() { newTombstone })
 
  • "PCBI_IDFFilter.PCBI_ConnectionImport"
    • ID: 1 Import IDF file

      Params: string importPath

      ID: 2  Export IDF file

      Params: string exportPath

      Example: parent.SendMessage("PCBI_IDFFilter.PCBI_ConnectionImport", "example", 2, new List object(){"path"}

 
  • "PCBI_NetGroups.PCBI_Connection"
    • ID: 1 Add Rule File

      Params: string importPath
      strong> IFileData importFileData

      ID: 2  Run rule check

      Params: string resultPath
      XMLSettings settings
      NetGroupList all net groups to check
      double first double is distance min outer, second double value is distance min inner and third double value is distance min 3D

      ID: 3 Open net group dialog

      Params: string info string

      ID: 4 Open net rule dialog

      Params: string step name

      Example: parent.SendMessage("PCBI_NetGroups.PCBI_Connection", "example", 4, new List  object(){"stepname"}