|
|
|
|
|
13.01.2014, 13:22
|
|
БАЗИС 9 - Скрипты
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
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..
|
Просмотров: 985431
|
Пользователь сказал cпасибо:
|
|
01.10.2020, 18:32
|
#1431
|
Пользователь
Регистрация: 17.12.2016
Сообщений: 89
Сказал(а) спасибо: 27
Поблагодарили 50 раз(а) в 30 сообщениях
Вес репутации: 107
|
Цитата:
Сообщение от const
Огромное спасибо за ответ, Михаил. Это то что мне нужно. Обидно, что найти эту информацию почему-то трудно. Еще раз спасибо!
|
Ну почему трудно найти?
Вот скриншот со встроенного хелпа редактора скриптов Базис-Мебельщик.
Просто Вы задали два параметра (200, 500).
Соответственно программа восприняла их как x1=200, y1=500, а следующие координаты по умолчанию приняты равными 0 (x2=0, y2=0, z=0). В итоге в Вашем варианте скрипта рисуется панель в таком виде:
Контур панели (4 элементов):
Линия: (0, 0) - (-200, 0)
Линия: (-200, 0) - (-200, -500)
Линия: (-200, -500) - (0, -500)
Линия: (0, 0) - (0, -500)
А в моём варианте в таком виде:
Контур панели (4 элементов):
Линия: (0, 0) - (200, 0)
Линия: (200, 0) - (200, 500)
Линия: (200, 500) - (0, 500)
Линия: (0, 0) - (0, 500)
По моим предположениям повороты идут относительно ребра с координатами начальной точки (x1,y1,z1).
P.S. Надеюсь не запутал
|
|
|
28.05.2021, 21:23
|
#1432
|
Новичок
Регистрация: 09.12.2015
Сообщений: 4
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Здравствуйте, есть скрипт "Поиск по маске" от уважаемого Igor_482,
как его дополнить, чтоб выделенное сразу скрывалось?
Поиск по маске
Код HTML:
function MaskToRegExp(Str) {
function replaceAll(Str, What, To) {
return Str.split(What).join(To);
};
var Res = Str;
var Arr = ['\\', '#', '|', '(', ')', '[', ']', '{', '}', '^', '$', '+', '.'];
for (var i = 0; i < Arr.length; i++) {
Res = replaceAll(Res, Arr[i], '\\' + Arr[i]);
};
Res = replaceAll(Res, '*', '.*');
Res = replaceAll(Res, '?', '.');
return eval('/^' + Res + '$/i');
};
var Masks = prompt('Введите маски имен через ";"').replace(/;{1,}/g, ';').split(';');
var RegExps = new Array();
for (var i = 0; i < Masks.length; i++) {
var Mask = Masks[i].replace(/\s+$/, '').replace(/^\s+/, '');
if (Mask.length) {
RegExps.push(MaskToRegExp(Mask));
};
};
Model.UnSelectAll();
Model.forEach(function(Object) {
for (var i = 0; i < RegExps.length; i++) {
if (RegExp(RegExps[i]).test(Object.Name)) Object.Selected = true;
};
});
[свернуть]
|
|
|
29.05.2021, 11:06
|
#1433
|
Местный
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
|
Цитата:
Сообщение от babilon
Здравствуйте, есть скрипт "Поиск по маске" от уважаемого Igor_482,
как его дополнить, чтоб выделенное сразу скрывалось?
|
Замените
PHP код:
Object.Selected = true
на
PHP код:
Object.Visible = false
|
|
|
Пользователь сказал cпасибо:
|
|
29.05.2021, 14:59
|
#1434
|
Новичок
Регистрация: 09.12.2015
Сообщений: 4
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Цитата:
Сообщение от Ovsyanicov
Замените
|
Спасибо, все работает.
|
|
|
26.06.2022, 15:37
|
#1435
|
Пользователь
Регистрация: 03.12.2019
Сообщений: 88
Сказал(а) спасибо: 28
Поблагодарили 115 раз(а) в 34 сообщениях
Вес репутации: 84
|
Цитата:
Сообщение от ShSergey
Вот получилось
Пример:
Скрытый текст
system.require('CutEdgeBazis._js');
myCutEdgeBazis = new CutEdgeBazis.Obj();
myCutEdgeBazis.initCutEdgeBazis('C:\\Program Files (x86)\\BazisSoft\\Bazis 8\\Settings\\CutEdge.xml'); // это путь к настройкам Базиса нужно поменять на свой !!!
namePaz = "Название паза как он задан у Вас в Базисе"; // не обозначение !!!
pPanelThickness = 16.5; // толщина панели
PologeniePaza = 0; // если 1 то с другой пласти панели
pPanel = AddFrontPanel (0, 0, 800, 800, 0);
Cut = pPanel.AddCut(namePaz);
Traj = Cut.Trajectory;
Traj.AddLine(0, 0, 800, 000); // траектория паза
myCutEdgeBazis.setStandartPaz(Cut.Contour, pPanelThickness, myCutEdgeBazis.ListCutEdgeBazis[namePaz], PologeniePaza); [свернуть]
Во вложении необходимые файлы и пример 2
Вложение 98941
|
не получается скачать файл, помогите плиз
|
|
|
26.06.2022, 16:09
|
#1436
|
Местный
Регистрация: 22.12.2008
Сообщений: 245
Сказал(а) спасибо: 54
Поблагодарили 218 раз(а) в 154 сообщениях
Вес репутации: 253
|
Цитата:
Сообщение от Артем Валерьевич
не получается скачать файл, помогите плиз
|
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
23.10.2023, 15:01
|
#1437
|
Новичок
Регистрация: 23.10.2023
Сообщений: 1
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Проблема деталировки
Всем привет!
имеется такая проблема: после изготовления мебели закидываю на чпу а чпу не доганяет что некоторые детали нужно дублировать, есть какой то скрипт что б все детали ( особенно одинаковые) имели свои номера
|
|
|
23.10.2023, 15:11
|
#1438
|
Местный
Регистрация: 20.02.2013
Адрес: Казань
Сообщений: 354
Сказал(а) спасибо: 840
Поблагодарили 781 раз(а) в 204 сообщениях
Вес репутации: 327
|
Цитата:
Сообщение от Рулетик
Всем привет!
имеется такая проблема: после изготовления мебели закидываю на чпу а чпу не доганяет что некоторые детали нужно дублировать, есть какой то скрипт что б все детали ( особенно одинаковые) имели свои номера
|
|
|
|
26.02.2024, 14:41
|
#1439
|
Новичок
Регистрация: 13.04.2018
Сообщений: 10
Сказал(а) спасибо: 1
Поблагодарили 10 раз(а) в 3 сообщениях
Вес репутации: 0
|
вопрос
Всем привет!
Пытаюсь реализовать скрипт, который собирает и показывает информацию по модели, т.е. сколько панелей, сколько и какого крепежа, и в перспективе, сколько крепежа/отверстий, на конкретной/или каждой панели.
Написал вот такой код:
Скрытый текст
Код:
function CheckNode( node )
{
if(!node.List){ return false; };
var cList1 = node.AsList();
an = cList1.Count;
for(n=0; n<an; n++)
{
cc = cList1.Objects[n];
if( cc.AsPanel ) return true;
}
return false;
}
var a = Model.Count; //число объектов
for(var p=0; p<a; p++)
{
cObj = Model.Objects[p];
if( cObj.AsPanel )
{
system.log(' это панель!!! ' + cObj.Name );
continue;
}else{
bb = CheckNode( cObj );
if(bb){
system.log(' узел!! ' + cObj.Name );
var cList = cObj.AsList();
var n1 = cList.Count;
system.log( ' дочерних объектов = ' + n1);
for( p1=0; p1<n1; p1++)
{
system.log( cList.Objects[p1].Name );
}
continue;
}
if(cObj.List){
var cList = cObj.AsList();
var n1 = cList.Count;
system.log(' список!! ' + cObj.Name + ', cout = ' + n1);
for( p1=0; p1<n1; p1++)
{
//system.log( cList.Objects[p1].Name );
ff0 = cList.Objects[p1].IsFastener;
if(ff0){
system.log(' фурнитура!! ' + cList.Objects[p1].Name );
continue;
}
system.log('----- неизвестный объект!! ' + cList.Objects[p1].Name );
}
continue;
}
}
ff = cObj.IsFastener;
if(ff){
system.log(' фурнитура!! ' + cObj.Name );
continue;
}
system.log(' неизвестный объект!! ' + cObj.Name );
// ddd = cObj.AsFastener;
// ddd.
}
[свернуть]
Проблема в том, что непонятно, как идентифицировать объект как крепеж. В доступных полях можно только определить панель, или список. Даже для того чтобы отличить схему крепежа от блока, приходится плясать с бубном.
На просторах интернета показывают работу скриптов, где это реализовано. Значит всё таки такая возможность есть. Кто-нибудь может подсказать как они это делают?
|
|
|
26.02.2024, 15:26
|
#1440
|
Пользователь
Регистрация: 03.12.2019
Сообщений: 88
Сказал(а) спасибо: 28
Поблагодарили 115 раз(а) в 34 сообщениях
Вес репутации: 84
|
Цитата:
Сообщение от maxfox
Всем привет!
Проблема в том, что непонятно, как идентифицировать объект как крепеж... Кто-нибудь может подсказать как они это делают?
|
можно так: if (obj instanceof TFastener) { ... }
как-то так, гуглите тут есть примеры и в телеге тоже
|
|
|
Пользователь сказал cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 05:39. Часовой пояс GMT +3.
|