|
|
KitchenDraw (KD) KitchenDraw - программа для мебели (компьютерное моделирование) С помощью KitchenDraw можно быстро подготовить пакет документов для ваших клиентов, поставщиков мебели, рабочих мебельного цеха и для менеджера магазина мебели. |
|
|
|
06.02.2008, 09:46
|
|
KitchenDraw SDK - что за зверь?
Yura_Bogoduhov
Модератор
Регистрация: 04.11.2007
Сообщений: 2,224
Сказал(а) спасибо: 751
Поблагодарили 1,545 раз(а) в 546 сообщениях
06.02.2008, 09:46
Рейтинг:
()
KitchenDraw SDK ( Software Development Kit — набор инструментальных средств разработки программ) - это компьютерные файлы (библиотека функций, типовые программы), а также документация. Он позволяет расширять и настраивать саму программу KitchenDraw, и соединять ее с программами бухгалтерского учета (1С-Бухгалтерия и т.д.), программами систем планирования ресурсов предприятия (ERP) и производственными программами (Базис и т.д.) сторонних производителей.
Он может быть использован для разработки следующих частей программного обеспечения:
- программ для создания или обновления всего или части каталога KitchenDraw;
- программ для создания бумажных или он-лайн каталогов из каталогов KitchenDraw;
- модулей генерации файлов заказов (файлы заказов будут отправлены поставщикам или производителям);
- программ создания сложных параметрических объектов (специальные мастера для столешниц, лестниц и т.д.);
- модулей динамического взаимодействия KitchenDraw с программами бухгалтерского учета;
- плагинов, которые запускаются автоматически при наступлении определенных событий (открытие сцены, закрытие KitchenDraw и т.д.);
- расширений KitchenDraw (новые команды, добавленные в меню KitchenDraw);
- модификации или замены стандартных диалоговых окон KitchenDraw.
Это уникальный инструмент, с помощью которого программа может творить чудеса. Правда для этого нужно быть неплохим программистом или иметь помощника или компаньона, который может решать такие задачи.
ДОКУМЕНТАЦИЯ SDK-язык английский
ПРИМЕРЫ SDK
Последний раз редактировалось ViPeS; 24.03.2012 в 23:26..
|
Просмотров: 97459
|
18.01.2010, 16:18
|
#31
|
Модератор
Регистрация: 04.11.2007
Сообщений: 2,224
Сказал(а) спасибо: 751
Поблагодарили 1,545 раз(а) в 546 сообщениях
Вес репутации: 1047
|
Цитата:
Сообщение от ViPeS
Во-первых, кто не знаком с программированием и понятием SDK, тому трудно понять о чем идет речь.
|
Вот в этом, наверное, и проблемма(( Для чтения доки по SDK надо знать мало мальски английский, и кроме того, быть хоть немного программистом(знание VB). Но тема интересная, может Вы начнете ликбез?
|
|
|
21.01.2010, 00:08
|
#32
|
Модератор
Регистрация: 15.12.2009
Сообщений: 1,275
Сказал(а) спасибо: 339
Поблагодарили 1,778 раз(а) в 625 сообщениях
Вес репутации: 720
|
Ладно, начнем ликбез.
Yura_Bogoduhov, если Вам все-таки не трудно, поменяйте шапку темы, как я предлагал — это мой перевод цитаты из английского документа по KitchenDraw SDK кроме двух последних предложений. И советую всем ее внимательно прочитать!
И удалите, пожалуйста, этот пост:
Цитата:
Сообщение от Yura_Bogoduhov
Описание скрипта связи KDVB1C и 1С Предприятие 7.7:
|
так как он ничего общего с нашей темой не имеет. Это попытка связать KD и 1C:"... для передачи данных использован язык скриптов VBScript, входящий в комплект Windows" — как написал сам разработчик этой программы, без использования KitchenDraw SDK.
Цитата:
Сообщение от Yura_Bogoduhov
Разработкой SDK люди вроде бы занимаются на этом сайте(естественно за оплату)
http://e-st.ru/
|
Эти люди, которых здесь представляет KD_RUS, не занимаются разработкой SDK. Они используют SDK в своих разработках и зарабатывают деньги, как и мы зарабатываем деньги, используя KD.
KitchenDraw SDK разработан создателями самой KD — PRAGMA Informatique, и поставляется вместе с ней — это библиотека Kdsdk.dll.
А теперь я хочу прокомментировать сообщение:
Цитата:
Сообщение от KD_RUS
Нет. Речь идёт о полноценном скрипте.
Пример: Из артикула с Лв(Пр) формирует Лв и Пр соответственно.
Set Articles = Tables(CATTABLE_ARTICLES)
For i = Articles.RowCount To 1 Step -1
If InStr(Articles.Cells(i, 1), "Лв(Пр)") Then
ThisCluster = SDK.Catalog.TableGetClusterRankFromLineRank(SessionId, CATTABLE_ARTICLES, i)
ClusterLineRank = i - SDK.Catalog.TableGetFirstLineRankFromClusterRank(SessionId, CATTABLE_ARTICLES, ThisCluster) + 1
Articles.Cells(i,1) = Replace(Articles.Cells(i,1), "Лв(Пр)", "Пр")
Articles.Cells(i,2) = "R"
SDK.Catalog.TableInsertLines SessionId, CATTABLE_ARTICLES, ThisCluster, ClusterLineRank, 1 'кстати, здесь пропущены (), в которые заключают аргументы функций
Articles.Cells(i,1) = Replace(Articles.Cells(i+1,1), "Пр", "Лв")
Articles.Cells(i,2) = "L"
Articles.Cells(i,3) = Articles.Cells(i+1,3)
Articles.Cells(i,4) = Articles.Cells(i+1,4)
Articles.Cells(i,5) = Articles.Cells(i+1,5)
Articles.Cells(i,6) = Articles.Cells(i+1,6)
End If
Next
Set Articles = Nothing
|
Я еще раз повторюсь, но считаю некорректным использование в приведенной цитате слова "скрипт", потому что понятие скрипта в KD и приведенное выше — совершенно разные вещи, и вводят в заблуждение пользователей KD. Я предлагаю использовать понятие "модуль" или "программа".
В приведенной части программы, написанной на языке Visual Basic, мной красным цветом выделен вызов функций KitchenDraw SDK (синим цветом указана ошибка, допущенная при написании программы).
В результате выполнения программы, по нажатию одной кнопки, во всем каталоге предметы без направления превращаются в предметы с двумя направлениями (см. миниатюры). Какая экономия времени!
|
|
|
22.01.2010, 23:02
|
#33
|
Модератор
Регистрация: 15.12.2009
Сообщений: 1,275
Сказал(а) спасибо: 339
Поблагодарили 1,778 раз(а) в 625 сообщениях
Вес репутации: 720
|
Продолжение...
Программа, написанная в VB с вызовом функций KD SDK, компилируется и получается библиотека — файл с расширением .dll, который связывается с (или вызывается из) KD тремя способами (это которые я знаю — может есть и другие) в зависимости от класса (вида).
Класс "Мастер" ("Wizard") — вызов осуществляется через скрипт блока, добавляя в его конец строчку @DLL("DLL file name"). Пример приведен в каталоге "Мини-база кухни" ("KITCHEN TUTORIAL") — это самый первый блок (тумба BT 40G). Вот его скрипт:
B(CLASSE="BU") [1PB 1E](H=H-C59)+1T(H=C59) @CF("1D1d")
&REFPOS(X=L) &_BGD(SSENS) &_1E(INTER) &_1PB(SSENS,H=H-C59) &_1T(SSENS,H=C59) @DLL("sdk_wizard.dll")
При установке этой тумбы на сцену или при вызове меню Объект --> Мастер выполняется код программы, которую вы написали. Можно даже вывести текст самого скрипта блока и здесь его изменить не меняя скрипта в самом каталоге (о чем мечтают многие участники форума), а можно и с заменой в каталоге — как напишите в программе.
Класс "Заказ" ("Order") — исполнение вашей программы осуществляется при генерации заказа при вызове меню Файл --> Заявки поставщикам --> Создать --> Генерация. Но перед этим нужно выбрать ваш созданный файл (см. Руководство пользователя KD — "9.Передача заказов через Интернет (e-mail)"), где вы описали свою форму бланка заказа (например, sdk_order.dll).
|
|
|
23.01.2010, 16:38
|
#34
|
Модератор
Регистрация: 15.12.2009
Сообщений: 1,275
Сказал(а) спасибо: 339
Поблагодарили 1,778 раз(а) в 625 сообщениях
Вес репутации: 720
|
Продолжение...
И третий вид — это "Плагины" (Plugins), которые обсуждались в теме KitchenDraw - plugins.
Цитата:
Сообщение от Влад Степанов;
В общем случае, чтобы использовать Plugin выполните действия:
1) Найти файл Space.ini в рабочей директории KitchenDraw.
2) Если в этом файле нет секции [Plugins] , тогда добавьте ее.
3) В секцию [Plugins] добавьте строку типа: "<НаименованиеФайлаПлагина>=" без кавычек.
...
Например:
[Plugins]
MyPlugin.dll=
|
При запуске KD этот плагин загрузится и создаст новое меню или новую строчку в меню (подменю). При вызове этого подменю будет выполняться программа, которую вы написали.
Для всех трех случаев необходимо, чтобы ваши библиотеки находились в основной директории KD и были зарегистрированы в ОС.
С теорией покончено.
|
|
|
26.01.2010, 14:49
|
#35
|
Модератор
Регистрация: 15.12.2009
Сообщений: 1,275
Сказал(а) спасибо: 339
Поблагодарили 1,778 раз(а) в 625 сообщениях
Вес репутации: 720
|
А теперь приступаем к практике. К сожалению, примеры, приведенные в шапке темы, нерабочие. Но я исправил ошибки в одном из них (одну еще не исправил — не выводится рисунок блока и не работает функция "Открыть", но это дело поправимое).
Цитата:
Сообщение от kuzma
Это случайно не то, что прямо в сцене можно открыть скрипт любого блока и с ним поизвращаться, как тебе вздумается?
|
Для всех "извращенцев"!
Распакуйте файл в папку KD. Зайдите в каталог "Мини-база кухни", бросьте на сцену первый шкафчик и "извращайтесь" себе на здоровье (при первом броске или при вызове "Мастер") — все изменения будут происходить только на сцене, не затрагивая каталога.
|
|
|
26.01.2010, 14:59
|
#36
|
Модератор
Регистрация: 04.11.2007
Сообщений: 2,224
Сказал(а) спасибо: 751
Поблагодарили 1,545 раз(а) в 546 сообщениях
Вес репутации: 1047
|
Цитата:
Сообщение от ViPeS
Зайдите в каталог "Мини-база кухни", бросьте на сцену первый шкафчик и "извращайтесь" себе на здоровье (при первом броске или при вызове "Мастер") — все изменения будут происходить только на сцене, не затрагивая каталога.
|
После установки первого шкафчкика на сцену, открывается "новый" мастер с поддержкой изменения скриптов. Если не ставить новые модули на сцену, и снова открыв Мастер, новые модули на сцену не ставятся. Снимается глюк только после удаления первого. Если не заходить сразу в Мастер, и набросать несколько других модулей, то вроде работает нормально...Хотя щас после нескольких "циклов" работает...
|
|
|
26.01.2010, 16:12
|
#37
|
Модератор
Регистрация: 15.12.2009
Сообщений: 1,275
Сказал(а) спасибо: 339
Поблагодарили 1,778 раз(а) в 625 сообщениях
Вес репутации: 720
|
Между прочим, получилось наглядное пособие по написанию скриптов блоков!
Только надо сделать защиту от неправильного применения имен блоков.
---------- Добавлено в 15:12 ---------- Предыдущее сообщение было написано в 15:04 ----------
Цитата:
Сообщение от Yura_Bogoduhov
Если не ставить новые модули на сцену, и снова открыв Мастер, новые модули на сцену не ставятся. Снимается глюк только после удаления первого.
|
Ничего не понял, у меня никаких глюков нет!
А менять в скрипте пробовали? Например, 2 полки или два ящика?
Если кто изменил неправильно скрипт, то не будет выводиться картинка (ничего страшного) — сам блок можно удалить со сцены через меню Сцена-> Спецификация...
|
|
|
26.01.2010, 16:56
|
#38
|
Модератор
Регистрация: 04.11.2007
Сообщений: 2,224
Сказал(а) спасибо: 751
Поблагодарили 1,545 раз(а) в 546 сообщениях
Вес репутации: 1047
|
Цитата:
Сообщение от ViPeS
Ничего не понял, у меня никаких глюков нет!
А менять в скрипте пробовали? Например, 2 полки или два ящика?
|
Сейчас их нет...Полки менял. Нормально)) Вот тока нельзя ли при установке модуля не показывать окно мастера?
|
|
|
26.01.2010, 17:15
|
#39
|
Модератор
Регистрация: 15.12.2009
Сообщений: 1,275
Сказал(а) спасибо: 339
Поблагодарили 1,778 раз(а) в 625 сообщениях
Вес репутации: 720
|
В данной реализации — нет, но в другой — можно. Например, создать в меню "Объект" кроме "Мастер..." еще и "Мастер скрипта..." и вызывать нужный мастер по надобности.
|
|
|
26.01.2010, 17:23
|
#40
|
Модератор
Регистрация: 04.11.2007
Сообщений: 2,224
Сказал(а) спасибо: 751
Поблагодарили 1,545 раз(а) в 546 сообщениях
Вес репутации: 1047
|
Цитата:
Сообщение от ViPeS
В данной реализации — нет, но в другой — можно. Например, создать в меню "Объект" кроме "Мастер..." еще и "Мастер скрипта..." и вызывать нужный мастер по надобности.
|
Да! Вот это правильно! Мастер оставляем в покое, а надо добавить строчку Мастер скрипта. И в нем уже изголятся)))
РС хотелось бы самому попробовать что-то написать...вот тока не знаю с чего начать(( VB немного знаю, можно было бы посидеть, но нет так сказать старта...Коль у вас так все складно получается, можно ли описать процесс написания длл с самого нуля? Хотя бы на примере вышевыложеного Мастера скриптов?
|
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 06:18. Часовой пояс GMT +3.
|