|
|
K3-Мебель Комплекс программ, опирающихся на систему К3, который получил название К3-Мебель. Комплекс К3-Мебель построен на основе разработок, выполненных НВЦ «ГеоС» на базе системы К3 для самых разных мебельных предприятий |
|
|
|
06.08.2008, 21:11
|
|
Как устроена программа К3 Мебель
K3Aleksey
Местный
Регистрация: 05.08.2008
Сообщений: 308
Сказал(а) спасибо: 1
Поблагодарили 73 раз(а) в 15 сообщениях
06.08.2008, 21:11
Рейтинг:
()
-=!!! ВНИМАНИЕ !!!=-
В данной ветке запрещены ссылки на кряки, эмуляторы, ломанные DLL и EXE файлы. Пользователи, нарушающие данные правила, будут наказываться (после первого предупреждения).
Основные понятия системы:
1. Модель К3 - представляет собой набор геометрических тел и примитивов, которым можно присвоить атрибуты. Геометрические тела и примитивы могут быть объединены в группы (блоки) и разнесены по слоям. Маска файла *.k3;
2. Атрибуты - представляют собой параметры со значениями или наборы параметров. В атрибуты записываются ссылки на базу данных, значения переменных, строковые, числовые или логические значения.
3. Макропрограмма - представляет собой описанную последовательность действий (читай алгоритм), описанную на скриптовом языке системы. Здесь аналогия с любыми макросами любой системы (например, язык LISP или макросы MS Office) Маска файла *.mac; Это обычные текстовые файлы, их можно открыть блокнотом.
4. Прототип - представляет собой совокупность макрофайлов, выполняющих построение геометрических тел и моделей, а так же процесс присвоения атрибутов. Тела могут объединяться в группы (сборочные единицы).
5. Скрипты - представляют собой внешние модули, при помощи которых К3 осуществляет вызов и управление любыми приложенями, поддерживающими API и являющимися COM или OLE объектами.
6. Отчеты Fast Report - представляют собой внешние отчеты, созданные для программы FastReport. DLL для работы с этими отчетами входит в состав новой версии 6.1, а это значит, что для генерации отчетов теперь можно обойтись без Excel’а.
Как со всем этим работать (общая информация):
Подробная информация содержится в одноименных руководствах. Здесь содержится общая информация о том, как это все “пощупать” и посмотреть.
1. Модели могут быть подготовлены заранее (направляющие ящиков, ручки, петли и т.д.), в этом случае в справочниках дается ссылка на модель, а сама модель должна быть заранее создана и сохранена. Например, при описании ручки в поле S3 прайс-листа заносится название файла К3, в котором храниться данная модель. Так же модели могут быть отстроены с помощью прототипов или макросов. Условно макрос – алгоритм, результат его работы – конкретная модель (или группа моделей), которая может быть сохранена в отдельный файл к3. Подробная информация по созданию геометрических моделей в К3, находится в руководстве http://www.k3info.ru/doc/K3Doc_5_6.exe
2. Атрибуты – это параметры (группы параметров), описанных в системе. По атрибутам происходит идентификация моделей, выгрузка данных и т.д. Можно создавать свои атрибуты и присваивать их моделям. Попробуйте выбрать в меню “объекты-атрибуты-значения-информация” и укажите произвольный прототип. Система покажет все атрибуты, присвоенные объекту.
3. Почти все (за исключением внутренних команд) в К3 Мебель работает с помощью макросов. Если у вас включена панель команд (“Вид-панель инструментов-панель команд”) то при нажатии кнопок почти всегда вы увидите команду macro - путь – название файла (*.mac), который будет работать при текущей команде. Открыв макрос, можно посмотреть, как он работает. Все макросы лежат в папке PROTO текущей базы.
5. Нажмите “Инструменты-редактор сценариев” и вы запустите K3 Talk, в нем должен быть включен “Вид-Состав”, откройте файл PKMScrLib.mdb из папки PROTO текущей базы и во вкладке “состав” вы увидите отчеты, которые можно вызывать. Вызовите в К3 отчет (например, деталировка) откройте макрос, который, запускается от данной кнопки, и посмотрите, какой отчет вызывается этой кнопкой. После этого вы можете открыть этот отчет в K3 Talk и посмотреть, как он работает.
6. По поводу программы Fast Report очень много информации в Интернете. Создание отчетов с помощью дизайнера Fast Report объективно проще скриптового инструмента, но это инструмент не позволяет управлять другими приложениями.
Резюме – система полностью открыта и все в ней поддается переделке. Если будет интерес, в будущем создам тему с описанием базы данных К3, где распишу, как происходит информационный обмен между К3 и внешними приложениями (на примере Access’a, входящего в состав ПКМ).
Ниже ссылка на программу MacroAnalizer, с которой удобно редактировать и просматривать макрофайлы K3.
http://ifolder.ru/7615084
Все… Желаю успехов в изучении программы.
|
Просмотров: 81372
|
16.04.2010, 08:18
|
#31
|
Пользователь
Регистрация: 18.12.2009
Сообщений: 36
Сказал(а) спасибо: 19
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
|
Доброе утро!
Долго я в режиме read-only находился, теперь выхожу из сумрака. У меня такой вопрос - а отладчики какие-то есть под К3? MacroAnalizer - это неплохо, хотя пока и не могу им пользоваться, а что-нибудь посерьёзнее? Нет ни у кого наработок?
ЗЫ: я не захребетник, как опыта поднакоплю, так тоже буду делиться. )))
ЗЗЫ: Ермакову тоже позвоню с этим вопросом, как на работе появится. Просто мало ли, тут люди грамотные сидят, кмк...
|
|
|
16.04.2010, 12:00
|
#32
|
Пользователь
Регистрация: 06.02.2010
Сообщений: 45
Сказал(а) спасибо: 2
Поблагодарили 6 раз(а) в 6 сообщениях
Вес репутации: 0
|
Отладчик для макросов
Вообще не понял в чём вопрос: в К3 работает не транслятор, а интерпритатор, макрос выполняется построчно, какой такой отладчик?
Теперь подробно.
Во-первых, почему нельзя пользоваться Notepad++? Скачал, установил, работай...
Во-вторых, если надо узнать, как работает какая-либо команда, просто вводишь её в командной строке (об этом в "Руководстве по ..." написано - учите матчасть).
В-третьих, если надо узнать значение переменной, или просто посмотреть промежуточный результат - вставляешь ":" (двоеточие) в любом месте макроса - он остановится и будет ждать ввода ('enter').
При этом доступны любые команды, кроме вызова другого макроса.
Если нужно узнать значение переменной просто введите в командной строке на запрос >>Команда= <Имя переменной>. Кстати, глобальные переменные доступны тем же способом в любое время.
Есть особенность для макросов прототипов: они не покажут промежуточные построения (только всё или ничего) и игнорируют двоеточие если не установлен режим вывода "пользовательский ввод" ('F9'(или 'установки' - 'параметры') - 'выводить сообщения'.
|
|
|
16.04.2010, 13:03
|
#33
|
Пользователь
Регистрация: 18.12.2009
Сообщений: 36
Сказал(а) спасибо: 19
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
|
Не вижу никакого антагонизма между интерпретаторами и отладчиками...
Про двоеточие выяснил, про режим "пользовательский ввод" - спасибо, буду знать.
Просто работаю с К3 всего ничего, месяца 3, и то программированием только сейчас занялся.
|
|
|
19.04.2010, 17:07
|
#34
|
Местный
Регистрация: 05.08.2008
Сообщений: 308
Сказал(а) спасибо: 1
Поблагодарили 73 раз(а) в 15 сообщениях
Вес репутации: 238
|
Цитата:
Сообщение от Rinat74
Не вижу никакого антагонизма между интерпретаторами и отладчиками...
Про двоеточие выяснил, про режим "пользовательский ввод" - спасибо, буду знать.
Просто работаю с К3 всего ничего, месяца 3, и то программированием только сейчас занялся.
|
Так же рекомендую пользоваться командой
PutMsg(X,0);
где "X" - текстовая переменная (для чисел используем Str(X)), а "0" - уровень вывода сообщений. Увидите на экране любые промежуточные расчеты, значения переменных...
|
|
|
20.04.2010, 12:16
|
#35
|
Пользователь
Регистрация: 18.12.2009
Сообщений: 36
Сказал(а) спасибо: 19
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
|
Цитата:
Сообщение от K3Aleksey
Так же рекомендую пользоваться командой
PutMsg(X,0);
где "X" - текстовая переменная (для чисел используем Str(X)), а "0" - уровень вывода сообщений. Увидите на экране любые промежуточные расчеты, значения переменных...
|
Ага, уже пользуюсь, благодарю.
Язык-то, конечно, хотелось бы побогаче.((( А то лишний пробел не воткни, нужный не пропусти, парсер чего-то не сильно могучий. Тип элемента массива не определишь зараз, только если присвоить другой переменной и её тип определить. А как без своих функций обойтись пока не пойму, умножать сущности в виде доп. макросов не очень охота, а от подпрограмм я как-то подотвык.(((
И своих типов не хватает, и циклов, да много чего ещё. Кошмар какой-то, как на бейсике пишу, с древесно-волокнистого комплекса-2М... Только хуже... Только предметно-ориентированный...
|
|
|
20.04.2010, 12:54
|
#36
|
Пользователь
Регистрация: 18.12.2009
Сообщений: 36
Сказал(а) спасибо: 19
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
|
Успешно доработал под свои нужды прототип створки раздвижной двери. Для всех 6 вставок, под К3-56, добавил тип покрытия (пока пескоструй и фотопечать, выбор из списка) и площадь этого покрытия.
Доработал соответственно DREditflap.mac, добавил всякого рода проверки, чтоб в салонах пескоструй на ДСП не прилепили. По-колхозному пока, ну да я ещё не волшебник совсем.
Осталось только Деталировку и Сводную спецификацию поправить, чтобы вылазили в отчётах те самые плёнки с площадями и ценами, ради которых я эту эпопею и затеял. Вот понадобилось, блин, бухгалтерии...(( Раньше просто в цену кв.м. Фотопечати на (под) стекло и Пескоструя включили стоимость услуг по наклейке и стоимость кв.м. плёнки и завели как стёкла.
Так что, если кому понадобится сие творение, то готов поделиться. Если кому-то вообще может это понадобиться...
|
|
|
20.04.2010, 13:17
|
#37
|
Местный
Регистрация: 05.08.2008
Сообщений: 308
Сказал(а) спасибо: 1
Поблагодарили 73 раз(а) в 15 сообщениях
Вес репутации: 238
|
Цитата:
Сообщение от Rinat74
Ага, уже пользуюсь, благодарю.
Язык-то, конечно, хотелось бы побогаче.((( А то лишний пробел не воткни, нужный не пропусти, парсер чего-то не сильно могучий. Тип элемента массива не определишь зараз, только если присвоить другой переменной и её тип определить. А как без своих функций обойтись пока не пойму, умножать сущности в виде доп. макросов не очень охота, а от подпрограмм я как-то подотвык.(((
И своих типов не хватает, и циклов, да много чего ещё. Кошмар какой-то, как на бейсике пишу, с древесно-волокнистого комплекса-2М... Только хуже... Только предметно-ориентированный...
|
Язык небогатый, согласен, но разработан он не для программистов, а для специалистов. В теле макро вы можете использовать подпрограммы, для этого после Exit напишите имя подпрограммы (например pr1: и в конце исользуйте оператор возврата return) в самой подпрограмме пишите все, что вам вздумается. Все это позволит обращаться к подпрограмме из тела макро оператором перехода gosub pr1;
|
|
|
20.04.2010, 13:19
|
#38
|
Местный
Регистрация: 05.08.2008
Сообщений: 308
Сказал(а) спасибо: 1
Поблагодарили 73 раз(а) в 15 сообщениях
Вес репутации: 238
|
Цитата:
Сообщение от Rinat74
Успешно доработал под свои нужды прототип створки раздвижной двери. Для всех 6 вставок, под К3-56, добавил тип покрытия (пока пескоструй и фотопечать, выбор из списка) и площадь этого покрытия.
Доработал соответственно DREditflap.mac, добавил всякого рода проверки, чтоб в салонах пескоструй на ДСП не прилепили. По-колхозному пока, ну да я ещё не волшебник совсем.
Осталось только Деталировку и Сводную спецификацию поправить, чтобы вылазили в отчётах те самые плёнки с площадями и ценами, ради которых я эту эпопею и затеял. Вот понадобилось, блин, бухгалтерии...(( Раньше просто в цену кв.м. Фотопечати на (под) стекло и Пескоструя включили стоимость услуг по наклейке и стоимость кв.м. плёнки и завели как стёкла.
Так что, если кому понадобится сие творение, то готов поделиться. Если кому-то вообще может это понадобиться...
|
Я рекомендую вам присмотреться к новому мастеру створок на новой панели 6.4. В нем решены все проблемы по созданию раскладок и отделок панелей.
|
|
|
20.04.2010, 13:20
|
#39
|
Пользователь
Регистрация: 06.02.2010
Сообщений: 45
Сказал(а) спасибо: 2
Поблагодарили 6 раз(а) в 6 сообщениях
Вес репутации: 0
|
Цитата:
Сообщение от Rinat74
Тип элемента массива не определишь зараз, только если присвоить другой переменной и её тип определить. А как без своих функций обойтись пока не пойму, умножать сущности в виде доп. макросов не очень охота, а от подпрограмм я как-то подотвык.
|
Дело в том, что элементы массива могут иметь значения различных типов, и это очень удобно при передаче параметров, вы потом ещё оцените эту фишку. А команда isVarDef возвращает тип массива.
С подпрограммами согласен, вещь отстойнейшая. Команду "цикл" разработчики обещали сделать, правда, когда - неизвестно .
Почему пробелы нельзя добавлять? Как раз можно, сколько угодно. Нельзя строковую константу переносить на другую строку и команды надо завершать корректно ";" или "done", при несоблюдении последнего правила возможны труднообнаружимые ошибки.
А вообще-то зря вы макроязык ругаете, вы бы в 4-й версии поработали...
|
|
|
20.04.2010, 13:46
|
#40
|
Пользователь
Регистрация: 18.12.2009
Сообщений: 36
Сказал(а) спасибо: 19
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
|
Цитата:
Сообщение от K3Aleksey
Язык небогатый, согласен, но разработан он не для программистов, а для специалистов. В теле макро вы можете использовать подпрограммы, для этого после Exit напишите имя подпрограммы (например pr1: и в конце исользуйте оператор возврата return) в самой подпрограмме пишите все, что вам вздумается. Все это позволит обращаться к подпрограмме из тела макро оператором перехода gosub pr1;
|
Угум, попозже буду разбираться, как там параметры передавать. Или я путаю чего? Я НЕ ПОМНЮ, как с этими подпрограммами работать. Разлакомился я, а тут вперёд в прошлое тянут.((( Ладно, разберусь...
---------- Добавлено в 15:33 ---------- Предыдущее сообщение было написано в 15:26 ----------
Цитата:
Сообщение от K3Aleksey
Я рекомендую вам присмотреться к новому мастеру створок на новой панели 6.4. В нем решены все проблемы по созданию раскладок и отделок панелей.
|
Дык, придётся, никуда не денешься, переходить на 6.4 Или уже на 6.5, как получится, Ермаков обещает, что скоро уже.
Только вот проблема организационная предстоит, более десятка лицензий в салонах в городе, на производстве 4, а ещё и междугородние дилеры есть. Ключи по времени очень разные, т.е. какие-то возможно бесплатно удастся перевести на 6.4, за какие-то платить придётся, видимо. А уж с дилерами отдельная песня.
А переходить придётся, есть там несколько фишек, очень нужны.
---------- Добавлено в 15:46 ---------- Предыдущее сообщение было написано в 15:44 ----------
Цитата:
Сообщение от Рыжий Пёс
Почему пробелы нельзя добавлять? Как раз можно, сколько угодно.
|
Вчера колотился в истериках, не понимая в чём, блин, вообще дело. Связался с Нижним, получил ответ:
"2. В строке
PutMsg(PriceInfo(zz[6], "MATTYPENAM", 0));////
действительно ошибка, в ней присутствуют лишние пробелы.
PutMsg(PriceInfo(zz[6],"MATTYPENAM",0));////
А так будет работать."
Цитата:
вы бы в 4-й версии поработали...
|
И не уговаривайте...))))
|
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 08:03. Часовой пояс GMT +3.
|