Hi Everyone, I am the developer that wrote the EagleIDFExporter.ulp exporter for the recent Eagle v7 release. Ive gotten a couple questions and feedback from users regarding this ULP so I thought Id start a thread on the community to post the questions and give other users an option to give me feedback and ask questions. Im focused on delivering a high quality ULP and to also make sure its functionality aligns to the business processes its used in. Feedback on bugs, additional features, and input on how the ULP doesnt necessarily align to your business process is important to me to make sure the ULP is delivering high value to its customers.
Here are the 2 questions I have received and my feedback.
Question 1 - My company has a library that stores our board outlines. When I build a new board I load the board outline as a component but the ULP fails to pick up the board outlines. Is it possible to modify the ULP to read the board outline from the library so that the output UDF is accurate?
Answer 1 - The current ULP assumes the board outline is made of wire elements on layer 20 only. It also has some logic to consider circle elements on layer 20 to allow for circular boards. Its technically possible to read the outline data from a component thats read in from a library. In fact this is how the logic works to establish the component bounding boxes which show up in the 3D model. There are two challenges with incorporating this functionality into the existing ULP. The first is the ability to distinguish the board component from the other components so that the two dont get mixed up - either the board outline gets included in the components or all the components are treated as board outlines. The second challenge is that when I process the component outlines I am only able to build a bounding box and not a detailed outline even if the library component has a more detailed outline. This is due to the need to build a continuous, closed outline so the 3D extraction can happen. For the existing logic on components I felt it was acceptable to only generate a bounding box but for a board outline I think its critical to have an accurate outline and a bounding box may not be suffient.
Question 2 - I have a round board with a slot in it. When I run the IDF exporter the slot is output but the circular outline is not. How can I get the circular outline to be output in the IDF file?
Answer 2 - I looked into this in detail and its a combination of a bug in the code and then also some assumptions on purely circular boards. The short answer is if you want to have a circular board then the best approach is to use a Curved Wire style on layer 20 to build the outline. Dont use the Circle element as the ULP has some logic in it related to pure circle boards. The shortfall of using the Curve Wire style is it will not give you a pure circle. It will give you rounded corners with very small straight sections in between them although if you are possible you can get a board that looks like its a circle.
There is also a bug in the code where it only considers Circle elements on layer 20 if there are no other wire elements. This works fine if the board is a circle with no slots in it but if there are slots it never considers the circle element. I have a beta version of a fixed version of the code that addresses this issue. If you are interested in testing it let me know and I will share it with you. Eventually Ill work to get the updated version published but Id like to do some more testing on it before its officially released.
Thanks
Marc