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

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

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

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

Вот обновил базу данных проката для швеллеров и уголков *.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 Кб, 1060 просмотров)
Тип файла: rar Procat_N458 от 16.12.2009.rar (117.8 Кб, 1352 просмотров)
Тип файла: zip Prokat568.zip (114.5 Кб, 2003 просмотров)

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

Последний раз редактировалось Кулик Алексей aka kpblc, 05.03.2015 в 09:02.
Просмотров: 382917
 
Непрочитано 25.07.2007, 16:08
#201
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Поясняю:

В программе объектам создаваемого блока назначается цвет "по слою", а я предлагаю назначать "по блоку".

Или надо пояснять почему я предлагаю именно "по блоку"?
AY вне форума  
 
Автор темы   Непрочитано 25.07.2007, 18:21
#202
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Надо по слою, проектировщик выбирает слой потом прокат иначе он будет по умолчанию белый или черный в зависимости на каком ты фоне чертишь. А так как хочешь любой слой можешь свой по умолчанию подобрать... Попробуй,AY!
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 25.07.2007, 22:48
#203
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Цитата:
Полный архив
Старую не нужна ее в музей можа отправить….
Спасиба!!! [sm155]
Цитата:
Надо по слою, проектировщик выбирает слой потом прокат иначе он будет по умолчанию белый или черный в зависимости на каком ты фоне чертишь. А так как хочешь любой слой можешь свой по умолчанию подобрать... Попробуй,AY!
я не понял что вы этим хотите сказать. Нужно делать по блоку однозначно, я думаю не стоит приводить здесь выдержку из справки по управлению наследуемыми свойствами примитивов блоков.
хотя то что это отсутствует - разве кого-то напрягает программа ведь в открытом коде.
Sleekka вне форума  
 
Непрочитано 26.07.2007, 10:00
#204
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Цвет "По слою" - должна иметь вставка блока ("INSERT"), а примитивы из описания блока должны иметь цвет "по блоку".

Это более универсальный подход имеющий своим недостатком (для "неопытных" пользователей) только то, что когда блоки "вырывают" командой _explode результат будет на слое "0" и с цветом "ByBlock". Поэтому если такое положение не желательно следует для разчленения блоков использовать либо _Xplode либо _Burst из экспрессов. Впрочем, наверное, вам это и без меня известно.
AY вне форума  
 
Непрочитано 26.07.2007, 10:02
#205
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


там еще баг есть: если по блоку, а потом назначать в явном виде 0.30 толщины линий, то при выводе на печать из 2007 када выводится толщины - линий - полный рэндомайс, никакой логики. Во всех остальных кадах нормально.
Sleekka вне форума  
 
Автор темы   Непрочитано 26.07.2007, 10:30
#206
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Вот код открыт делайте для себя как вам угодно под ваши настройки. И будет вам счастье!
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 26.07.2007, 11:10
#207
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


>Владимир М
То о чем я говорю вовсе не "мои настройки", а универсальный подход к такого рода вещам диктуемый здравым смыслом и возможностями Autocad. Нутро блока с цветом "ByLayer" и есть настройка под себя не многим лучше того, что было раньше и от чего хотели уйти - как мне кажется.

Что касается "сами делайте" - я-то сделаю и делал уже раньше, попросту раз уж вы взяли на себя труд поддерживать программу, тем более развивать, то, по моему, следует заложить в нее наиболее универсальные принципы, что-бы при каждом обновлении не приходилось ее кому-то менять "под себя".
AY вне форума  
 
Автор темы   Непрочитано 26.07.2007, 13:18
#208
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


AY, так если по блоку цвет надо задавать в программе а цвет должен быть по слою. Иначе по блоку один на всех будет цвет, а другим пользователям не понравиться. У Каждого пользователя цвет свой. Тогда надо LISP программу по настройкам разрабатывать, а я думаю нет такой необходимости.
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 26.07.2007, 14:26
#209
Alan

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


Цитата:
AY Что касается "сами делайте" - я-то сделаю и делал уже раньше, попросту раз уж вы взяли на себя труд поддерживать программу, тем более развивать, то, по моему, следует заложить в нее наиболее универсальные принципы, что-бы при каждом обновлении не приходилось ее кому-то менять "под себя".
У кого есть еще предложения по программе "Прокат"?
Пишите, постараемся учесть и в ближайший уикенд подделать. :shock:
Это, если будет дождь. Ну а если не будет, поедем кататься на вело и т.д. и т.п.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 26.07.2007, 14:45
#210
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Цитата:
Сообщение от Alan
У кого есть еще предложения по программе "Прокат"?
Пишите, постараемся учесть и в ближайший уикенд подделать.
Это, если будет дождь.
Давайте шаматить будем, чтоб в Киеве был дождь!
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Непрочитано 26.07.2007, 14:46
#211
Кулик Алексей aka kpblc
Moderator

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


