#usage "Collection of useful routines\n" "

" "Author: support@cadsoft.de" // THIS PROGRAM IS PROVIDED AS IS AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED // EditBox with Execute/Save filename int edit_save_execute(string cmd, string f_name) { int R; R = dlgDialog("Edit and execute") { dlgTextEdit(cmd); dlgHBoxLayout { dlgPushButton("+&Execute") dlgAccept(); dlgPushButton("-&Cancel") dlgReject(); dlgPushButton("+Save") { string dest = dlgFileSave("Save Script File", f_name+".scr", "*.scr"); if (dest != "") output(dest, "wt") {printf(cmd);} } } }; return R; // 1 = Execute, 0 = Cancel } // get ULP program name string get_ulp_name(void) { string s = strsub(argv[0], 0, strlen(argv[0])-4); string p = s; char c = '/'; int pos = strrchr(s, c); if (pos >= 0) { p = strsub(s, pos + 1); } return p; } // get ULP path string get_ulp_path(void) { string ulp_path = ""; char c = '/'; int pos = strrchr(argv[0], c); if (pos >= 0) { ulp_path = strsub(argv[0], 0, pos + 1); } return ulp_path; } // get project path, if in board or schematic, otherwise library path string get_project_path() { string s = "", p = "";; if (library) { library(L) s = L.name;} if (board) { board(B) s = B.name;} if (schematic){ schematic(S) s = S.name;} char c = '/'; int pos = strrchr(s, c); if (pos >= 0) { p = strsub(s, 0, pos + 1); } return p; } // returns 1 if FileName exists (including path) int exist_file(string FileName) { string a[]; int n = fileglob(a, FileName); if (n == 0) return 0; else return 1; }