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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Обновление программы «Прокат» Василия Кондрата

Обновление программы «Прокат» Василия Кондрата

Ответ
Поиск в этой теме
Непрочитано 05.12.2006, 18:24
Обновление программы «Прокат» Василия Кондрата
Владимир М
 
ООО "Болт и Гайка"
 
Ухта
Регистрация: 31.07.2005
Сообщений: 380

Вот обновил базу данных проката для швеллеров и уголков *.dat; но вот в чем проблема!
Для швеллеров гнутых ГОСТ 8278-83 и уголков гнутых равнополочного ГОСТ 19771-93 и неравнополочного ГОСТ 19771-93 меняется номенклатура профиля для обычной и качественной стали, т.е к обновленной базе добавил еще дополнительную svlrgk.dat; ugrgk.dat; ugngk.dat. И поменял диалоговое окно, добавив опцию «выбор стали»
И вот не как не получается связать выбор с этими кнопками!
[ATTACH]1165331931.JPG[/ATTACH]
===
Добавлено 13.02.2009:
К сожалению, автор ветки последнее время на ней не появляется. Последняя актуальная сборка находится здесь.
Просьба разработчикам: при изменении писать мне или Солидворкеру в личку с указанием поста, где выложена сборка.
/kpblc/


Последняя работающая версия от VVA : http://forum.dwg.ru/showpost.php?p=352714&postcount=458
Версия от gomer : http://forum.dwg.ru/showpost.php?p=637272&postcount=568
Версия для BricsCAD : http://forum.dwg.ru/showpost.php?p=621028&postcount=545

При некорректной работе попробуйте совет из #777

Вложения
Тип файла: zip prokat_ru_Bricscad8-10.zip (183.6 Кб, 919 просмотров)
Тип файла: rar Procat_N458 от 16.12.2009.rar (117.8 Кб, 1171 просмотров)
Тип файла: zip Prokat568.zip (114.5 Кб, 1733 просмотров)

__________________
Я не волшебник, я только учусь…

Последний раз редактировалось Кулик Алексей aka kpblc, 05.03.2015 в 09:02.
Просмотров: 311848
 
Автор темы   Непрочитано 30.12.2006, 19:13
#61
Владимир М

ООО "Болт и Гайка"
 
Регистрация: 31.07.2005
Ухта
Сообщений: 380
<phrase 1=


nikе, спасибо конечно за труд, но столько много всего, а особенно скобок на отдельных строках. Мне бы принцип логический, как это сделать какие параметры нужно сохранять и как это лучше сделать.
Спасибо и за предложения с *.ini но с LISPом практичнее я с вами согласен...
А на счет бесплатного САПРа есть мнение у каждого. А когда человек учится этому, делать это нужно бесплатно, так как нужна помощь, в процессе которого ты получаешь знания, а так же мнения со стороны и варианты решения различных вопросов.
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 30.12.2006, 21:19
#62
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 200


Привет, Владимир М. Выложенный мной лисп сохрани в файл INI-EDIT.LSP. Он содержит библиотечные функции для работы с ini файлами. Добавляешь в свою программу строку
(load "INI-EDIT.LSP" )
и эти функции доступны из твоей программы. В комментариях даны примеры использования этих функций.
Положим, что имеем файл sp.ini со следующим содержанием:
[poz_sec]
poz_vol=4e6613

[dl_sec]
dl_vol=4560

[kol_sec]
kol_vol=81

[nfas_sec]
nfas_vol=0

[rfas_sec]
rfas_vol=0

[fas_sec]
fas_vol=0

[armature_sec]
armature_vol=1

Например так можно записать в sp.ini новое значение nfas_vol, считывая его из текстового окошка диалогового окна.
(ini_writeentry "sp.ini" "nfas_sec" "nfas_vol" (get_tile "nfas"))
А так прочитать значение этой переменной

(setq nfas (ini_readentry "sp.ini" "nfas_sec" "nfas_vol"))
и установить это значение в в edit box диалогового окна
(set_tile "nfas" nfas)
nikе вне форума  
 
Непрочитано 30.12.2006, 21:40
#63
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 200


2 Владимир М
Еще хотелось бы тебя попросить чтоб ты по возможности переделал библиотеку слайдов на отдельные файлы слайдов, т.к. IntelliCAD не поддерживает работу с библиотеками слайдов. Т.е. программа прокат работает но в диалоговом окне не отображаются картинки с профилями. В АСADе естественно все нормально, но для тех, кто работает в ACAD эта программа не нужна, тк могут работать например с ProjectStudio CS. А твоя программа больше нужна тем, кто работает с бесплатными или платными, но с разумной ценой в пределах 100-200 у.е. программами типа ProgeCAD ( a ProgeCAD LT вообще бесплатна, но поддерживает урезанный лисп без vl- функций и компилирующей функции function)
nikе вне форума  
 
Автор темы   Непрочитано 31.12.2006, 01:50
#64
Владимир М

ООО "Болт и Гайка"
 
Регистрация: 31.07.2005
Ухта
Сообщений: 380
<phrase 1=


