Форум профессиональных мебельщиков PROMEBELclub
 
PROMEBELclub - Форум для мебельщиков: конструкторов, дизайнеров, мастеров, технологов и всех, кто имеет отношение к производству и изготовлению мебели. Программы для конструирования и дизайна мебели. Мебельная литература и обучающие пособия.
 
 

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 13:22  
БАЗИС 9 - Скрипты
 
Аватар для Igor_482
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174

Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 13:22
Рейтинг: ()

ВНИМАНИЕ! Правила выкладывания скриптов.

1. Если в скрипте нет ссылок на фурнитуру, фрагменты и.т.д то достаточно его упаковать в архив и выложить.

2. Если в скрипте есть ссылки на фурнитуру, фрагменты и т.д. то архив должен содержать папку с самим скриптом и всеми файлами на которые есть ссылки в тексте скрипта.


Т.к. при запуске скрипта на другом компе возникает ошибка о не возможности открыть то или иной файл и скрипт до конца не отрабатывает свой текст. Не соблюдается "чистота проверки" работы скрипта.

__________________________________________________ _______________

Интересует информация по редактору скриптов в БМ8. Существует ли справочная документация и примеры использования скриптов в БМ8. Какие возможности дает данная функция? Владеющим информацией по данному вопросу просьба поделиться ею.

Для работы скриптов от Igor_482 необходим установленный ODBC драйвер FireBird, установленные и зарегистрированные в ОС модули FBDBDialog.dll, MSDATGRD.OCX, MSCOMCTL.OCX и MSSTDFMT.DLL (сообщение с описанием установки этих модулей в ОС, ссылка на модули и исходник "FBDBDialog.dll") а так же файл "ADODB.ini" с настройками соединения к БД в папке со скриптом.

ADODB.ini


[General]
FDBServ = t001
FBSPort = 14357
FDBFile = D:\DBBM\Библиотека\БД\BMDB09.FDB
FBCFile = C:\Windows\System32\fbclient.dll
----------------------------------------------
Переменные .ini:
FDBServ - имя ПК на котором находится сервер FireBird с используемой БД (если локально, то параметр: localhost или 127.0.0.1);
FBSPort - в настройке не нуждается (по умолчанию: 14357);
FDBFile - локальный путь к БД на сервере FireBird;
FBCFile - путь к файлу "fbclient.dll" (находится в корневой папке программы Базис).
[свернуть]

Последний раз редактировалось systland; 23.09.2016 в 11:52..
Просмотров: 993304
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
evilbaby1989 (10.07.2023)
Старый 30.09.2014, 09:40   #501
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Сообщите, пожалуйста, как прочитать Базис скриптом(ну или Java) список файлов.

Найденный вариант:

import java.io.File;

File myFolder = new File("c:\myfolder");
File[] files = myFolder.listFiles();

-- Не работает.

Хочу сохранять настройки скрипта в разных файлах с разными произвольными именами: например для одного типа крепежа одни настройки, для другого -- другие.
Ну и при запуске скрипта читать список файлов и помещать этот список в Combo.
v22884 вне форума   Ответить с цитированием Вверх
Старый 30.09.2014, 10:13   #502
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
Briz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личность
По умолчанию

Цитата:
Как тогда по OpenFurniture извлекать параметрическую фурнитуру (где она физически храниться)?
Эта функция не работает с параметрической фурнитурой


Цитата:
Как затормозить команду выбора крепежа NewFurnitureInput? А то скрипт строит полку, но игнорирует окошко выбора.
А вот эта функция работает с параметрической фурнитурой
Props = Action.Properties;
Furn = Props.NewFurniture('Фурнитура');
Furn.Click();
if (Furn.CanClearValue()) {
P1 = GetPanel("Укажите панель");
}

