| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > Предложение: Готовые функции

Предложение: Готовые функции

Ответ
Поиск в этой теме
Непрочитано 09.11.2007, 15:17
Предложение: Готовые функции
Apelsinov
 
Проектировщик ВК. LISP-любитель.
 
Москва
Регистрация: 15.12.2003
Сообщений: 1,186

прошу сильно не пинать, но у меня организационное предложение, оно в общем-то касается только тех кто сам пишет в лиспе.

я хотел бы предложить создать наряду с подразделом "Готовые программы" подраздел "Готовые функции".

Это все исключительно от того что я ужасно ленив, и иногда лень самому писать что-то , а есть подозрение что это либо у кого-то уже есть, либо кому-то будет интересно написать такое.

Функции туда выкладывать по собственному желанию, либо, что еще более интересно, по запросу.

Возможно так-же, именовать эти функции в соответствии с определенными правилами, что позволит в итоге получить некую базу функций, на основании которой можно много чего хорошего творить.

Я понимаю что предложение спорное, ну а вдруг из этого что и выйдет.

ЗЫ. Кстати, вот мне нужна функция по идентификации объекта как облака, т.е. полилинии созданной командой REVCLOUD.
аргументы: "Vla-объект"
возврат:
"Vla-объект" - если ооблако
nil - если нет
__________________
apel.fas
Просмотров: 114369
 
Непрочитано 28.11.2007, 17:13
#101
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Кулик Алексей aka kpblc #81
Переписывать нельзя, у многих стоит правило не изменять ничего в теле функции. Имя думаю к этому тоже относится. А вот сделать (setq _dwgru_... имя старой функции) можно. Дальнейшее обращение уже идет к новому имени. Правда в памяти будет уже два имени одной и той же функции, но терпимо. Рекруссивные функции только чтобы не поломать.
Supermax вне форума  
 
Непрочитано 28.11.2007, 21:16
#102
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Посмотрел я на созданные разделы и очень огорчился.
Все функции представлены темами и свалены в одну кучу. Программы также свалены в одну кучу.
Где дерево? Таких куч уже не меряно.

Где будет лежать сама библиотека?
В каком виде?
Кто будет создавать обновления?
Supermax вне форума  
 