Спасибо, nikе. А аргументы которые писал как пример? Я так понял. А со слайдами я разделаюсь и выложу, только скажи куда. Тебе или здесь?
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 31.12.2006, 02:06
#65
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от nikе
Знай что Бог на нашей стороне. Наше дело правое. Победа будет за нами.
Поддерживаю!!!

Последний раз редактировалось Евгений А., 29.06.2013 в 19:43. Причина: Был неправ.... молод, глуп и т.д.
Евгений А. вне форума  
 
Непрочитано 31.12.2006, 02:37
#66
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Владимир М
Что нужно и как сделать чтобы при повторном выборе проката оставалось предыдущее сохранение выбора элемента проката :?:
Не советую использовать вам новый файл, их итак в Прокате как собак нерезанных. Есть специально для этих целей созданный в виндовс РЕЕСТР. Сохраняйте в него значения всех TILE перед закрытием окна, а потом при открытии считывайте. Это очень легко, вот мой пример:
Код:
[Выделить все]
(setq spisok_tile '(tile1 tile2 tile3 ....));список всех tile которые сохраняем.
(setq reg_key "HKEY_CURRENT_USER\\Software\\ПРОКАТ");адрес в реестре.
(vl-load-com)
;====================================
(defun close_dlg (flag / tile);функция закрытия окна
   (foreach tile spisok_tile
      (VL-REGISTRY-WRITE reg_key tile (get_tile tile));считываем из tile и пишем в реестр
      )
   (DONE_DIALOG flag); закрываем окно
   )
;====================================
(defun open_dlg (dlgname dcl_id / tile x);функция открытия окна
   (new_dialog dlgname dcl_id)
   ....;заполнение списков
   (foreach tile spisok_tile
      (if (setq x (VL-REGISTRY-READ reg_key tile));чтение и реестра
         (SET_TILE tile x);если есть запись, то устанавливаем tile
         )
      )
  (setq flag  (START_DIALOG));активация окна 
   )
Евгений А. вне форума  
 
Автор темы   Непрочитано 31.12.2006, 14:28
#67
Владимир М

ООО "Болт и Гайка"
 
Регистрация: 31.07.2005
Ухта
Сообщений: 380
<phrase 1=


Евгений А. не стоит обижать друг друга мы же не для этого здесь собираемся тем более высшее общество должно вести себя достойно и в рамках приличия, зачем судить каждого лучше следить за собой. А вот Бог пусть нас рассудит. А ту какая-то свинья получается... ну и новый год будет....
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Автор темы   Непрочитано 31.12.2006, 14:34
#68
Владимир М

ООО "Болт и Гайка"
 
Регистрация: 31.07.2005
Ухта
Сообщений: 380
<phrase 1=


Спасибо большое тебе,Евгений А. Очень даже неплохо, постараюсь применить. Просто молодец! [sm2012]
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 02.01.2007, 17:34
#69
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,779
<phrase 1=


>Евгений А.
Я бы ОЧЕНЬ не советовал Вам (и другим тоже) хранить в реестре какие-то локальные переменные.
Архинеправильно, батенка!
Не для этого реестр предназначен!
Локальное значение прекрасно храниться самим Лиспом.
В одном варианте В.Кондрата, который он мне присылал,
так было и сделано.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 02.01.2007, 19:35
#70
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Alan
>Евгений А.
Я бы ОЧЕНЬ не советовал Вам (и другим тоже) хранить в реестре какие-то локальные переменные.
Архинеправильно, батенка! Не для этого реестр предназначен!..
.
По моему вы просто не знаете для чего предназначен реестр. А локальные переменные сохраняются только в текущем адресном пространстве выполняемогй функции, поэтому смысла в локальных или глобальных переменных нету вообще, если задача как мне видится в том чтобы при запуске программы (диалога) мы видели последнее состояние окна.
Евгений А. вне форума  
 
Непрочитано 02.01.2007, 19:58
#71
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,779
<phrase 1=


Цитата:
Сообщение от Евгений А.
По моему вы просто не знаете для чего предназначен реестр. ... .
То что хорошо для Microsoft (Ford и т.д.) не есть хорошо (ЯТД) для простого смертного юзера, в простой прикладной проге.
О использовании реестра для прикладных программ можно прочитать в книге "САПР на базе..." стр.98-105
В моём (я писал выше) варианте ПРОКАТ работает сохранение состояния в Лиспе и без реестра, что есть значительно проще и чище.
ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 02.01.2007, 21:07
#72
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Хозяин - барин, но помоему мы спорим о совершенно разных вещах! А вот то что у вас проше - ой как сомневюсь...
Евгений А. вне форума  
 
Непрочитано 03.01.2007, 16:27
#73
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,779
<phrase 1=


>Евгений А.
Цитата:
А вот то что у вас проше - ой как сомневюсь...
Достаточно и ПРОСТО одну переменную (номер строки профиля RR, например)
перевести из локальной в глобальную и она будет храниться во время сеанса.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 03.01.2007, 17:52
#74
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Дружище, любой программист тебе скажет, что использовать глобальные переменные - это ОЧЕНЬ-ОЧЕНЬ плохо, не профессионально и неоправданно!!! Нет никакой гарантии, что другая программа написанная каким-нибудь юзером :shock: не будет использовать и изменять значение глобальной переменную под именем (к примеру) RR!
А попробуй теперь представить, что в программе несколько окон и в каждом окне хотя бы с десяток пунктов которые надо сохранять!!! И что??? Под сотню глобальных переменных? Очень удобно! А в моём примере, достаточно только вбить в SPISOK_TILE только все сохраняемые ключи (key), и значения таким же макаром можно скидывать в локальный список и потом его использовать вместо переменных. Помоему проще уже некуда!
Евгений А. вне форума  
 
Непрочитано 03.01.2007, 18:38
#75
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,779
<phrase 1=


>Евгений А.
Цитата:
Дружище, любой программист тебе скажет, что использовать глобальные переменные - это ОЧЕНЬ-ОЧЕНЬ плохо, не профессионально и неоправданно!!! Нет никакой гарантии, что другая программа написанная каким-нибудь юзером не будет использовать и изменять значение глобальной переменную под именем (к примеру) RR! А попробуй теперь представить, что в программе несколько окон и в каждом окне хотя бы с десяток пунктов которые надо сохранять!!! И что??? Под сотню глобальных переменных?
Всё что ты сказал совершенно справедливо для ПРОГРАММ, а не для маленькой проги Прокат (Василий, извини), распространяемой в открытых кодах.
Дружище, любой программист тебе скажет, что бо'льшая свалка мусора чем Интернет, это только реестр Widows.
И использовать его надо очень аккуратно, без излишеств, т.е. без ненужных записей.
Вот, например, прописать туда путь к какой-то большой программе, к которому можно пристёгивать все остальные пути, это ИМХО самый раз!
Сохранение же локальных переменных, имеющих смысл только в этом чертеже и этом сеансе,
в реестре - это ОЧЕНЬ-ОЧЕНЬ плохо, не профессионально и неоправданно!!!
Для этого можно (и нужно в достаточно больших программах) использовать другие средства, например, INI-файлы, словари, расширенные данные и т.д..
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 03.01.2007, 19:18
#76
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
... что бо'льшая свалка мусора чем Интернет
извини, но это слова юзера, которому плохо всё то, чего он не понимает... программист так не скажет.
Цитата:
Сохранение же локальных переменных, имеющих смысл только в этом чертеже и этом сеансе,
, а где ЭТО в моём примере? Есть конкретная задача - сохранять состояние окна. В моём примере это и сделано, причём всё сохраняется независимо от сеанса, чертежа или Автокада. Мы опять спорим о разных вещах.
А на счёт "свалки" лучше сами рассудите: если записей много и все серьёзные программы (соответственно программисты) используют реестр, то наверно не потому, что там приятно мусорить, а потому, что ОЧЕНЬ легко и удобно!!!
Евгений А. вне форума  
 
Автор темы   Непрочитано 03.01.2007, 23:27
#77
Владимир М

ООО "Болт и Гайка"
 
Регистрация: 31.07.2005
Ухта
Сообщений: 380
<phrase 1=


Думаю по этому спорить особо не надо. Я думаю, реестр нужен не только для этих целей. Можно контролировать на наличие использование программы в целях авторских прав. Даже при наличии удалении программы необходимо оставить инфо о пользовании программы. Но наша программа бесплатная, так что не чего туда и лесть в этот реестр.
Если программа серьезная и написанная, например на C++, то это другой разговор.
Так что лезть туда пока не собираюсь.
А вот с Лиспом пока не получается, вроде логику понял, но что-то не выходит, может кто-то поможет ... или выложить код?
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 03.01.2007, 23:51
#78
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


->Владимир М
Вообще-то для авторской защиты программ реестр не подойдёт, очень легко всё прослеживается, ну да ладно, я ни на чём не настаиваю.
А что у вас конкретно-то не получается с Лиспом?
Евгений А. вне форума  
 
Автор темы   Непрочитано 04.01.2007, 00:04
#79
Владимир М

ООО "Болт и Гайка"
 
Регистрация: 31.07.2005
Ухта
Сообщений: 380
<phrase 1=


Знаю что все значения нужно сохранить и записать, а потом прочитать с Лиспа и что то пока видать что то упускаю - додумаюсь напишу...
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 04.01.2007, 12:37
#80
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,779
<phrase 1=


Цитата:
Сообщение от Владимир М
Знаю что все значения нужно сохранить и записать, а потом прочитать с Лиспа и что то пока видать что то упускаю - додумаюсь напишу...
>Владимир М
Не все значения нужно сохранять, а только номера: списка профилей и профиля. Всё это можно записать в строку ИНИ-файла в папке Procat (а лучше и чище в рабочей папке).
Здесь я могу помочь, если тебе не понятно как. Но для меня гораздо интереснее добавить радио-кнопки для стали. Я почти это сделал.
Поэтому, я тебя прошу. Проверь/протестируй те тексты, которые я прислал 1.01.2007.
Дай сигнал ПГ на опубликование объединительной (единой для рус/анг Акада) версии.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Обновление программы «Прокат» Василия Кондрата

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

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