Добавлено через 26 минут
Цитата:
Хочу сохранять настройки скрипта в разных файлах с разными произвольными именами: например для одного типа крепежа одни настройки, для другого -- другие.
Ну и при запуске скрипта читать список файлов и помещать этот список в Combo.
Базис не позволяет работать с файловой системой. Я бы рекомендовал писать настройки через формат JSON
// запись настроек
Settings = {};
Settings.Крепеж1 = {};
Settings.Крепеж1.Количество = 2;
Settings.Крепеж2 = {Количество: 5, Интервал: 6};
system.writeTextFile('Settings.json', JSON.stringify(Settings))
// чтение настроек
Settings2 = JSON.parse(system.readTextFile('Settings.json'));
alert(Settings2.Крепеж1.Количество);
alert(Settings.Крепеж2.Интервал);
Briz вне форума   Ответить с цитированием Вверх
Старый 30.09.2014, 10:34   #503
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Цитата:
Как затормозить команду выбора крепежа NewFurnitureInput? А то скрипт строит полку, но игнорирует окошко выбора.
Или можно так, затормозить команду выбора крепежа.

Скрытый текст

ShelfFast = NewFurnitureInput('Крепёж');
Bok1 = GetPanel("Укажите 1-ую вертикальную панель");
Bok2 = GetPanel("Укажите 2-ую вертикальную панель");

x1 = Bok1.GabMax.x ;
x2 = Bok2.GabMin.x ;
z11 = Bok1.GabMin.z;
z12 = Bok1.GabMax.z;
z21 = Bok2.GabMin.z;
z22 = Bok2.GabMax.z;

z1 = Math.max(Bok1.GabMin.z, Bok2.GabMin.z);
z2 = Math.min(Bok1.GabMax.z, Bok2.GabMax.z);

function MoveOdj() {
DeleteNewObjects()
Polka = AddHorizPanel(x1, z1, x2, z2, Action.Pos3.y);
Polka.TextureOrientation = TextureOrientation.Horizontal;
zp1 = Polka.GabMin.z;
zp2 = Polka.GabMax.z;
Polka.PositionY = Action.Pos3.y
}

function Krep() {
PosY = Polka.PositionY
ShelfFast.Mount(Polka, Bok1, x1, PosY, z2 - 37);
ShelfFast.Mount(Polka, Bok2, x2, PosY, z2 - 37);
ShelfFast.Mount(Polka, Bok1, x1, PosY, z1 + 32);
ShelfFast.Mount(Polka, Bok2, x2, PosY, z1 + 32);
}

Action.ShowPoints = true;
Action.OnMove = function() {
MoveOdj()
};
Action.OnClick = function() {
Krep();
Action.Commit();
Action.Cancel();
};

Action.Continue();
[свернуть]
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
Старый 30.09.2014, 17:24   #504
Am0ralist
Местный
 
Регистрация: 16.11.2011
Адрес: Москва / Пенза
Сообщений: 1,135
Сказал(а) спасибо: 307
Поблагодарили 1,257 раз(а) в 524 сообщениях
Вес репутации: 516
Am0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордитсяAm0ralist за этого человека можно гордится
По умолчанию

А разрушать необходимые сборки никто не пробовал?
То есть по сути, я думал в поиске по всем объектам (Model.forEach) вначале найти нужные сборки (как выделить именно сборки то же не нашел, только проверку, что объект структурный, а не панель Assem.List == true). Потом так же задать поиск по модели и для всех объектов, у кого Obj.Owner равен найденной сбороке присвоить заместо этого ее родителя...
И фиг, сравнение родителя с найденным объектом ничего не дает...

Скрытый текст


Model.forEach
(function(Obj)
{
if(Obj.List == true)
{
if(Obj.Name == '123')
{
alert('нашел ');//находит
Model.forEach
(function(Obj2)
{
if(Obj2.Owner == Obj)
{
alert('и дочек нашел');//никогда не выскакивает
StartEditing(VlObj);
Obj2.Owner = Obj.Owner;
};
}
);
};
};
}
);

[свернуть]


Сам спросил, вроде сам решил... через UID... вы знаете что это такое? и я нет...
__________________
Нахожусь в режиме поиска интересных задач, связанных с Базисом. Москва, 2015.
Am0ralist вне форума   Ответить с цитированием Вверх
Старый 01.10.2014, 00:36   #505
n1me
Местный
 
Регистрация: 06.01.2008
Сообщений: 107
Сказал(а) спасибо: 20
Поблагодарили 10 раз(а) в 9 сообщениях
Вес репутации: 211
n1me на пути к лучшему
По умолчанию

