|
Тема |
Стартираща програма за програми [re: StSt] |
|
Автор | StSt (Нерегистриран) | |
Публикувано | 30.10.06 09:39 |
|
|
По-горе бях дал описание на организацията на работната пространство на моя акад.
Като най-удобно средство за зареждане и стартиране на програми за мене е специализирана програма, която търси, зарежда и стартира различни функции от файлове. Когато работиш с 20-30 програми все още имаш възможност да помниш името на файла, но когато станат повече е трудно - дори невъзможно. Аз имам 500-600 програмни файла, като във всеки има дефинирани по няколко функции. Стремил съм се да ги обединявам тематично, по-често ползваните функции отделям в библиотечни файлове, използвам зареждащи програми и т.н.
И въпреки това много често се чудя къде беше една или друга функция, какво име има и т.н.
Направих си програмка, която търси в лисповите файлове определени думи и ми извежда списък с всчики редове, където те се срещат - това всичко помага при работата ми.
Сега малко за организацията на лисповите файлове.
Първият ред на всеки лиспов файл е коментар - кратко описание на предназначението на дефинираните функции в него.
Преди всяка дефиниция на функция слагам коментар за предназначението й.
Когато във файла има дефинирана стартираща функция, на последния ред се записва
'(име-на-стартираща-функция)
При зареждане на файла тази функция се присвоява по подразбиране на променливата RUNFUN (функциятя LOAD връща последната описана функция) и може да се стартира без да е необходимо да се избира. По този начин не е необходимо да помниш коя е стартиращата функция от дефинираните във файла.
Програмата се стартира с отделен бутон в туулбара или чрез написване на команда LRUN или LR.
От прозореца за директориите се избира директория, а в полето за файлове се извежда списък с лисп файловете в тази директория. Под тях се изписва съдържанието на първия ред на файла.
При избор на файл се извежда диалог с описанието на всички заредени до момента файлове. При избор на файл се извежда списък с реда, съдържащ
(DEFUN
и предходния (там е описанието на действието функцията).
При избор на функция се определя името й (чрез операции със стрингове) това име се търси в списъка (ATOMS-FAMILY 1) и се взема от (ATOMS-FAMILY 0).
Функцията (ATOMS-FAMILY 1) връща списък на всички дефинирани променливи (включително и нови функции) като стрингове, а(ATOMS-FAMILY 0) - същия списък като символи.
Името на функцията се присвоява на една променлива RUNFUN и при стартиране на команда RUN се правят някои проверки и се изпълнява функция
(eval RUNFUN) с което се изпълнява избраната функция. По този начин избраната функция наподобява действието на командите на ACAD - това е команда RUN.
Командите RUN и LRUN са дефинирани в ACAD.LSP и се зареждат при зареждане на DWG файл.
|
| |
|
|
|