"Ну, Федот, теперь держись..." (с) Филатов. Сами напросились
1. Перевести хранение данных по прокатам в ini-образные файлы для спокойного ручного исправления и дополнения прокатов. Примерно так:
Код:
[Выделить все]
; Это шаблон, по которому надо создавать ini-файлы с описанием профилей.
;
[type]
name=<Имя профиля>
; как оно показывается в первом выпадающем списке. Обязательно для заполнения
func=<Имя функции для отрисовки>
; Функция должна существовать (см., например, _kpblc-draw-profile-2d).
; Обязательно для заполнения.
; С параметрами вызова функции зависит от реализации всего остального

; Дальнейшие строки имеют значение только для диалогового окна
view_main=1
; главный вид. 1 означает, что опция диалогового окна будет доступна для 
; выбора. Любое иное значение, в том числе и пропуск опции, означает, что
; эта строка будет недоступна для выбора.
view_main_little_line=[1]
;главный вид на малую полку
view_back=[1]
;вид сзади
view_back_little_line=[1]
; вид сзади на малую полку
view_top=[1]
;вид сверху
view_section=[1]
; сечение
img_file=
; Имя файла библиотеки слайдов.
img_view_main=
img_view_main_little_line=
img_view_back=
img_view_back_little_line=
img_view_top=
img_view_section=
; Имя слайда в библиотеке
[<Имя профиля>]
<Данные, необходимые для отрисовки>
В частности, как вариант:
Код:
[Выделить все]
[type]
name=Двутавры ГОСТ 2602-83 с параллельными гранями полок
func=temp1
view_main=1
view_main_little_line=1
view_back=1
view_back_little_line=1
view_section=1
img_file=procat
img_view_main=(9)
img_view_main_little_line=(12)
img_view_back=(10)
img_view_back_little_line=(13)
img_view_section=(11)
[10Б1]
G=8.1 кг
h=100 мм
b=55 мм
s=4.1 мм
t=5.7 мм
radius_major=7.0 мм
radius_minor=1 мм max
A=10.32 см2
Jx=171 см4
Wx=34.2 см3
ix=4.07 см
Sx=19.7 см3
Jy=15.9 см4
Wy=5.8 см3
iy=1.24 см
И читать данные оттуда для одновременного и рисования, и заполнения списка справочных данных.
2. Сделать отдельное окно настроек:
- рисовать профили отрезками или полилиниями
- рисовать или нет оси
- изменение точки привязки для блоков (например, для сечения двутавра вариант: левая нижняя / нижняя середина / правая нижняя ну и так далее)
- наименование и настройки слоя для осей
- наименование и настройки слоя для помещения профилей с возможностью использовать текущий.
- сохранять или нет последний выбор.
Данные хранить в отдельном ini-файле или реестре.
3. Отказаться от глобального переопределения обработчика ошибок (вроде где-то было).
4. Отказаться от глобальных переменных, кроме данных о наименовании и выборе последнего профиля.
---
Лично у меня баальшие проблемы с dcl, так что с обычными кодами еще могу помочь, но вот с окном... Оно меня убивает.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.07.2007, 15:31
#212
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Может об этом уже писали, но, на мой взгляд, есть некая недосказанность в описании установки.
Описание установки из Read-me.txt
Цитата:
Инсталяция (версия 2007г.):
Папка с файлами копируется в любую папку,
и путь к ней описывается в "Путях доступа к вспомогательным файлам" Автокада,
например, если файлы скопировали в папку prokat в папку Support Автокада.
Тогда это будет выглядеть так:
"d:\Program Files\AutoCAD 2005\Support\prokat\"
Фрагмент кода из prokat.lsp
Код:
[Выделить все]
  (load (findfile "prokat/_kpblc-linetype-load_.lsp"))

  (setq dvtp  (findfile "prokat/dvt_p.lsp")	
        dvt   (findfile "prokat/dvt_r.lsp")
	shr   (findfile "prokat/shv_r.lsp")
	shp   (findfile "prokat/shv_rp.lsp")
	shg   (findfile "prokat/shv_rg.lsp")
	ugr   (findfile "prokat/ug_rp.lsp")
	ugn   (findfile "prokat/ug_np.lsp")
	ugrg  (findfile "prokat/ug_rg.lsp")
	ugng  (findfile "prokat/ug_ng.lsp")
        trprf  (findfile "prokat/tr_prf.lsp")
    ...
Как видно, поиск осуществляется вместе с подпапкой.
Если все скопировано в папку Support Автокада, то все будет работать, т.к. она уже прописана в путях поиска. Если мы создаем свою папку, то в путях поиска нужно указывать путь на один уровень выше. Например
Прописанный путь
d:\MyLisp\
А файлы лежат по этому пути
d:\MyLisp\Prokat

Короче я думаю, что оптимальным будет вариант замены кода поиска
Код:
[Выделить все]
(vl-load-com)
  (mapcar '(lambda ( data / setV Files)
	     (setq setV (car data)
		   Files (cadr data))
	     (if (and
		   (or (setq x (findfile Files))  ;;;Поиск файлов в подпапках
		       (setq x (findfile (strcat  ;;;Поиск файлов без подпапки procat
					     (vl-filename-base Files)
					     (vl-filename-extension Files)
					     )
					   )
			    )
		       )
		   )
	       (progn
		 (if (= (strcase (vl-filename-extension x) t) ".lsp")(load x));;;Загрузка lsp файлов
		 (if setV (set setV x))
		 )
	       )
	     )
	  '((nil    "prokat/_kpblc-linetype-load_.lsp") ;;; загрузка подпрограммы kpblc'a
	    (dvtp   "prokat/dvt_p.lsp")
            (dvte   "prokat/dvt_r.lsp")
	    (shr    "prokat/shv_r.lsp")
	    (shp    "prokat/shv_rp.lsp")
	    (shg    "prokat/shv_rg.lsp")
	    (ugr    "prokat/ug_rp.lsp")
	    (ugn    "prokat/ug_np.lsp")
	    (ugrg   "prokat/ug_rg.lsp")
	    (ugng   "prokat/ug_ng.lsp")
	    (trprf  "prokat/tr_prf.lsp")
	    (dvcl   "prokat/d_vtr.dcl")
	    (lib    "prokat/procat.slb")
	    (dvdp   "prokat/dvtp.dat")
	    (dvdpas "prokat/dvtpas.dat")
	    (dvd    "prokat/dvtr.dat")
	    (dvd1   "prokat/dvtr2.dat")
	    (dvd2   "prokat/dvtp2.dat")
	    (svrd   "prokat/svlr.dat")
	    (svpd   "prokat/svlrp.dat")
	    (svgd   "prokat/svlrg.dat")
	    (svgKd  "prokat/svlrgK.dat")
	    (ugrd   "prokat/ugrp.dat")
	    (uggrd  "prokat/ugrg.dat")
	    (uggrKd "prokat/ugrgK.dat")
	    (uggnd  "prokat/ugng.dat")
	    (uggnKd "prokat/ugngK.dat")
	    (ugnd   "prokat/ugnp.dat")
	    (trkvd  "prokat/trkv.dat")
	    (trpud  "prokat/trpu.dat")
	  )
	  )
