Ok. I am revisiting this topic.
Because I do not see the whole idea about idf import clear, the first thing I have done is finished packaging your IDF importer and I have installed it in my computer:
https://launchpad.net/~freecad-communit ... /+packages
Only by doing this, when I try to open an emn file, I get this pop-up.
This allows me to select your importer, the stock importer, or opening it with PCB WB. With the default example board, I get this with the first:
With the second option, I get (note that component that looks like a SMD regulator on the corner of the board out of position, which should have been rendered next to the 603 components near the slot made on the PCB):
With the third option, without further configuration (just clicking ok), I get an empty board.
The stock IDF fails for the regulator, I guess it is the conversion from IDF to STP.
If two different behaviours for importing are needed (IDF/STEP), a way can be just providing two importers and letting the user select the one he wishes to. I am not claiming this to be the only or the best option. It is just a built-in possibility.
I have made several tests with my own boards exporting them as IDF using "Kicad 0.201509280901+6225" from Launchpad from:
None of them has real EMP information, so I only get a board imported (no components). One of them is this simplistic break-out board, which shows fine in KiCAD 3D view:
but when imported, not even the holes on the board are imported, only the perimeter. I have no special interest in this board, but I enclose the EMN, EMP files in case it helps you "improve" then importer, in case you are interested.
Sometimes the importer, does not seem to work right for the board and holes in it.
Regarding whether this should be merged or not. I have done some work trying to see what you did in your Github IDFImporter. I created a new branch of the FreeCAD project in my repo and just manually forced your changes on it. This is the result:
https://github.com/abdullahtahiriyo/Fre ... b4c7557cb1
I have just had a quick look to the modifications.
The current contents of the IdfImporter repository substitute parts of the Idf stock importer. For example disabling the IDF to step conversion (model substitution). So it is not directly mergeable.
I understand from the code and your comments that this work has some extra support from IDF v3.
If we decide to "evolve" the stock version, for example to get the IDF v3 support (regardless of the decision to apply the IDF to STEP substitution or not), you should work on a fork of FreeCAD as shown above. Otherwise it is not practical to see what has been added.
Your version of the Importer seems to require QT support (from the import statements). This would make it (I think, not a python guy) unsuitable for a version of FreeCAD running on the console and using the IDF importer. FreeCAD can be run without an UI. If a final version would need QT support, then probably should not be an extension of the stock IDF importer, but a separate product.
IDF/stock STEP Models/EMP examples
IDF is, AFAIK, a CAD format only used for EDA. This means that IDF has meaning within FreeCAD only as far as it allows importation of circuit boards (made with KiCAD, Eagle, or whatever other SW). It does not have any other implications.
If IDF format advances, I think that the IDF support should be updated. So in principle your work has a place in an IDF stock module. Only that the IDF stock module is not just an IDF importer but an IDF importer and STEP model "swapper".
Stock STEP Models are not only old, but it really seems like a very reduced amount of components available (around 30). I am not sure how many practical boards may be opened with them (other than the one in the example).
I still think particular examples should not be packaged together with FreeCAD. But I partly note your point in that "unless usable with other boards", the STEP Models and the CSV file are also rather useless.
Noting that most of the STEP models are rather example-specific with only negligibly usable for other boards. And noting the difficulty in finding an agreement on what to merge and how to modify the stock IDF importer (should we drop the STEP conversion or not, only when models are unknown, selector dialog killing the FreeCAD console mode...). I think it makes sense to have this IDF Importer separately as a plugin. Mostly because it is ONLY an IDF importer.
But please people of FreeCAD interested in EDA. May I have your opinion?