Цитата:
Может кому пригодится такой скрипт. Он формирует из файла раскроя obl набор панелей прямоугольной формы в Базисе. Панели имеют кромку указанную в таблице раскроя.

Мы не занимаемся коммерческим раскроем. Но предистория такая.

Пришел "очень нужный" человек для нашей фирмы. В нем проснулся мастер. Он САМ разработал мебель, хотел чтобы мы напилили, покромили и присадили детали. Отказать ему - себе дороже.
Он принес размеры деталей и кроме размеров надо было где-то радиус сделать, где-то фаску и т.д. В Раскрое это никак не сделаешь. В Базисе тоскливо каждую панель в нужный размер загонять. Поступили проще.

Ввели размеры панелей и кромку в Базис-Раскрое, перегнали с помощью этого скрипта в Базис и там нужные панели отредактировали и добавили сквозные и глухие отверстия.
После этого и смета автоматом считается и программы для ЧПУ формируются.
А можно то же самое реализовать, но чтобы он сохранял контуры деталей и отверстия? как бы нестинг карта
n1me вне форума   Ответить с цитированием Вверх
Старый 01.10.2014, 07:49   #506
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от n1me Посмотреть сообщение
А можно то же самое реализовать, но чтобы он сохранял контуры деталей и отверстия? как бы нестинг карта
это возможно.

Скопировать контуры в 1 панель -- легко.

Сделать в контуре отверстия по отверстиям крепежа -- реализовано в скрипте для мойки.

(для полной дореализации функции не хватает определения крепежа на определённой панели, Как определить крепёж на панели?)

Самое интересное это непосредственно алгоритм компановки. но Тож реализуемо. Но самое сложное, особенно если нужно так же красиво как в Арткаме.

Кстате спасибо за идею!

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

Спасибо.
v22884 вне форума   Ответить с цитированием Вверх
Старый 01.10.2014, 09:02   #507
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Как определить сторону соприкосновения панели1 к панели2 ?
v22884 вне форума   Ответить с цитированием Вверх
Старый 01.10.2014, 09:10   #508
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
Briz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личность
По умолчанию

p = P1.GCenter;
p = P1.ToGlobal(p);
p = P2.ToObject(p);
if (p.z < 0)
..
else
...
Briz вне форума   Ответить с цитированием Вверх
Старый 01.10.2014, 09:21   #509
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от n1me Посмотреть сообщение
самое реализовать, но чтобы он сохранял контуры деталей и отверстия? как бы нестинг карта
Зайчатки нестинга:

Скрытый текст




BtnMake = NewButtonInput('Закончить');
BtnMake.OnChange = function() {
// Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}


Action.Continue();

// continue action
pr = AddPanel(0, 0)

cr = pr.Contour
cr.Clear()
dx=0
dy=0

i=0
while (i<1000)
{

p = GetPanel('Укажите панель');
c = p.Contour.MakeCopy()

c.Move(dx, dy)
dx = dx + c.Width + 30

cr.Addition(c)

pr.Build()
i++
}



[свернуть]
v22884 вне форума   Ответить с цитированием Вверх
Старый 01.10.2014, 10:28   #510
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

p = P1.GCenter; // наверно габаритный центр панели1
p = P1.ToGlobal(p); // в ГСК
p = P2.ToObject(p); //эта точка относительно нуля панели2
if (p.z < 0) // p.z - это измерение вдоль толщины панели2
..
else
...

То есть если я правильно понял, то условием p.z < 0 выясняем как габаритный центр панели1 соотноситься к нулевой стороне панели2?

Значит ли это, что надо перебирать другие точки в первой строке p = P1.GCenter;?

Уважаемый Briz, не могли бы Вы пояснить использование кода.
v22884 вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1525 30.03.2024 15:03
БАЗИС 9 nayrogi Базис-мебельщик 9 785 01.10.2022 23:13
БАЗИС-ЧПУ 8 chingisnah Базис-мебельщик 8 119 21.12.2017 22:04
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 16.01.2014 00:37


Текущее время: 09:18. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика