When I asked the manufacturing house for the clarification they replied with "use EIA-481 for zero component orientation, and use the IPC-7351C to design the size of the pads." With all the standard changes and discrepancies this basically tells me nothing.
Just received the boards and wanted to give a quick update. It looks like the comments by The Photon and others were right on the mark - the shop did not have any problems with orientations and placed all components exactly right.
I did not adjust anything to manufacturer-specific tape orientation, simply used footprints from KiCad libraries where it was appropriate. For my own footprints I followed IPC-7351C orientation guidelines, pretty much leaving the shop to deal with EIA-481 discrepancies. Of course, it could be I got lucky and the suppliers I've used in BOM simply happen to use compatible orientations.
Each row in the table is a feeder position, and you can see it lists what Part is to be fed in that position, and the exact X and Y coordinates at which the nozzle should pick up the part. Also a vertical position (Z). But most salient for the current thread, there's a "PartR" column. This tells the machine how much it must rotate the component to get it into "The" standard zero orientation, (as portrayed on a config screen for the component or package).
So at most, the role of the PCB designer should be to supply placement data to the PnP that states the orientation of the part relative to the PnP's idea of "The" standard zero orientation. This of course requires knowing what are those PnP standard zero orientations.
In principle, the PnP manual, or the board house, should be able to tell you what "standard" the PnP follows for its zero orientations, or what those orientations are for specific packages you're using. (Conceivably, an alternative workflow would be for the PCB designer to provide to the board house a reference declaring the zero orientations assumed for each component or package. In practice, they may just eyeball the actual board.)
It ought not be necessary to actually change your PCB design library footprints to match the PnP's zero orientations. (... which could change if you moved to a different PnP). Instead, you can post-process the PCB software's output PnP placement/orientation data, to add or subtract rotations so it's relative to the PnP's zero orientations.
So at the PCB design stage you don't have to deal with that level of detail. But ideally you would institute some mechanism whereby the zero reference rotation used for each component in the PCB design is coordinated with the zero reference rotation used by the PnP.
Yesterday, I verified an online tool of a PCBA manufacturer that allows you to check and correct the component orientations online. There were quite a few orientations that were incorrect while the footprints definitions have the correct designed orientation according to IPC-7351.
Despite that, I do check the orientations of components. Generally the orientation on tape is mentionned in the datasheet, sometimes you need to go and find it in the manufacturer's "central" documentation where they list all specifications of their packages and orientation on tape.
The IPC package generator in EAGLE which I would imagine is the same as in Fusion Electronics and on Library.io creates both the footprint and the 3D model as a pair for a large number of different types of components based on the parameters you provide. It can't do all types of footprints but it does a lot. I've built up a lot of my more recent libraries using this generator (with some manual tweaks for things like the mask opening for BGA's and sorting the font type/size) and I never have issues with component orientation because they are all generated consistently to the IPC specs.
Are you using the LP Wizard or older solution we developed years ago? Most components built back then are now obsolete! You need to see our newest library solution - see what you are missing! Remember, PCB libraries are our passion - it is not just "another thing" we do. It is ALL we do!
In trying to have things run smoothly with placement, I have to do a lot of theta adjustment to get the rotation right during placement. Even if the part looks good on the PnP machine screen sometimes it places differently than what is shown. If I understand it correctly, a chip resistor for example would be created in the layout library horizontally (pad on the left and pad on the right). Then if it is put onto a board layout in the same orientation, then the theta would be zero in the PnP file. So if the part is presented in the feeder in the same orientation, then there is no theta adjustment at the placement level. If the part is rotated 90 in PCB layout, then that 90 is reflected in the PnP file and the placement machine rotates it accordingly from its "zero" state. I am finding I have to rotate most of the ICs, some of the capacitors, transistors and diodes which takes time during the programming process. I know that some parts are created in the PCB layout library left-right and others are up-down. Now we have been using a new CAD package so there may not be consistency in how the library parts were made. Should they all be consistent and how do you fix it now? Should the PnP profile orientation match the CAD part library orientation? To make matters worse, some DPAKs for example are presented in the tape horizontally and others are presented vertically, so probably two profiles need to be made accordingly on the PnP machine to handle each presentation. Then purchasing switches vendors and they come in on different orientations or different widths of tape! How do others out there handle this or do you just grit your teeth and plow through it? Please share your pain.
A 3D bounding box, which requires specification of both the 3D bounding box sizeat zero orientation and the transformation from the object center to the bounding box center.Configure these parameters in the viewers/ObjectRefinementViewer component in theapplication files.
Sketches are exported in the document's default units, and planar faces are exported with outer solid geometry only, no dimensions or interior geometry. Specify a file name, select the format and version. Optionally check the box next to Set z-height to zero and normals to positive (use this option to ensure that all normal vectors of components with coordinates on the z plane have a positive z component). Click Export.
Specify a file name, select the format and version. Optionally check the box next to Set z-height to zero and normals to positive (use this option to ensure that all normal vectors of components with coordinates on the z plane have a positive z component). Click Export.
When exporting a planar face from the graphics area, use the Export as DXF/DWG option. Specify a file name, select the format and version. Optionally check the box next to Set z-height to zero and normals to positive (use this option to ensure that all normal vectors of components with coordinates on the z plane have a positive z component). Click Export. (Using the Export... option exports the entire part not just the planar face.)
When exporting a planar face from the graphics area, use the Export as DXF/DWG option. Specify a file name, select the format and version. Optionally check the box next to Set z-height to zero and normals to positive (use this option to ensure that all normal vectors of components with coordinates on the z plane have a positive z component). Click Export.
Component outlines should be created to match the orientation and position ofthe corresponding footprints. This avoids the need to specify a non-zerorotation for the IDF component outline. Since the IDF exporter ignores the (X,Y) offset values, it is vital that you use the correct origin in the IDFcomponent outline. 2b1af7f3a8