|
|
|
|
|
21.03.2018, 14:48
|
|
Обсуждение скриптов в Системе Базис
Letos
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
21.03.2018, 14:48
Рейтинг:
()
Если вы не знаете, или не уверены, куда задавать вопрос по скриптам в Системе Базис, то эта тема для вас.
Обратите внимание на полезные ответы в этой теме!
|
Просмотров: 237711
|
2 пользователя(ей) сказали cпасибо:
|
|
18.11.2019, 01:12
|
#191
|
Новичок
Регистрация: 04.11.2019
Сообщений: 5
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Подскажите пожалуйста:
1. Как мне отличить Фрагмент от Блока?
Они оба: obj.constructor.name = 'TFurnBlock'
нашёл в объекте фрагмента свойства
JointLength - number
JointData - string
Судя по названию, это данные прикрепления. В фрагментах там есть какие то значения.
2. Где мне найти схемы крепежа применённые на панели? Просто вообще не понял где они.
3. Как отличить комплект сборок от сборки?
Спасибо!
|
|
|
19.11.2019, 11:15
|
#192
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от Meta
Подскажите пожалуйста:
1. Как мне отличить Фрагмент от Блока?
Они оба: obj.constructor.name = 'TFurnBlock'
нашёл в объекте фрагмента свойства
JointLength - number
JointData - string
Судя по названию, это данные прикрепления. В фрагментах там есть какие то значения.
2. Где мне найти схемы крепежа применённые на панели? Просто вообще не понял где они.
3. Как отличить комплект сборок от сборки?
Спасибо!
|
1. Фрагмент обычно отличается типом установки, когда-то писал пример для различения разных типов блоков:
код
PHP код:
if (obj instanceof TFurnAsm){
// код для сборки
}
else if (obj instanceof TDraftBlock){
// код для полуфабриката
}
else if (obj instanceof TFurnBlock){
if (obj.DatumMode == DatumMode.None){
// код для блока
}
else if (obj.DatumMode = DatumMode.Scheme){
// код для схемы крепежа
}
else {
// Код для блока с типом установки, отличным от схемы и никакого - скорее всего, фрагмента
}
}
[свернуть]
JointLength и JointData - параметры чисто для схем крепежа, ибо в остальных блоках JointLength равно нулю и JointData равно пустой строке.
2. Если я правильно понял, то самый простой способ - используя метод FindConnectedFasteners() найти список фурнитуры на панели, а потом для каждой фурнитуры смотреть, лежит ли она в блоке схемы крепежа.
3. Насколько мне известно, они должны различаться типами (obj.constructor.name), на данный момент типы одинаковые, поэтому до обновления никак, если вы заранее не вкладываете различия в именование сборок и КС.
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
20.11.2019, 03:39
|
#193
|
Новичок
Регистрация: 04.11.2019
Сообщений: 5
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Цитата:
Сообщение от Letos
1. Фрагмент обычно отличается типом установки, когда-то писал пример для различения разных типов блоков:
код
PHP код:
if (obj instanceof TFurnAsm){ // код для сборки } else if (obj instanceof TDraftBlock){ // код для полуфабриката } else if (obj instanceof TFurnBlock){ if (obj.DatumMode == DatumMode.None){ // код для блока } else if (obj.DatumMode = DatumMode.Scheme){ // код для схемы крепежа } else { // Код для блока с типом установки, отличным от схемы и никакого - скорее всего, фрагмента } }
[свернуть]
JointLength и JointData - параметры чисто для схем крепежа, ибо в остальных блоках JointLength равно нулю и JointData равно пустой строке.
|
В случае, если фрагмент является блоком, то будет так:
код
PHP код:
if(obj instanceof TFastener){ //фурнитура } else if(obj instanceof TFurnBlock) { if(obj.IsFastener()){ if (obj.DatumMode === DatumMode.Scheme){ //схема крепежа } else { //фрагмент } } else { //блок } }
[свернуть]
Но беда в том, что фрагмент может быть и сборкой и блоком. У класса TFurnAsm нет метода .IsFastener()
Нельзя ли как то получить доступ к этим вот данным и по ним пройтись и сравнить то, что есть в модели, с тем, что есть в списке?
Спасибо!
|
|
|
29.12.2019, 06:37
|
#194
|
Новичок
Регистрация: 29.04.2019
Сообщений: 26
Сказал(а) спасибо: 11
Поблагодарили 16 раз(а) в 2 сообщениях
Вес репутации: 0
|
Имена таблиц Базы Данных
Цитата:
Сообщение от wizardpnz
я не смог его подключить через npm
собственно расскажу что я делаю
собираю в цикле объекты со сцены и записываю это в excel лист
и столкнулся с тем что нужны также данные из базы материалов
смог записать данные из базы в эксель внутри промиса
копаю дальше)))
расковырял где лежит соответствия материалов и их свойства из базы материалов
ATTEND_MAT_MAT таблица соответствий
MATERIAL таблица материалов вес цена артикул
MATERIAL_ADVANCE доп свойства материалов размер толщина и тд
выводит массу детали умножает площадь на массу из базы материалов
надо nodejs и установить модуль node-firebird и базис 10
Код:
var Firebird = require('node-firebird');
var options = {};
options.host = '127.0.0.1';
options.port = 14357;
options.database = 'D:/BAZIS10.fdb';//с кириллицей не разобрался
options.user = 'SYSDBA';
options.password = 'masterkey';
options.lowercase_keys = false; // set to true to lowercase keys
options.role = null; // default
options.pageSize = 4096; // default when creating database
Model.forEachPanel(function(panel) {
MaterialName = panel.MaterialName;
MaterialArt = "";
if (MaterialName.indexOf("\r") > 0) {
MaterialArt = MaterialName.split("\r")[1];
MaterialName = MaterialName.split("\r")[0]
};
panelS = panel.Contour.Width * panel.Contour.Height * 0.000001;
panelS = panelS.toFixed(3)
Firebird.attach(options, function(err, db) {
if (err) throw err;
db.query("select * from MATERIAL WHERE NAME_MAT = '" + MaterialName + "' AND ARTICLE = '" + MaterialArt + "'", function(err, result) {
db.detach();
system.log(MaterialName + ' ' + panelS * result[0].WEIGHT);
});
});
});
system.log("+");
делаем всё что нужно внутри асинхронной функции
|
Подскажите, как вы подключились к БД и взяли имена таблиц?
Я пробовал использовать IBExpert, чтобы подключится к БД Мебельщика, не выходит. Я не спец в этом, делал по инструкции http://https://www.elma-bpm.ru/KB/article-5815.html, но подключится не удалось. Если кто знает - дайте развернутый ответ.
|
|
|
30.12.2019, 14:32
|
#195
|
Местный
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
|
Цитата:
Сообщение от Vogel
|
Подключится к БД Мебельщика через IBExpert можно. Бегло посмотрев инструкцию по Вашей ссылке, можно сделать вывод, что она верная.
Что конкретно у Вас не удалось? Были ли сообщения об ошибках?
PS: ссылочку исправьте, кстати, а то у Вас протокол дублируется в ней.
|
|
|
01.02.2020, 18:30
|
#196
|
Новичок
Регистрация: 07.01.2013
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Всем привет. перерыл весь инет. не могу найти скрипт который бы наносил фрезу на фасад по выбираемой траектории и выбираемой фрезой на выбранный фасад.
помогите!!!
|
|
|
10.02.2020, 19:31
|
#197
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
|
Изменение значения number в форме
Всем доброго вечера!
Подскажите кто может...
Кидаю на форму два свойсва number.
Начальные значения присвоил любым способом изначально. Далее мне нужно, чтоб при изменении первого number менялось значение второго.
Стандартным присваиванием значения number.value не срабатывает.....
Т.е. второй number вроде как принимает новое значение, судя по алерту, но на форме, в окне этого number все равно отображается его начальное значение....
Через очистку всех свойств и их нового создания с новыми параметрами через промежуточную переменную выскакивает ошибка обращения к памяти, хотя и работает.
А через закрытие и вновь создания копии формы тоже работает, но моргание формы раздражает....
|
|
|
10.02.2020, 20:06
|
#198
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от kos100pudov
Всем доброго вечера!
Подскажите кто может...
Кидаю на форму два свойсва number.
Начальные значения присвоил любым способом изначально. Далее мне нужно, чтоб при изменении первого number менялось значение второго.
Стандартным присваиванием значения number.value не срабатывает.....
Т.е. второй number вроде как принимает новое значение, судя по алерту, но на форме, в окне этого number все равно отображается его начальное значение....
Через очистку всех свойств и их нового создания с новыми параметрами через промежуточную переменную выскакивает ошибка обращения к памяти, хотя и работает.
А через закрытие и вновь создания копии формы тоже работает, но моргание формы раздражает....
|
Уже было отвечено здесь - это косяк самих форм, поэтому приходится писать костыль, чтобы вызвать обновление компонента и, соответственно, обновление значения в поле.
Вот пример для двух чисел:
PHP код:
//-- window Window1
Window1 = { Form : NewForm() };
Props = Window1.Form.Properties;
Window1.Form.Width = 200;
Window1.Form.Height = 200;
Window1.Form.Caption = "Window1";
//-- window Window1 properties
Window1.Number1 = Props.NewNumber("Название");
Window1.Number1.SetLayout(18, 25, 100, 22);
Window1.Number2 = Props.NewNumber("Название");
Window1.Number2.SetLayout(27, 69, 100, 22);
//-- window Window1 events
Window1.Number1.OnChange = function(){
Window1.Number2.Value -= 10;
Window1.Number2.Layout.Top = Window1.Number2.Layout.Top;
}
Window1.Number2.OnChange = function(){
Window1.Number1.Value -= 10;
Window1.Number1.Layout.Top = Window1.Number1.Layout.Top;
}
//-- window Window1 ends
Window1.Form.ShowModal();
|
|
|
Пользователь сказал cпасибо:
|
|
10.02.2020, 22:55
|
#199
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
|
Параметрическая фурнитура скриптом
Еще вопрос меня мучает...
кто-нибудь знает как скриптом создать ПАРАМЕТРИЧЕСКОЙ фурнитуру?
расставить набор необходимых отверстий и сгруппировать их в параметрическую фурнитуру.
Нужна именно ПАРАМЕТРИЧЕСКАЯ, чтоб в модели ее невозможно было разрушить...
а также, есть ли возможность скриптом ее сделать ПАРАМЕТРИЧЕСКОЙ СОСТАВНОЙ???
|
|
|
11.02.2020, 12:00
|
#200
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от kos100pudov
Еще вопрос меня мучает...
кто-нибудь знает как скриптом создать ПАРАМЕТРИЧЕСКОЙ фурнитуру?
расставить набор необходимых отверстий и сгруппировать их в параметрическую фурнитуру.
Нужна именно ПАРАМЕТРИЧЕСКАЯ, чтоб в модели ее невозможно было разрушить...
а также, есть ли возможность скриптом ее сделать ПАРАМЕТРИЧЕСКОЙ СОСТАВНОЙ???
|
Облазил весь поиск, т.к. уверен был, что писал уже у об этом, но не нашёл. В общем С НУЛЯ создать параметрическую фурнитуру не получится. Нужно либо загрузить из файла Fasteners.config параметры этой фурнитуры ( пример, как достать информацию из файла), либо скопировать объект уже поставленной параметрической фурнитуры и у него менять отверстия (первый варианте вернее будет).
Опишите поподробнее (желательно с простеньким примером), что вам нужно я тогда детальнее опишу действия, которые нужно будет произвести.
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 23:33. Часовой пояс GMT +3.
|