Форум профессиональных мебельщиков 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..
Просмотров: 993907
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
evilbaby1989 (10.07.2023)
Старый 19.01.2017, 15:08   #1291
aspid96
Новичок
 
Регистрация: 14.02.2014
Сообщений: 7
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
aspid96 пока не определено
По умолчанию

может кто нибудь помочь? пост 1280
aspid96 вне форума   Ответить с цитированием Вверх
Старый 19.01.2017, 15:50   #1292
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от aspid96 Посмотреть сообщение
может кто нибудь помочь? пост 1280
Нужно вычислять координату перед расстановкой крепежа используя свойства панели (см. чертеж).
Миниатюры
Panel.jpg  
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
aspid96 (20.01.2017)
Старый 20.01.2017, 07:13   #1293
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

всем привет!

вариант: Асиметричное Масштабирование Контура.
(не уверен, вроде бы не было здесь...)

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



Model.forEachPanel(function(p) {
//p = AddPanel(width, height)
c = p.Contour.MakeCopy()
scaleX = 0.4
scaleY = 0.2
c = MashtabirovaniyeContura(c, scaleX,scaleY)

StartEditing(p)
p.Contour.Clear()
p.Contour.Addition(c)
p.Build()
/*p.PositionX = p.PositionX*scale
p.PositionY = p.PositionY*scale
p.PositionZ = p.PositionZ*scale
*/
});


function MashtabirovaniyeContura(scontur, scaleX,scaleY) {
s = scontur
sh = s.Height
sw = s.Width

s.Fit(0, 0, sw, sh)

ss = NewContour()
sc = s.Count


for (i = 0; i < sc; i++)

{
if (s[i].ElType == 1) {

x1 = s[i].Pos1.x * scaleX
y1 = s[i].Pos1.y * scaleY
x2 = s[i].Pos2.x * scaleX
y2 = s[i].Pos2.y * scaleY
ss.AddLine(x1, y1, x2, y2)
}

if (s[i].ElType == 2) {

p1 = NewPoint(s[i].Pos1.x * scaleX, s[i].Pos1.y * scaleY)

p2 = NewPoint(s[i].Pos2.x * scaleX, s[i].Pos2.y * scaleY)

p3 = NewPoint(s[i].Pos2.x * scaleX, s[i].Pos2.y * scaleY)
// alert(JSON.stringify(s[i].ArcCenter()))
// alert(JSON.stringify(s[i].Center))
ArcCenter = s[i].ArcCenter()
centre = NewPoint(ArcCenter.x * scaleX, ArcCenter.y * scaleY)

/*
//проверка тру или фелс в направлении дуги
p1t = NewPoint(s[i].Pos1.x, s[i].Pos1.y)

p2t = NewPoint(s[i].Pos2.x, s[i].Pos2.y)

centre_t = NewPoint(s[i].Center.x, s[i].Center.y)

st = NewContour()
st.AddArc(p1t, p2t, centre_t, true)
if (st[0].ObjLength() == s[i].ObjLength())

{
napravleniye = true
} else {
napravleniye = false
}


//----проверка тру или фелс в направлении дуги
*/

ss.AddArc3(p1, centre, p2)
//
//ss.AddArc(p1, p2, centre, napravleniye)

}

if (s[i].ElType == 3) {

xc = s[i].Center.x * scaleX

yc = s[i].Center.y * scaleY



rad = s[i].CirRadius * scaleX

ss.AddCircle(xc, yc, rad)

}




}

return ss

}
[свернуть]


вроде работает, даже, почему-то, на сложных контурах.
v22884 вне форума   Ответить с цитированием Вверх
6 пользователя(ей) сказали cпасибо:
Старый 20.01.2017, 10:42   #1294
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от v22884 Посмотреть сообщение
вроде работает
Не понял, как оно работает? Можно видео или скриншоты?
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Старый 20.01.2017, 11:18   #1295
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Uncle Посмотреть сообщение
Не понял, как оно работает? Можно видео или скриншоты?
Это не готовый скрипт - "бери и используй". Это код (функция) асиметричного масштабирования контура, которая может быть использована в скриптах. Т.е. скрипт может быть полезен для кодеров.

Функцию, кстати, бы ещё добраться доделать: при действительно ассиметричном масштабировании надо круги разбивать на дуги и уже их масштабировать(а в этом варианте пока круги остаются кругами).

Чтобы увидеть работу скрипта в пустую модель поместите панель со сложным контуром и запустите скрипт.

Можно в коде поменять значения масштабировани по x и y в строках:
scaleX = 0.4
scaleY = 0.2

Конечно было бы не плохо сделать нормальный интерфейс, но .... некогда.
v22884 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Uncle (20.01.2017)
Старый 20.01.2017, 11:38   #1296
aspid96
Новичок
 
Регистрация: 14.02.2014
Сообщений: 7
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
aspid96 пока не определено
По умолчанию

Цитата:
Сообщение от maxgmv Посмотреть сообщение
Нужно вычислять координату перед расстановкой крепежа используя свойства панели (см. чертеж).
то есть без привязки к ЛСК никак?
aspid96 вне форума   Ответить с цитированием Вверх
Старый 20.01.2017, 11:42   #1297
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от aspid96 Посмотреть сообщение
то есть без привязки к ЛСК никак?
Да, ни как. Все расчеты от глобального 0.
И потом в вашем коде есть строка
x = (Math.floor((Polka.GabMax.z - 74 - 64) / 32))*32 +37
здесь вы учитываете свойством GabMax максимальное расположение (удаленность) полки относительно глобального 0, а наверное надо учитывать размер полки, т.е. свойство GSize с поправкой на удаленность от 0.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
aspid96 (23.01.2017)
Старый 23.01.2017, 08:37   #1298
aspid96
Новичок
 
Регистрация: 14.02.2014
Сообщений: 7
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
aspid96 пока не определено
По умолчанию

Цитата:
Сообщение от maxgmv Посмотреть сообщение
а наверное надо учитывать размер полки, т.е. свойство GSize с поправкой на удаленность от 0.
да вы правы, я это уже потом заметил)
aspid96 вне форума   Ответить с цитированием Вверх
Старый 24.01.2017, 16:05   #1299
Last81
Новичок
 
Регистрация: 20.04.2014
Сообщений: 24
Сказал(а) спасибо: 2
Поблагодарили 13 раз(а) в 5 сообщениях
Вес репутации: 0
Last81 на пути к лучшему
По умолчанию

Можно ли написать скрипт добавляющий в начало наименования панели, название блока в которую она входит?
Last81 вне форума   Ответить с цитированием Вверх
Старый 27.01.2017, 10:31   #1300
MishaD
Новичок
 
Регистрация: 27.01.2017
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
MishaD пока не определено
Подмигивание Пара вопросов

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

Block = BeginBlock("Цоколь");
CokolLev = AddVertPanel(38, 0, Gl.Value - 2, Hd.Value, 40);
CokolLev.Name = Block.Name+" слева";

А вот можно ли как нибудь удалить свойства в Action.Properties, в зависимости от предыдущего свойства. Я сделал очистку всей группы свойств через Clear. И создание заново, но это не очень радует.

Кому-нибудь удалось расположить крепеж, созданный через схему крепежа внутри блока ?

Есть ли метод, позволяющий проверить панели на общие стыки ? Пока что проверяю так:panel1.GabMax.x.toFixed(2) <= panel2.GabMin.x.toFixed(2)
MishaD вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков 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


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


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

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