The definition of secondary development of UG is very broad. You can simply record some macros and then add them to the icon, which is also considered secondary development. Or use UG's Grip language to write a small program according to the functions you need to implement, and add it to your own UG icon, which is also secondary development. Or use C++ language and use UG's KF module to write some programs.