Во вложении измененный prokat.lsp
[ATTACH]1185449480.rar[/ATTACH]
VVA вне форума  
 
Непрочитано 26.07.2007, 15:34
#213
Евгений А.

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


Не знаю, кому как, но я предпочитаю табличное представление - коротко и наглядно:
Код:
[Выделить все]
("IPE"
            (("IPE" "H" "B" "S" "T" "R1" "G" "A" "Lx" "Ly" "Wx" "Wy")
             ("" "MM" "MM" "MM" "MM" "MM" "KG/M" "CM2" "CM4" "CM4" "CM3" "CM3")
             ("80" 80 46 3.8 5.2 5 6 7.64 80.1 8.49 20 3.69)
             ("100" 100 55 4.1 5.7 7 8.1 10.3 171 15.9 34.2 5.79)
             ("120" 120 64 4.4 6.3 7 10.4 13.2 318 27.7 53 8.65)
             ("140" 140 73 4.7 6.9 7 12.9 16.4 541 44.9 77.3 12.3)
             ("160" 160 82 5 7.4 9 15.8 20.1 869 68.3 109 16.7)
             ("180" 180 91 5.3 8 9 18.8 23.9 1320 101 146 22.2)
             ("200" 200 100 5.6 8.5 12 22.4 28.5 1940 142 194 28.5)
             ("220" 220 110 5.9 9.2 12 26.2 33.4 2770 205 252 37.3)
             ("240" 240 120 6.2 9.8 15 30.7 39.1 3890 284 324 47.3)
             ("270" 270 135 6.6 10.2 15 36.1 45.9 5790 420 429 62.2)
             ("300" 300 150 7.1 10.7 15 42.2 53.8 8360 604 557 80.5)
             ("330" 330 160 7.5 11.5 18 49.1 62.5 11770 788 713 98.5)
             ("360" 360 170 8 12.7 18 57.1 72.7 16270 1040 904 123)
             ("400" 400 180 8.6 13.5 21 66.3 84.5 23130 1320 1160 146)
             ("450" 450 190 9.4 14.6 21 77.6 98.8 33740 1680 1500 176)
             ("500" 500 200 10.2 16 21 90.7 116 48200 2140 1930 214)
             ("550" 550 210 11.1 17.2 24 106 134 67120 2670 2440 254)
             ("600" 600 220 12 19 24 122 156 92080 3390 3070 308)
             )
            )