Непрочитано 28.11.2007, 21:34
#103
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Supermax, вот тебе вариант использования библиотеки. Задача - получить список всех динамических свойств блока. Результатом будет
Код:
[Выделить все]
(_dwgru-conv-value-vla-to-list (_dwgru-property-get (car (entsel "\nУкажите блок : ")) 'dynamicproperties)
Для получения указателей на все атрибуты блока будет
Код:
[Выделить все]
(_dwgru-block-get-attributes (car (entsel "\nУкажите блок : ")))
И не надо будет тысячи раз дублировать один и тот же код.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.11.2007, 23:17
#104
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Kpblc, ShaggyDoc четко в правилах хелпа к функции написал, что надо перечислять в самом начале все ссылки на другие библиотечные функции. Я его поддерживаю. Если мне надо будет вырвать с мясом нужную мне функцию и вытащить все "корни", что она пустила в библиотеке, я это сделаю легко. Это конечно, если будут перечислены заранее все ссылки. Если не перечислять, а ползать по лиспу и вылавливать -

Я к библиотеке отношусь как к библиотеке. Как источнику знаний. Зачем писать код, если он уже написан? Другое дело как его использовать. В Автокаде уже есть библиотека функций, и она неотъемлемая часть самой программы. Библиотеку можно конечно расширить, и даже нужно, поскольку многого нет, конечно, за счет подвязки еще одной. Но если первая библиотека нужна Автокаду для работы некоторых команд и далеко не все функции в ней загружены, между прочим, то наша библиотека для каких программ предназначена?
Теоретически подразумевается, что прикладные программы-макросы будут ею пользоваться, но позвольте, я и многие другие пользователи таскаем макросы со всего мира и с форума DWG.RU тоже естественно. Не спорю, что когда-то на форуме будут лежать макросы в таком изобилии, что покроют все нужды, и не исключено, что они будут опираться на эту библиотеку, но к тому времени, самодостаточных макросов станет еще больше.
Да ты сам, если напишешь что-нибудь стоящее, постараешься оформить эту прогу, чтобы работала на любой машине и в любой программе. Где же твой хваленый универсализм?
Вы как хотите, а я из за пары связанных функций всю библиотеку таскать не буду. Вырву и вставлю в тело макроса.
Supermax вне форума  
 
Непрочитано 28.11.2007, 23:22
#105
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Я буду таскать всю библиотеку. Весь fas. Насчет справки, перекрестных ссылок и т.п. - я пока пас. Времени нет совсем на качественную проработку.
Цитата:
<...>что надо перечислять в самом начале все ссылки на другие библиотечные функции<...>
ShaggyDoc явно этого не написал. В представленном примере указаны функции "первого уровня вложения". И это ИМХО достаточно.
К сожалению, я не знаю HTML в том объеме, который позволил бы автоматом сформировать полное "дерево" библиотеки со всеми перекрестными ссылками. Посему пока только если руками и справку формировать, и все остальное делать.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.11.2007, 06:34
#106
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
К сожалению, я не знаю HTML в том объеме, который позволил бы автоматом сформировать полное "дерево" библиотеки со всеми перекрестными ссылками. Посему пока только если руками и справку формировать, и все остальное делать.
Даже если знать HTML полностью, то делать этого не стоит.
Я вложил в инсталляцию проект Help And Manual -

help\DWGruLispLib.hmx

Надо взять с http://www.helpandmanual.com/ программу и работать в ней. В результате можно иметь документацию в разных форматах - hlp, chm, pdf, html, rtf. Просто выбором конечного формата при компиляции.

При желании можно и html на сайт выложить, но это надо доступ по FTP. Да и незачем (если не ставить целью повыщение посещаемости). Можно и специальную CMS приспособить (форум для этого малопригоден). Но в справке любого вида не надо приводить исходные тексты - только формат вызова, результаты и особенности. Исходники будут сотни раз меняться и с их публикацией лучше решать отдельно. Самое лучшее - в периодически обновляемой инсталляции.
ShaggyDoc вне форума  
 
Непрочитано 29.11.2007, 08:31
#107
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Я вчера попробовал создать кусок справки... В связи с чем вопрос: насколько "глубоко" надо разворачивать дерево используемых функций? До упора или все же ограничиться первым уровнем? Что прописывать, если функция не использует сторонних? Писать "нет" или просто исключать элемент?
А HTML я хотел создать именно для "автоматического" импорта описаний в hmx. Дурная голова никому покоя не дает
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.11.2007, 09:47
#108
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
насколько "глубоко" надо разворачивать дерево используемых функций? До упора или все же ограничиться первым уровнем?
Если и делать, то только 1-ый уровень. Хотя и это лишь информационная часть и обязательной её делать - не стоит, элементарно потому, что это вне власти автора функции - в любой из функций, которые он использует в своей функции, могут появиться/исчезнуть вызываемые функции, о которых он естественно не узнает. Заниматься подгонкой формата библиотеки для удобства её раздёргивания, это вообще какой-то мазохизм. Не нравится библиотека - не юзай.
Alaspher вне форума  
 
Непрочитано 29.11.2007, 10:06
#109
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Я вчера попробовал создать кусок справки... В связи с чем вопрос: насколько "глубоко" надо разворачивать дерево используемых функций? До упора или все же ограничиться первым уровнем? Что прописывать, если функция не использует сторонних? Писать "нет" или просто исключать элемент?
А HTML я хотел создать именно для "автоматического" импорта описаний в hmx. Дурная голова никому покоя не дает
Дерево функций в справке лучше разворачивать до "логического" упора. Это будет обычно максимум 2 - 3 уровня. Для очень специальных может и больше, например:

Рисование \ 3D \ трубы \ фитинги \ муфты

Но это редко. И вряд ли дойдет до этого. Лучше, чтобы соответствовало структуре каталогов с самими текстами.

Одного уровня мало - будет трудно работать. Но каждое имя функции надо делать ключевым словом (Ctrl-K), вот в Индексе и будет одноуровневое, для быстрого поиска.

Описание лучше стандартизировать, брать из заготовки. Лучше записать "нет" - это будет явно указывать. А если ничего не указано, то может быть просто забыл.

Для импорта описаний в HMX автоматика вряд ли получится. Можно, но зачем - больше будет потом возни с оформлением. Для оформления, кстати, лучше пользоваться только стилями из меню (с добавлением, если надо).

В заготовку я вставлял примеры исходника в виде Insert - Plain HTML Code. А сам код с подсветкой синтаксиса получал в ruSourceExplorer. Но и это, наверное лишнее. Так можно примеры вставлять, а исходники самих функций лучше в справку не заталкивать.
ShaggyDoc вне форума  
 
Непрочитано 29.11.2007, 10:08
#110
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


А, насчет уровня я не так понял. Я имел ввиду дерево справки. Если же речь про ссылку в описании функции, то конечно, надо только на 1-й уровень, как Alaspher написал.
ShaggyDoc вне форума  
 
Непрочитано 29.11.2007, 13:02
#111
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Согласен на 1-й уровень вложения, но с (Ctrl-K).
Supermax вне форума  
 
Непрочитано 05.12.2007, 09:09
#112
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Я может и не по чину влезаю, но что, как всегда базаром типа "какая серьезная блондинка" и кончилось? Получилось "как всегда"? Уже и сам "руководитель фирмы" согласен на 1-й уровень, а кто исполнять-то будет? Типа Ctrl-K?

Раз уж я немного малину испортила внесу свой взнос в общак. Типа меня добровольно заставили. Если смогу, прилеплю архивчик. Там кучка лиспов, главное чтобы dwgru-get-функции заработали. И FAS готовый есть. А пример вот такой:

Код:
[Выделить все]
(defun test_getpoint (/ point_1 point_2 point_3)
 ;; (test_getpoint)
 (while (setq point_1 (dwgru-get-point-or-exit "Первая необязательная точка" nil))
  (progn
   (setq point_2 (dwgru-get-point-reguired "Вторая точка - ввод обязателен!" point_1))
   (setq point_3 (dwgru-get-point-or-exit-or-kword-base
                  "Третья - возможен выход. Или слово "
                  point_2
                  "Арык Кирдык Шайтан Билайн"
                 ) ;_ end of dwgru-get-point-or-exit-or-kword-base
   ) ;_ end of setq
   (print point_3)
  ) ;_ end of progn
 ) ;_ end of while
)
Только не пытайте сильно, я лишь имена изменила да комментарии нецензурные убрала. Чё с меня взять. Sir Alaspher и шевалье Кулик Алексей aka kpblc разберутся.
Вложения
Тип файла: zip DwgRuLisp.zip (23.3 Кб, 230 просмотров)
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
 
Непрочитано 05.12.2007, 10:06
#113
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Sir Alaspher и шевалье Кулик Алексей aka kpblc разберутся.

Надо делать так, чтобы и Profan разобрался.
Profan вне форума  
 
Непрочитано 05.12.2007, 15:57
#114
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от BarbiЁ Посмотреть сообщение
а кто исполнять-то будет?
С этим у нас всегда сложно... Традиция.

Цитата:
Сообщение от BarbiЁ Посмотреть сообщение
Только не пытайте сильно, я лишь имена изменила...
Не, сильно не бум.
В одном месте оказалась забытой функция ru-error-catch, кроме того - пример, по крайней мере один - не очень удачный. При таком варианте:
Код:
[Выделить все]
  (dwgru-error-catch
   (function
    (lambda ()
     (setq result (getpoint "\nТочка (прерывание блокировано):"))
    ) ;_ end of lambda
   ) ;_ end of function
переменная result становится псевдоглобальной, а это хоть и не катастрофа, но совершенно ни к чему, лучше сделать примерно так:
Код:
[Выделить все]
(defun test002 (/ result)
;;; Использование  dwgru-error-catch (test001)
 (while (vl-catch-all-error-p
         (setq result (dwgru-error-catch
                       (function
                        (lambda ()
                         (initget 1)
                         (getpoint "\nТочка (прерывание блокировано):")
                        )
                       )
                       nil
                      )
         )
        )
  (princ (strcat "\nТЕСТ прерывания - " (vl-catch-all-error-message result)))
 )
 result
)
Извиняйте за занудство.

Цитата:
Сообщение от BarbiЁ Посмотреть сообщение
Чё с меня взять.
Ну, если подойти к вопросу творчески..., с выдумкой...

Цитата:
Сообщение от Profan Посмотреть сообщение
Надо делать так, чтобы и Profan разобрался.
Огурец пособит если что.
Alaspher вне форума  
 
Непрочитано 06.12.2007, 07:33
#115
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Бандарлоги, радуйтесь! Каа нас заметил!

Цитата:
В одном месте оказалась забытой функция ru-error-catch
Я не знала, что это нецензурно. Буду знать.

Всё остальное за пределами физиологических возможностей моёго моска. Но что идея подохла - даже мне понятно.
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
 
Непрочитано 06.12.2007, 09:01
#116
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Неправда Ваша однако... Идея (по крайней мере пока) не подохла. В худшем случае находится в коме. Реанимируем, фиг ли нам
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.12.2007, 12:23
#117
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Я так понимаю, что надо чтобы за Fas стоял чей-то Profile?
Раз никто не хочет браться за систематическое обновление данного файла, предлагаю следующую комбинацию:
В начало загрузки файла мы вставляем функцию alert с рекламой «модератора» этого файла. Типа:
(alert “Данная библиотека, в данный момент курируется фирмой ООО \“Виртуальные Строительные Технологии”. Все пожелания и жалобы оставлять в теме ……. Dwg.ru. За оказанием профессиональных услуг в области …….. обращаться ……[email protected].”)

Ну, текст, предлагаю обсудить и утвердить.

Качнули Fas, загрузили, а он выкинул окно с рекламой модератора файла.
Когда мне надоест его перекомпилировать, я передам другому желающему это делать.
Можно установить срок такого курирования, скажем – один месяц и определять достойного на форуме общим голосованием.

Народ, - занимайте очередь!
Я – Первый.

Последний раз редактировалось Supermax, 06.12.2007 в 14:02.
Supermax вне форума  
 
Непрочитано 06.12.2007, 13:05
#118
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Вот поел и мне на ум еше пришло.

А место для рекламы ведь можно и продать...

Короче, если я доберусь до этого курирования, не обижайтесь если вместо моей конторы там появятся краски, лаки и всякая лабуда для приятного отдыха.

Поскольку многие макросы оформлены кнопками, и в них зашит запуск данной библиотеки, то рекламка будит выскакивать каждый раз, как нажмешь кнопку.
Supermax вне форума  
 
Непрочитано 06.12.2007, 13:08
#119
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Идея несостоятельна. Вместе с библиотекой (в которой, кстати, "готовых к применению" функций, скорее всего, будет раз-два и обчелся) обязательно будут поставляться исходники. Так что "снести" рекламу будет достаточно просто ИМХО.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.12.2007, 13:23
#120
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Что такое исходник? - Это лисп, который соответствует fas. Так? Если ты курируешь fas, и обновляешь его в Dawnload-e, то исходники функций лежат только в темах для обсуждения, а собранный лисп из них ты тоже можешь дать, если совсем заработался. А я вот - не дам. В тему лезь и смотри на функцию, хоть до рези в глазах.
Хочешь, сам скомпилируй свою библиотеку и радуйся.
Вот тому, кто идет мне на смену, я этот лисп, а также пороль к download-у и передам. Он мою рекламку сменит на свою и пароль откорректирует под себя.
Когда в файле 10 функций - то да, плево и свое перекомпилировать, а когда 1000?
Supermax вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > Предложение: Готовые функции

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как связать две функции Holon Программирование 11 30.07.2007 13:32
Имя Layout'а из результата функции vla-get-activelayout kp+ Программирование 4 16.08.2005 07:58
Странности функции rtos FWA Программирование 2 16.02.2005 11:37