← Back to team overview

kicad-developers team mailing list archive

Hoping to contribute but I have some questions


I am still keen to attempt to incorporate geographical component annotation into KiCad. In general, it is preferable for component annotation to be done relative to the PCB and in some logical order (left/right, top to bottom, etc). Thereafter this information is imported to the schematic. I wrote a standalone utility (RenumKicadPCB) which does this but ideally, we’d want the function built into Kicad.

I understand this would be viewed as a “rogue effort” but lack of geographical component annotation is a major missing feature and my hope is that if my code works the developers might consider adding it or something like it into the project. Otherwise I’ll just maintain my own variant of the two affected applications for limited use.

I am not used to working in c++ or working on large projects. Nevertheless, I figured I’d give it a try. I have been studying the source for a few weeks and have developed a strategy which would be very simple to implement if I had more skill/experience. 

The first thing I want to do is to add the ability for eeSchema to import a “was/is” file to update schematic annotation. Since renumbering the PCB can be done manually or with a plugin this seems like a good first step. Since an annotation function already exists in eeSchema, all I would have to do it provide an option for replacing annotation with a was/is rather than the annotation generated by eeSchema’s annotate function. 

I see a clear path to doing so however, the scope of Kicad and my limited experience with c++ and large projects mean it is not going to be easy for me. I am not that adept at navigating Doxygen files so I have a few questions regarding the source code (these are limited to eeSchema at the moment).

1)	Where are the file IO functions? I have searched for (for example) LoadProjectFIle and find the prototype but not the actual function. Similarly I find the prototype for SaveEEFile() but not the actual function.

2)	I would like to copy as much of the existing code and dialogs as possible (i.e. make new dialog based off another dialog) but when I open, for example, dialog_annotate_base.h I see

	// C++ code generated with wxFormBuilder (version Jun  5 2018)
	// http://www.wxformbuilder.org/
But I can’t find the “source” from which this file is generated. Where is it?

3)	There is a guide on the Kicad documentation “Tool framework” which describes adding a tool to PCBNew. Is there a similar guide to adding a tool/function to eeSchema? How do I go about this?

Thanks in advance for your help.

Follow ups