Легко создать из электронных источников и сразу без проблем можно сформировать список...
Евгений А. вне форума  
 
Автор темы   Непрочитано 26.07.2007, 20:08
#214
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Спасибо вам за активное участие и помощь, будем ждать большого дождя! Хорошие и дельные советы.
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 28.07.2007, 20:09
#215
Alan

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


Цитата:
Если все скопировано в папку Support Автокада, то все будет работать, т.к. она уже прописана в путях поиска. Если мы создаем свою папку, то в путях поиска нужно указывать путь на один уровень выше. Например
Прописанный путь
d:\MyLisp\
А файлы лежат по этому пути
d:\MyLisp\Prokat
>VVA Спасибо, что откликнулись с хорошими предложениями.
Мне самому невнятна фраза в Read-me.txt, хоть я её и писал.
А м.б. сделаем проще всего? Бог мне свидетель, я это предлагал давно уже и Владимиру М и PG
Помещаем тексты в любую папку, например, d:\MyLisp\ .
Именно эту папку и прописываем в "Путях доступа к вспомогательным файлам" Автокада.
Собственно я у себя так и делаю, т.к. параллельно делаю несколько вариантов Проката. Меняю только эти пути...
Тогда вариант вызова упрощается до безобразия:
Код:
[Выделить все]
  (setq	dvtp   (findfile "dvt_p.lsp")
	dvt    (findfile "dvt_r.lsp")
......
	trprf  (findfile "tr_prf.lsp")
	dvcl   (findfile "d_vtr.dcl")
	lib    (findfile "procat.slb")
	dvdp   (findfile "dvtp.dat")
........
	trkvd  (findfile "trkv.dat")
	trpud  (findfile "trpu.dat")
)
Надавливания на баттоны экономиться огромное количество.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 29.07.2007, 03:51
#216
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


А по мне - так написал малюсенькую функцию один раз и меняй ее при необходимости. И с батонами еще экономней получится :)

Код:
[Выделить все]
(defun my-find (lst)
	(if lst (progn (set (car lst) (findefile (cadr lst))) (my-find (cddr lst)))))


(my-find '(
   dvtp  "dvt_p.lsp" 
   dvt   "dvt_r.lsp" 
...... 
   trprf "tr_prf.lsp"
   dvcl  "d_vtr.dcl"
   lib   "procat.slb"
   dvdp  "dvtp.dat"
........ 
   trkvd "trkv.dat" 
   trpud "trpu.dat"
           )
)
AY вне форума  
 
Непрочитано 29.07.2007, 13:13
#217
Alan

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


Цитата:
Сообщение от AY
А по мне - так написал малюсенькую функцию один раз и меняй ее при необходимости. И с батонами еще экономней получится

Код:
[Выделить все]
(defun my-find (lst)
	(if lst (progn (set (car lst) (findefile (cadr lst))) (my-find (cddr lst)))))


(my-find '(
   dvtp  "dvt_p.lsp" 
   dvt   "dvt_r.lsp" 
...... 
   trprf "tr_prf.lsp"
   dvcl  "d_vtr.dcl"
   lib   "procat.slb"
   dvdp  "dvtp.dat"
........ 
   trkvd "trkv.dat" 
   trpud "trpu.dat"
           )
)
Согласен AY с тобой, так красивее. Спасибо за участие.
Будет пример начинающим и продвинутым программистам, как организовывать за один вызов много решений.
Или вызов п/программы с переменным количеством параметров. (ЯТД)
Но! Давайте оставим в тексте Прокат как есть, так как большинство всё равно откомпилирует текст и тогда все LOAD просто не нужны.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 29.07.2007, 14:15
#218
Евгений А.

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


Цитата:
Сообщение от Alan
так как большинство всё равно откомпилирует текст и тогда все LOAD просто не нужны.

Есть тут хоть кто-нибудь, кто это будет делать???
Евгений А. вне форума  
 
Непрочитано 29.07.2007, 16:00
#219
Кулик Алексей aka kpblc
Moderator

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


Понадобится - найдутся.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.07.2007, 10:13
#220
Alan

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


Цитата:
Есть тут хоть кто-нибудь, кто это будет делать???
>Евгений А.
Я считаю квалификацию большинства посетителей данного форума достаточно высокой, чтобы сделать такую нехитрую операцию.
Вы же смогли её сделать.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Обновление программы «Прокат» Василия Кондрата

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

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